Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Createobject excel application

Функция CreateObject

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Примечание: Функция, метод, объект или свойство, описанные в данном разделе, отключаются, если служба обработки выражений Microsoft Jet выполняется в режиме песочницы, который не позволяет рассчитывать потенциально небезопасные выражения. Для получения дополнительных сведений выполните в справке поиск по словам «режим песочницы».

Создает и возвращает ссылку на объект ActiveX.

Функция CreateObject имеет следующие аргументы:

Обязательный аргумент. Variant (String). Имя приложения и класс создаваемого объекта.

Необязательный аргумент. Variant (String). Имя сетевого сервера, где будет создан объект. Если имя_сервера является пустой строкой («»), используется локальный компьютер.

Аргумент классАргумент использует синтаксис имя_приложения.тип_объекта и содержит следующие части:

Обязательный аргумент. Variant (String). Имя приложения, предоставляющего объект.

Обязательный аргумент. Variant (String). Тип (класс) объекта, который требуется создать.

В каждом приложении, поддерживающем автоматизацию, имеется хотя бы один тип объекта. Например, в приложении для обработки текстов могут быть объекты Application, Document и Toolbar.

Для создания объекта ActiveX назначьте объект, возвращаемый функцией CreateObject , в объектная переменная:

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В этом примере мы будем автоматизировать объект электронной таблицы Excel в базе данных Access. Этот код запускает приложение, создающее объект, в данном случае — электронную таблицу Microsoft Excel. На созданный объект можно ссылаться в коде с помощью определенной вами объектной переменной. В следующем примере доступ к свойствам и методам нового объекта осуществлялся с помощью объектной переменной, ExcelSheet и других объектов Excel, включая объект Application и коллекцию Cells .

При объявлении объектной переменной с помощью предложения As Object создается переменная, которая может содержать ссылку на любой тип объекта. Однако обращение к объекту через эту переменную выполняется с поздним связыванием, то есть привязка создается при выполнении программы. Чтобы создать объектную переменную с ранним связыванием, то есть со связыванием при компиляции программы, объявите объектную переменную с определенным идентификатором класса. Например, объявите и создайте следующие ссылки Excel:

Ссылка посредством переменной ранней привязки может повысить производительность, но может содержать только ссылку на класс, указанный в объявление.

Можно передать объект, возвращаемый функцией CreateObject, функции, которая использует объект в качестве аргумента. Например, в следующем коде создается и передается ссылка на объект Excel.Application:

Call MySub (CreateObject(«Excel.Application»))

Вы можете создать объект на удаленном компьютере, подключенном к сети, указав его имя в аргументе имя_сервера функции CreateObject. Это имя совпадает с именем компьютера в имени общего ресурса: для имени «\MyServerPublic» имя_сервера будет «MyServer».

Примечание: Дополнительные сведения о том, как сделать приложение видимым на удаленном сетевом компьютере, см. в документации COM (Microsoft Developer Network). Возможно, понадобится добавить раздел реестра для приложения.

Следующий код возвращает номер версии экземпляра приложения Excel, запущенного на удаленном компьютере с именем MyServer :

Если удаленный сервер не существует или недоступен, возникает ошибка во время выполнения.

Примечание: Используйте функцию CreateObject, если текущий экземпляр объекта отсутствует. Если экземпляр объекта уже запущен, запускается новый экземпляр и создается объект указанного типа. Чтобы использовать текущий экземпляр или запустить приложение и загрузить файл, следует воспользоваться функцией GetObject.

Если объект зарегистрировал себя как объект типа «единственный экземпляр», создается только один экземпляр этого объекта независимо от того, сколько раз выполнялась функция CreateObject.

Пример

В данном примере функция CreateObject используется для задания ссылки (

) в Excel. Он использует ссылку для доступа к свойству Visible приложения Excel, а затем использует метод Excel Quit , чтобы закрыть его. Наконец, сама ссылка освобождается.

VBA CreateObject

CreateObject Function in VBA

Objects are very important concepts in VBA coding and understanding that an object’s work model is quite complex. When we reference the objects in VBA coding we do it in two ways i.e. “Early Binding” and “Late Binding”. “Early Binding” is the process of setting the object reference from the references library of the VBA and when we send the file to someone else they also require to set the reference to those respective objects. However “Late Binding” doesn’t require the user to set any object references because in late binding coding we set the reference to the respective object by using the VBA “CreateObject” function.

