Во время работы над моей PowerPoint макрос, я заметил следующее:Зачем использовать объекты для хранения объектов?
Для получения тока, активный слайд:
Dim currSlide As Slide
Set currSlide = Application.ActiveWindow.View.Slide
Чтобы получить вновь созданный Textbox:
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 еще раз спасибо. Я обновил свой ответ. Возможно, я мог бы лучше описать это, но думаю, что переход через пример кода действительно подчеркивает точки. –
См. Также: http://stackoverflow.com/questions/9481140/exposing-property-as-variant-in-net-for-interop/9924325#9924325 –