|
|||||||
Открыть Word из Excel - Макросы в Excel
Время создания: 16.03.2019 23:43
Раздел: Разные закладки - VBA - Word
Запись: xintrea/mytetra_db_adgaver_new/master/base/1512822029d2qv9am4q4/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Открыть Word из Excel - Макросы в Excel Когда вы работаете в рамках одного приложения, нет необходимости прописывать название приложения. Другое дело работа в нескольких программах. Чтобы открыть Word из Excel пишем: ' запустить Word им сделать его видимым Set wa = CreateObject("Word.Application") wa.Visible = True ' открыть конкретный файл, wd_full_name - полное имя файла, включая путь к нему Set wd = wa.Documents.Open(wd_full_name) Теперь любые операции с этим файлом возможны при обращении к нему по заданному нами имени - wd. Например, wd.Save wd.Close Собственно, таким образом можно открыть Word из любого приложения, а не только из Excel. Аналогично обстоит дело и с другими приложениями. Например, вот так открывается Excel. Set xl = CreateObject("Excel.Application") xl.Visible = True Set xlfile = xl.Workbooks.Open(xlfile_full_name) Не забываем определять переменные xl и xlfile (хотя иногда это не приводит к ошибке). Причем лучше определять их не как объекты конкретного класса ( Dim xlfile As Workbook), а как просто абстрактный объект - Dim xlfile AsObject. Практика показывает, что так возникает гораздо меньше ошибок. Слияние Word и Excel нужно, когда нужно делать много стандартных документов. Создаем шаблон документа, настраиваем слияние, проставляем поля. Теперь заполняем строки в Excel. Создание 10 шаблонных документов потребует от нас следующих действий: - нажать на стрелку для перехода на нужную строку - сохранить Word как новый документ в нужную папку и так 10 раз. А если нужно сделать 50 документов? Чтобы не заниматься глупым нажатием на стрелку, можно доверить генерацию макросу (до этого назовем нужный вордовский файл myfile): With myfile.MailMerge .MainDocumentType = wdFormLetters .OpenDataSource Name:=myfile_name, SQLStatement:="SELECT * FROM `'тут_название_excel-файла$'`", _ ConfirmConversions:=True, ReadOnly:=False, LinkToSource:=True, _ Revert:=False, _ SubType:=wdMergeSubTypeAccess .ViewMailMergeFieldCodes = False End With ' открываем нужную запись в рассылке, допустим n-ную myfile.MailMerge.DataSource.ActiveRecord = n ' сохраняем в нужную папку myfile.SaveAs Filename:=myfile_new_name, FileFormat:=wdFormatDocument, LockComments:=False, Password:="",addToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False myfile.Close Обратите внимание, что слияние должно быть предварительно настроено. Нет смысла проставлять поля слияния макросом, это долго и неэффективно. Использовать же готовый шаблон можно легко и быстро. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|