What is the CreateObject in Excel VBA?

“Create Object” as the name itself says it will create the mentioned object from the Excel VBA. So, Create Object function returns the reference to an object initiated by an Active X component.

Below is the syntax of the CreateObject function in VBA

  • Class: The name of the object that we are trying to initiate and set the reference to the variable.
  • [Server Name]: This is an optional parameter, if ignored it will use the local machine only.

Example of Create Object Function in Excel VBA

Below are the examples of VBA CreateObject.

Example #1

Now we will see how to initiate PowerPoint application from excel using the CreateObject function in VBA. Open excel file and go to Visual Basic Editor Window by pressing the ALT + F11 key.

Code:

Declare the variable as PowerPoint.Application.

As you can see above when we start typing the word “PowerPoint” we don’t see any intellisense list showing the related searches this is because “PowerPoint” is an external object. But nothing to worry declare the variable as “Object”.

Code:

Since we have declared the variable as “Object” we need to set the reference to the object by using the “Set” keyword. By entering the “Set” keyword mention the variable and put an equal sign.

Читать еще:  Excel работа со строками

Code:

Now open CreateObject function.

Since we are referencing the external object of “PowerPoint” for the “Class” parameter of Create Object function mention the external object name in doubles quotes as “PowerPoint.Application”.

Code:

Now Create Object function will initiate the PowerPoint application. Once the object is initiated we need to make it visible by using the variable name.

One of the problems with Create Object method or late binding method is we don’t get to see the intellisense list at the point in time, you need to be absolutely sure about the code that you are writing.

For the variable “PPT” use “Visible” property and set the status as “True”.

Code:

To add a slide to PPT define the below line VBA code.

Code:

Now execute the code manually or through the F5 key and see “PowerPoint” application opens up.

Once the PowerPoint application is enabled using the variable “PPT” we can start accessing the PowerPoint application.

Example #2

Now we will see how to initiate an Excel application using the CreateObject function in VBA. Once again declare the variable as “Object”.

Code:

The moment we declare the variable as object it causes late binding and we need to use the “Set” keyword to set the reference for the required object.

Since we referencing to excel worksheet from the application excel, enter “Excel.Sheet” in double-quotes.

Code:

Once the reference for the excel sheet is set we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.

Code:

Now it will activate the excel worksheet.

Similarly to initiate an excel workbook from other Microsoft products we can use the below code.

Code:

Things to Remember About CreateObject in VBA

  • In VBA, the CreateObject function is used to reference objects.
  • Create Object function causes a late-binding process.
  • Using create object function we don’t get to access the intellisense list of VBA.

Recommended Articles

This has been a guide to CreateObject in VBA. Here we discuss how to create a reference object using Createobject function in excel VBA along with practical examples and a downloadable template. Below you can find some useful excel VBA articles –

VBA Excel. Управление приложением Word

Создание нового экземпляра приложения Word из кода VBA Excel или подключение к открытому для работы с документами. Функции CreateObject и GetObject.

Работа с Word из кода VBA Excel
Часть 1. Управление приложением Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5]

Создание объекта Word.Application

Экземпляр приложения Word необходим для того, чтобы с его помощью создавать новые документы или открывать существующие для редактирования из кода VBA Excel.

Создать новый экземпляр объекта Word.Application можно при помощи раннего или позднего связывания, используя при позднем связывании функцию CreateObject. Подключиться к открытому экземпляру приложения Word можно только при помощи позднего связывания, используя функцию GetObject.

Раннее связывание приложения Word

Создание нового экземпляра Word.Application и присвоение ссылки на него переменной myWord:

Для раннего связывания переменной с объектом Word.Application необходимо подключить в редакторе VBA Excel ссылку на библиотеку Microsoft Word Object Library, если она не подключена. Подключается ссылка в окне «References VBAproject», перейти в которое можно через главное меню редактора: Tools–>References…

