是否可以識別在PowerPoint演示文稿中觸發鼠標懸停的形狀ID。是否可以識別在PowerPoint演示文稿中觸發鼠標懸停的形狀ID?
我想要做的是在帶有標題的幻燈片上繪製一系列形狀,並且當用戶鼠標懸停形狀時,我想使用VBA在頁面的另一部分顯示有關形狀的更多細節,可能是一個單獨的幫助文本框。然後我可以使用選定的形狀ALt文字在幫助框中顯示。我無法看到的是如何確定觸發鼠標懸停宏的形狀。這可能嗎?如果我能夠識別觸發該動作的形狀,那麼我可以獲得有關該形狀的信息。
是否可以識別在PowerPoint演示文稿中觸發鼠標懸停的形狀ID。是否可以識別在PowerPoint演示文稿中觸發鼠標懸停的形狀ID?
我想要做的是在帶有標題的幻燈片上繪製一系列形狀,並且當用戶鼠標懸停形狀時,我想使用VBA在頁面的另一部分顯示有關形狀的更多細節,可能是一個單獨的幫助文本框。然後我可以使用選定的形狀ALt文字在幫助框中顯示。我無法看到的是如何確定觸發鼠標懸停宏的形狀。這可能嗎?如果我能夠識別觸發該動作的形狀,那麼我可以獲得有關該形狀的信息。
PowerPoint中的Shape對象不允許您像在VBA代碼中一樣與其他對象進行交互。只有兩個暴露的'事件'實際上不是VBA事件。它們是一個稱爲Actions的特殊類,它們是'ppMouseOver'和'ppMouseClick'。如果您事先知道關於您的形狀和相應信息的所有信息,則可以編寫一些代碼來執行您想要的操作,但它們都是硬編碼的,這可能不是您想要的。
當演示開始你可以運行的程序是這樣的:
Sub SetActionsRoutine()
Shape1.ActionSettings(ppMouseOver).Action = ppActionRunMacro
Shape1.ActionSettings(ppMouseOver).Run = "showInformation1"
Shape2.ActionSettings(ppMouseOver).Action = ppActionRunMacro
Shape2.ActionSettings(ppMouseOver).Run = "showInformation2"
...
...
End Sub
然後當你做了這些形狀的鼠標懸停,下面的程序之一將運行。
Sub showInformation1()
myTextBox.Text = Shape1.AlternativeText
End Sub
Sub showInformation2()
myTextBox.Text = Shape2.AlternativeText
End Sub
這是非常有限的,並要求你寫一個子程序在幻燈片上的各種形狀。可能不是您想要的方法,但再次,對於PowerPoint,您的選項非常有限。
新來的StackOverflow,來不及回答,但你可以這樣做:
子RespondToShape(OSH爲形狀) MSGBOX 「你點擊」 & oSh.Name 結束小組
分配各種形狀您想要與「運行宏」的「動作」設置進行交互,並選擇「RepondToShape」作爲宏。
我以爲這麼多,我想知道如果我可以在Action中傳遞一個參數,所以調用「showInformation(n)」,但似乎代碼不允許這樣做。 非常感謝您抽出寶貴時間來探索此事。 此致敬禮 – icefeet 2011-03-23 14:18:13