雖然在我的PowerPoint宏的工作,我注意到以下幾點:爲什麼必須使用Set來保存對象?
爲了獲得當前活動的幻燈片:
Dim currSlide As Slide
Set currSlide = Application.ActiveWindow.View.Slide
要獲得一個新創建的文本框:
Dim textbox As Shape
Set textbox = currSlide.Shapes.AddTextbox(...)
我VBA新手,曾與Java,C++ & C#合作過。爲什麼必須使用Set
以上?爲什麼使用Slide
& Shape
反而會產生錯誤?變量聲明在這方面的工作方式與VBA有何不同?
另外(和相關的) - 在VBA對象可以具有默認屬性:例如'Range'具有'Value'作爲其默認屬性。如果沒有'Set',像'a = Range(「A1」)'這樣的東西就會模糊不清(你的意思是等於範圍本身還是其值?) –
@TimWilliams再次感謝。我更新了我的答案。我可能可以更好地解釋它,但我認爲單步執行代碼示例確實強調了一些要點。 – 2016-11-14 03:38:01
另請參閱:http://stackoverflow.com/questions/9481140/exposing-property-as-variant-in-net-for-interop/9924325#9924325 –