Раннее связывание позволяет при написании кода использовать лист подсказок для выбора и вставки свойств и методов привязанных объектов (Auto List Members). Если проект VBA Excel создается на заказ, то, после его завершения, раннее связывание следует заменить на позднее, так как на компьютере пользователя может не оказаться нужной библиотеки, и код работать не будет.

Позднее связывание приложения Word

Создание нового экземпляра Word.Application с помощью функции CreateObject и присвоение ссылки на него переменной myWord:

Присвоение переменной myWord ссылки на открытый экземпляр приложения Word с помощью функции GetObject:

Если открытого приложения Word нет, выполнение функции GetObject приведет к ошибке. Чтобы ее избежать, следует предусмотреть создание нового экземпляра Word.Application с помощью функции CreateObject, если открытое приложение не будет найдено (смотрите пример 3).

В программы VBA Excel, работающие с Word, следует включать обработчик ошибок.

Закрытие объекта Word.Application

Новый экземпляр приложения Word открывается в фоновом режиме. Если необходимо его отобразить на экране перед завершением программы, используйте следующий код:

Если перед завершением процедуры VBA Excel необходимо приложение Word закрыть, используйте метод Quit:

Если переменная не содержит ссылку на приложение (myWord = Nothing), метод Quit возвратит ошибку. Чтобы этого не произошло, перед применением метода Quit необходимо проверить наличие ссылки в переменной myWord (смотрите пример 3).

Примеры открытия и закрытия Word

Пример 1
Создаем новый экземпляр объекта Word.Application с ранним связыванием и отображаем его на экране:

Запустите код примера 1 на выполнение. Вы увидите появившийся на панели задач ярлык приложения Word. Перейдите на него и закройте приложение вручную.

Пример 2
Создаем новый экземпляр объекта Word.Application с поздним связыванием, отображаем его на экране, останавливаем программу и наблюдаем закрытие приложения методом Quit:

Запустите код примера 2 на выполнение. Закройте информационное окно MsgBox и смотрите, как исчезнет с панели задач ярлык приложения Word, созданного перед остановкой кода.

Пример 3
Пытаемся создать ссылку на открытый экземпляр приложения Word с помощью функции GetObject, а если открытого экземпляра нет, создаем новый с помощью функции CreateObject:

Строка On Error Resume Next передаст управление следующему оператору, если открытого экземпляра программы Word не существует, и выполнение функции GetObject приведет к ошибке. В этом случае будет создан новый экземпляр Word.Application с помощью функции CreateObject.

В код добавлен обработчик ошибок On Error GoTo Instr , который поможет корректно завершить программу при возникновении ошибки. А также он позволит во время тестирования не наплодить большое количество ненужных экземпляров приложения Word. Проверяйте их наличие по Диспетчеру задач (Ctrl+Shift+Esc) и удаляйте лишние.

Строка Exit Sub завершит процедуру, если она прошла без ошибок. В случае возникновения ошибки, будет выполнен код после метки Instr: .

Запуск MS Excel средствами VFP

Первым шагом при работе с внешним приложением является подключение его объекта к технологии IntelliSense системы VFP. Для подключения объекта MS Excel необходимо в диалоговом окне управления типами объектов (см. рис. 3) найти строку Microsoft Excel 9.0 Object Libraryи подключить ее к стандартным типам.

Читать еще:  Как посчитать количество слов в excel

Следует помнить о том, что при запуске стороннего приложения, с точки зрения VFP, оно представляет собой объект и для дальнейшей работы необходимо присвоить ссылку на этот объект произвольной переменной. Соблюдая венгерскую нотацию в именовании переменных, рекомендуется начинать их имена с символа «о», например, для объекта Excel целесообразно использовать имя переменной oExcel.

Синтаксис команды, создающей объект произвольного класса в системе VFP следующий:

CREATEOBJECT(cClassName [, eParameter1, eParameter2, . ])

где, параметр cClassName является текстовым именем класса, описывающего создаваемый объект. После указания имени класса, через запятую допускается указывать произвольное количество параметров, с какими будет создан объект.

Таким образом, команда создания объекта типа приложения MS Excel в синтаксисе VFP будет выглядеть следующим образом:

