В этой статье показано, как использовать метод Create Object в VBA.
VBA - это объектно-ориентированный язык - он использует процедуры для управления и создания объектов.
Создать объект
Мы можем использовать метод Create Object для создания объекта в приложении Microsoft Office. Например, если мы пишем код VBA в Excel и хотим открыть копию Word, мы можем использовать метод Create Object для создания нового экземпляра Word.
Например:
12345 | Sub CreateWordInstance ()Dim wdApp как объектУстановите wdApp = CreateObject ("Word.Application")wdApp.Visible = ВерноКонец подписки |
Точно так же мы можем создать новый экземпляр PowerPoint или Access.
12345 | Sub CreatePowerPointApplicationDim ppApp как объектУстановите ppApp = CreateObject ("PowerPoint.Application")ppApp.Visible = TrueКонец подписки |
Мы также можем использовать Create Object для создания объектов, отличных от Application Object. Мы можем использовать его, например, для создания листа Excel.
1234567 | Подложка CreateExcelSheet ()Dim xlSheet как объектУстановите xlSheet = CreateObject ("Excel.Sheet").xlSheet.Application.Visible = ИстинаxlSheet.Application.Range ("A2") = "Доброе утро"Установите xlSheet = NothingКонец подписки |
Однако при этом фактически создается новый экземпляр Excel - лист не создается в уже открытом экземпляре. По этой причине мы должны установить для приложения нового листа (т. Е. Нового экземпляра Excel) значение Visible, чтобы увидеть объект.
Во всех приведенных выше примерах мы используем позднее связывание, поэтому мы объявляем переменные как объекты. Мы также можем использовать Early Binding, установив ссылку на Word или PowerPoint в нашем проекте VBA, а затем написав подпроцедуру, как показано ниже. Чтобы узнать больше о позднем и раннем связывании, щелкните здесь.
Во-первых, для раннего связывания в VBE мы устанавливаем ссылку на Microsoft Word.
в Меню бар, выберите Инструменты> Ссылки и прокрутите вниз, чтобы найти ссылку на Библиотека объектов Microsoft Word 16.0.
Убедитесь, что ссылка отмечена, а затем нажмите OK.
ПРИМЕЧАНИЕ: версия может быть не 16.0, все зависит от того, какую версию Microsoft Office вы используете на своем ПК!
Теперь мы объявляем объект с использованием раннего связывания - это означает, что вместо объявления wdApp как объекта мы объявляем его как Word.Application. Остальная часть кода такая же, как и при использовании позднего связывания выше.
12345 | Sub CreateWordInstance ()Dim wdApp как новое приложение Word.ApplicationУстановите wdApp = CreateObject ("Word.Application")wdApp.Visible = ВерноКонец подписки |