Дальнейшую работу с приложением следует осуществлять посредством явного указания имени переменной, ссылающейся на объект приложения, например, команда oExcel.Quit закроет Excel. Не забывайте, что созданный объект является «голым» приложением. В нем нет ни рабочих книг, ни, тем более, рабочих листов. Их придется создавать или открывать методами созданного объекта.

Рабочая книга Excel является подобъектом самого объекта Excel.Application. Для возможности дальнейшей работы объект типа «Рабочая книга» должен быть присвоен некоторой переменной, например:

данная команда создает новую рабочую книгу и присваивает ее переменной oMyBook. Если необходимо открыть уже существующую книгу, следует использовать команду Open, а не Add.

Примечание: обратите внимание, что при написании команд, после символа разделителя система автоматически раскрывает список всех доступных свойств и методов (рис. 4)

Рис. 4 Ниспадающий список доступных команд

Если создается новая рабочая книга, то ее параметры такие же, как и у книги, созданной непосредственно в Excel. В большинстве случаев эта книга пуста и содержит в себе три чистых рабочих листа, причем активным является первый лист.

Для возможности непосредственной работы с данными, следует создать переменную, со ссылкой на объект типа рабочего листа (ячейки в Excel являются подобъектами именно рабочего листа, а не книги). Это можно сделать следующей командой:

число в скобках указывает на индекс рабочего листа в книге. Т.к. нумерация листов начинается с 1, то указанная команда присваивает переменной oMySheet ссылку на первый рабочий лист.

Для непосредственного обращения к ячейке следует использовать свойство рабочего листа Cells, например:

OMySheet.Cells(1,1).Value = «Hello World»

Числа в скобках, разделенные запятой, являются координатами ячейки в формате RC. Первое число задает номер строки, второе – номер столбца. Вместо чисел допускается указывать имена целочисленных переменных, определенных в VFP.

После совершения необходимых операций с данными на рабочем листе приложение Excel следует сделать видимым, что производится командой oExcel.Visible=.T.

Таким образом, следующий программный код создает новую книгу Excel и передает в нее текстовую строку:

*создаем объект приложения

*создаем в приложении новую книгу

*получаем ссылку на первый рабочий лист

*заносим в ячейку А1 текстовую надпись Hello World

*делаем приложение видимым на экране

Программный код можно прописать либо в командном окне (при этом каждая команда немедленно выполняется и доступна интерактивная подсказка синтаксиса), либо в программном модуле, например в событии нажатия кнопки на форме (при этом команды будут выполнены только после запуска модуля и, к сожалению, интерактивная помощь не доступна, т.к. VFP просто не знает о чем подсказывать). Рекомендуется все малознакомые команды вначале пробовать в командном окне, а только потом прописывать их в программных модулях (только без фанатизма, прописать цикл в командном окне просто не получится).

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Как из Excel обратиться к другому приложению

Иногда бывает необходимо перенести что-то из Excel в другое приложение. Я возьму для примера Word. Например скопировать ячейки и вставить. Обычно мы это так и делаем — скопировали в Excel, открыли Word — вставили. Но сделать это при помощи кода чуть сложнее, хотя если разобраться никаких сложностей нет. Ниже приведен пример кода, который открывает Word, открывает в нем определенный документ, копирует данные из Excel и вставляет в открытый документ Word.

Sub OpenWord() Dim objWrdApp As Object, objWrdDoc As Object ‘создаем новое приложение Word Set objWrdApp = CreateObject(«Word.Application») ‘Можно так же сделать приложение Word видимым. По умолчанию открывается в скрытом режиме ‘objWrdApp.Visible = True ‘открываем документ Word — документ «Doc1.doc» должен существовать Set objWrdDoc = objWrdApp.Documents.Open(«C:Doc1.doc») ‘Копируем из Excel диапазон «A1:A10» Range(«A1:A10»).Copy ‘вставляем скопированные ячейки в Word — в начала документа objWrdDoc.Range(0).Paste ‘закрываем документ Word с сохранением objWrdDoc.Close True ‘ False — без сохранения ‘закрываем приложение Word — обязательно! objWrdApp.Quit ‘очищаем переменные Word — обязательно! Set objWrdDoc = Nothing: Set objWrdApp = Nothing End Sub

Tips_Macro_OpenWord.xls (49,5 KiB, 4 453 скачиваний)

В файле-примере, приложенном к данной статье, в комментариях к коду есть несколько добавлений. Например, как вставить текст из ячеек в определенные закладки Word-а и как добавить новый документ, а не открывать уже имеющийся. Так же так есть код проверки — открыто ли приложение Word в данный момент. Порой это тоже может пригодиться, чтобы работать с запущенным приложением Word, а не создавать новое:

Sub Check_OpenWord() Dim objWrdApp As Object On Error Resume Next ‘пытаемся подключится к объекту Word Set objWrdApp = GetObject(, «Word.Application») If objWrdApp Is Nothing Then ‘если приложение закрыто — создаем новый экземпляр Set objWrdApp = CreateObject(«Word.Application») ‘делаем приложение видимым. По умолчанию открывается в скрытом режиме objWrdApp.Visible = True Else ‘приложение открыто — выдаем сообщение MsgBox «Приложение Word уже открыто», vbInformation, «Check_OpenWord» End If End Sub

В принципе, активировать или вызвать(если закрыто) другое приложение Офиса можно одной строкой:

Sub Open_AnotherApp() Application.ActivateMicrosoftApp xlMicrosoftWord End Sub

но данный метод может пригодиться только в том случае, если Вам необходимо действительно лишь активировать другое приложение, но дальше обращаться к этому приложению Вы уже не сможете.

Читать еще:  Как уменьшить размер видеофайла mp4

По сути, методами CreateObject и GetObject можно обратиться к любому стороннему приложению(например Internet Explorer). Куда важнее при обращении к этим объектам знать объектную модель того приложения, к которому обращаетесь. Чтобы увидеть свойства и методы объектной модели приложения, можно в редакторе VBA подключить необходимую библиотеку, объявить переменную, назначив ей тип приложения. Покажу на примере того же Word-а.
Для начала открываем меню Tools — References :

Подключаем библиотеку:

Затем объявляем переменную и присваиваем ей тип нужного приложения:

Sub OpenWord() Dim objWrdApp As Word.Application Set objWrdApp = New Word.Application objWrdApp.Visible = True End Sub

Если теперь в редакторе, внутри этой процедуры в любом месте ниже объявления переменной набрать objWrdApp и точку, то сразу после ввода точки выпадет меню, в котором будут перечислены все доступные методы и свойства этого приложения.

Так же можно нажать F2 и через поиск найти Word и просмотреть все методы и свойства данного приложения.

Метод установки ссылки на библиотеку приложения через ToolsReferences называют еще ранним связыванием. Подобный метод позволяет создать ссылку на приложение быстрее и, как описано выше, предоставляет разработчику доступ к визуальному отображению свойств и методов объекта. Но есть существенный минус: если в своем коде Вы установите ссылку на Word 12 Object Libbary(Word 2007), то на ПК с установленным Word 2003 получите ошибку MISSING, т.к. Word 2003 относится к библиотеке Word 11 Object Libbary. Подробнее можно прочитать в статье Ошибка — Cant find project or library.
Метод же CreateObject еще называется методом позднего связывания. Применяя его не возникнет проблем с MISSING, очень часто возникающих при раннем связывании. Поэтому я рекомендовал бы при разработке использовать раннее связывание для удобства использования свойств и методов(если Вы их не знаете), а перед распространением приложения к коде заменить все именованные константы(типа wdLine) на числовые константы(для wdLine это 5) и применить позднее связывание. Посмотреть числовое значение константы можно просто записав её в коде, начать выполнение кода через F8 и навести курсор мыши на эту константу. Всплывающая подсказка покажет числовое значение. Так же можно отобразить окно Immediate(ViewImmediate Window или сочетание клавиш Ctrl + G ), записать вопросительный знак и вставить эту константу и нажать Enter :
?wdLine
ниже будет выведено числовое представление этой константы.
А заменять эти константы их числовыми значениями в случае с поздним связыванием необходимо, т.к. Excel не знает их значений.
Попробую пояснить поподробнее про эти константы и почему их надо заменять какими-то числами: при подключении библиотеки Wordа(Word 12 Object Libbary) мы так же подключаем и все свойства, методы и константы, которые доступны из Wordа. И их использование напрямую становится доступно из Excel и мы можем смело написать что-то вроде wbLine и Excel поймет эту константу. При позднем же связывании мы уже не подключаем библиотеки Word(во избежание ошибок совместимости) и как следствие — методы, свойства и константы Wordа для Excel становятся чем-то неизвестным и не документированным и мы получим ошибку «Variable not defined»(если включена директива Option Explicit) при попытке назначить свойство через wdLine. Если же Option Explicit не включена — то хоть ошибки не будет, но и код будет работать неверно, т.к. для неизвестной для Excel переменной wbLine будет назначено значение 0(Empty). Поэтому и надо все константы другого приложения заменять их числовыми значениями.

Главная ошибка новичка
И хочу так же упомянуть про ошибку, которую очень часто совершают при обращении к одному приложению из другого. Допустим, необходимо скопировать из Word все данные в Excel. Часто начинающие делают это так:

Sub OpenWord() Dim objWrdApp As Object, objWrdDoc As Object ‘создаем новое приложение Word Set objWrdApp = CreateObject(«Word.Application») ‘Можно так же сделать приложение Word видимым. По умолчанию открывается в скрытом режиме ‘objWrdApp.Visible = True ‘открываем документ Word — документ «Doc1.doc» должен существовать Set objWrdDoc = objWrdApp.Documents.Open(«C:Doc1.doc») ‘Копируем из Word все данные, обращаясь к объекту Range документа Range.Copy ‘вставляем скопированное в ячейку А1 активного листа Excel ActiveSheet.Paste ‘закрываем документ Word без сохранения objWrdDoc.Close False ‘закрываем приложение Word objWrdApp.Quit ‘очищаем переменные Word — обязательно! Set objWrdDoc = Nothing: Set objWrdApp = Nothing End Sub

На строке Range.Copy обязательно получите ошибку от VBA, указывающую, что нужен аргумент для объекта. Можно попробовать добавить этот аргумент: Range(1).Copy. Но все равно получим ошибку. Можно, конечно, указать даже ячейки: Range(«A1»).Copy. Но это приведет к тому, что скопирована будет ячейка А1 активного листа Excel.
Все дело в том, что мы хотим скопировать данные из Word-а, выполняя при этом код из Excel. А у Excel тоже есть объект Range с другими аргументами. И если не указать какому приложению, листу или документу принадлежит Range, то по умолчанию он будет отнесен к тому приложению, из которого выполняется код. Т.е. к Excel. Если совсем кратко об этом — всегда надо указывать какому приложению или объекту принадлежит используемый объект или свойство. Правильно код должен выглядеть так:

Sub OpenWord() Dim objWrdApp As Object, objWrdDoc As Object ‘создаем новое приложение Word Set objWrdApp = CreateObject(«Word.Application») ‘Можно так же сделать приложение Word видимым. По умолчанию открывается в скрытом режиме ‘objWrdApp.Visible = True ‘открываем документ Word — документ «Doc1.doc» должен существовать Set objWrdDoc = objWrdApp.Documents.Open(«C:Doc1.doc») ‘Копируем из Word все данные, обращаясь к объекту Range документа ‘при этом перед Range явно указываем откуда его брать — из документа Word -objWrdDoc(«C:Doc1.doc») objWrdDoc.Range.Copy ‘вставляем скопированное из Word в активную ячейку активного листа Excel ActiveSheet.Paste ‘закрываем документ Word без сохранения objWrdDoc.Close False ‘закрываем приложение Word objWrdApp.Quit ‘очищаем переменные Word — обязательно! Set objWrdDoc = Nothing: Set objWrdApp = Nothing End Sub

Вместо Range ту же ошибку делают и с Selection(потому что Selection часто присутствует в записанных макрорекордером макросах), т.к. этот объект есть и в Excel и в Word и без явного указания приложения будет относится к приложению, в котором записано.

В приложенном файле код немного отличается от представленных выше — в нем можно посмотреть как вставить текст из ячеек в определенные(созданные заранее) закладки Word-а. Это удобно для создания бланков в Word и заполнения их через Excel
Скачать пример:

Tips_Macro_OpenWord.xls (49,5 KiB, 4 453 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Ссылка на основную публикацию
Adblock
detector