Vba как написать программу автозаполнения документа word
Ключевым в объектной модели Word является объект Application, так как он содержит все остальные объекты Word. Его элементами на разных уровнях иерархии являются около 180 объектов. Сам корневой объект Application имеет более сотни элементов: свойств, методов и событий.
Свойства объекта Word.Application
Свойства любого объекта делятся на две группы: свойства-участники (объекты) и терминальные свойства (обычные переменные VBA).
Единую систему организации панелей меню и инструментальных кнопок обеспечивает объект CommandBars, справок – Assistant, поиска – FileSearch.
Центральными объектами Word являются коллекции Documents и Templates, точнее составляющие их элементы, сам документ и шаблоны.
Рассмотрим объекты второго плана.
Объект AutoCorrect поддерживает работу по автоматической коррекции набираемых текстов. Его возможности эквивалентны команде Автозамена меню Сервис.
Объект Browser позволяет перемещать точку вставки, указывающую на объекты в документе.
Коллекция объектов Dialogs представляет совокупность диалоговых окон, встроенных в Word. Добавлять новые или удалять элементы этой коллекции программным путем нельзя. Но соответствующие окна можно открыть и показать на экране дисплея и тем самым организовать диалог пользователем по теме, заданной соответствующим окном.
Три объекта, связанные с проверкой грамматики и орфографии: Languages, Dictionaries, SpellingSuggestions, – позволяют установить нужный язык, выбрать словарь, в том числе пользовательские словари, а также работать со списком слов, предлагаемых для исправления при обнаружении ошибки правописания. Команды Правописание и Язык меню Сервис предоставляют аналогичные, функциональные возможности при работе с документом вручную.
С помощью объекта Options можно программным путем установить различные опции приложения и документа аналогично тому, как если бы вы выбрали команду Параметры в меню Сервис.
Работа с документами и класс Document
Когда открывается приложение, создается коллекция документов Documents, содержащая все открытые документы. В начальный момент коллекция содержит минимум один новый или ранее существовавший документ. Новый документ добавляется методом Add, а уже существующий – методом Open объекта Documents. Чтобы добраться до нужного документа, достаточно указать его индекс – имя файла, хранящего документ, или его порядковый номер в коллекции. Для той же цели можно использовать и метод Item, но обычно он опускается. Метод Save позволяет сохранить документ, а метод Close, сохраняя документ в файле, закрывает его и удаляет из коллекции.
Глобальное свойство Dialogs возвращает коллекцию диалоговых окон. Константа wdDialogFileOpen задает конкретное диалоговое окно – объект класса Dialog.
Классы, задающие структуризацию текста документа
Текст – это основа большинства документов. Его можно структурировать, оперируя различными единицами при решении тех или иных задач преобразования. Минимальной единицей текста обычно является символ. Кроме этого, существуют следующие единицы: слова, предложения, абзацы, а также более крупные образования: страницы, параграфы, главы.
Классы Characters, Words, Statements, Paragraphs, Sections позволяют работать с последовательностями (коллекциями) символов, слов, предложений, абзацев и разделов. Самой крупной единицей после абзаца выступает раздел. Элементом коллекций Characters, Words и Statements является объект класса Range. Объект Range позволяет работать как с одним элементом, так и с произвольной последовательностью элементов. Документы, поддокументы, абзацы, разделы – все они имеют метод или свойство Range, возвращающее интервал, связанный с объектом. Поэтому работа с текстом так или иначе ведется через методы и свойства объекта Range.
События объекта Document
Объект Document может реагировать на три события, возникающие в результате действий пользователя.
События объекта DocumentДокумент и его части
Рассмотрим основные классы, определяющие структуру документа.
1. Subdocuments (Subdocument) – коллекция и сам поддокумент. Есть некоторый разумный предел размера одного документа. Если в документе больше 10–20 страниц, работать с ним становится неудобно. В этом случае в нем выделяют главный документ и поддокументы. Главный документ в этом случае имеет коллекцию поддокументов, каждый из них является, по сути, документом, с которым можно работать независимо.
Метод AddFromRange класса SubDocuments создает поддокумент, выделяя из главного документа область, заданную параметром Range.
2. Tables (Table), TablesOfAuthoritiesCategories (T.O.A.C), TablesOfAuthorities (TableOfAuthorities), TablesOfContents (TablesOfContent), TablesOfFigures (TablesOfFigure). Класс Table определяет «обычные» таблицы с произвольным количеством строк и столбцов и произвольным заполнением полей. Остальные классы задают таблицы специального вида.
3. Shapes(Shape), InlineShapes(InlineShape) – эти две коллекции с их элементами позволяют добавлять в документ рисунки, но не только их. ActiveX– и OLE-объекты также являются элементами этих коллекций. Элементы этих двух коллекций отличаются тем, как они привязаны к документу: первые могут свободно перемещаться, вторые жестко привязаны к заданной области документа.
4. Lists(List), ListParagraphs(ListParagraph), listTemplates (ListTemplate) – списки удобно вводить в документ, когда имеешь дело с перечислением. Списки можно оформлять в соответствии с шаблоном. Существуют две группы шаблонов: нумерованные списки и списки-бюллетени. Коллекция ListTemplates содержит шаблоны оформления списков, а класс ListTemplate описывает конкретный шаблон. Шаблон применяется к списку абзацев и придает ему структуру, заданную шаблоном. Коллекция Lists содержит те списки документа (списки абзацев), что оформлены как нумерованные списки или списки-бюллетени. Коллекция ListParagraphs представляет список абзацев всех списков документа. Свойством ListParagraphs, которое возвращает объект соответствующего класса, обладает не только документ, но и объекты List и Range. Так что при наличии списка – объекта List можно выделить список абзацев. Чаще приходится выполнять обратную операцию – применять к списку абзацев один из возможных шаблонов, придав ему «настоящую» структуру списка. Тогда используют объект ListFormat.
5. Comments(Comment), Bookmarks(Bookmark), FootNotes (FootNote), EndNotes(EndNote), Fields(Field) – эти коллекции и их элементы отражают независимые, но близкие по духу понятия. Это части документа, косвенно связанные с ним. При нормальном просмотре документа они могут быть и не видны.
• Коллекция comments и класс comment задают комментарии. Комментарии, как известно, вводятся для пояснения тех или иных терминов или понятий документа. Формально они приписываются некоторой области – объекту range.
• Большой документ, к отдельным частям которого приходится часто обращаться, стоит снабдить закладками. Коллекция bookmarks задает все закладки данного документа.
• Еще один способ комментирования – сноски. Они могут быть двух видов: подстраничные (внизу страницы) и концевые (в конце документа). Первые собраны в коллекцию footnotes, вторые – endnotes.
6. Fields (Field) – эта коллекция позволяет работать с полями документа. Одна из особенностей полей состоит в том, что их значения обновляются автоматически в зависимости от изменившихся внешних условий или контекста.
7. Story Ranges (Range) – эта коллекция представляет совокупность частей документа, называемых фрагментами (Story). Количество различных фрагментов документа фиксировано. Нельзя добавлять элементы в эту коллекцию обычным способом, используя метод Add. Фрагменты появляются в коллекции, когда создается соответствующая часть документа.
Фрагменты имеют тип, задаваемый константами из перечисления wdStoryType. Главный фрагмент – текст документа, тип которого задается константой wdMainTextStory. Комментарии, ссылки, колонтитулы составляют фрагменты других типов, т. е. сам фрагмент является объектом Range. Так что благодаря фрагментам можно, например, работать с коллекцией комментариев как с единой областью.
8. Variables (Variable) – с документом можно связать коллекцию переменных типа Variant. Это важная для программистов коллекция, так как время жизни переменных, в нее входящих, совпадает со временем жизни документа. Тем самым появляется возможность сохранять информацию о работе той или иной процедуры между сеансами. Например, можно иметь счетчики, подсчитывающие число вызовов макроса, и в зависимости от этого по-разному определять его дальнейшую работу.
Объекты Range и Selection
Объект Document имеет метод Range, возвращающий объект Range, и метод Select, создающий объект Selection. Метод Range – это функция, возвращающая как результат объект Range; метод Select – это процедура без параметров, которая создает объект Selection в качестве побочного эффекта. Объект Range имеет метод Select, превращающий область объекта Range в выделенную. Тем самым метод Select определяет новый объект Selection. Симметрично, объект Selection имеет свойство Range, возвращающее объект Range, соответствующий выделенной области.
Большинство ранее описанных частей документа являются и частями (свойствами) объектов Range и Selection.
Объект Range напоминает матрешку: в каждую область вложена область поменьше. Вот пример корректного (хоть и не самого эффективного) задания объекта Range:
Объекты Range и Selection позволяют выполнять основные операции над текстом: «выделить», «добавить», «заменить», «удалить». У наших объектов большой набор методов, позволяющих реализовать эти операции. Все рассматриваемые здесь методы принадлежат обоим объектам, если не сделана специальная оговорка.
Выделение
Выделить некоторую часть текста по существу означает определить объект Range или Selection. Объекты задают некоторую область в тексте документа, а их свойства Start и End позволяют установить начало и конец этой области. Меняя значения свойства, можно задать нужную область выделения.
Move является основным методом перемещения точки вставки. Остальные методы этой группы – в той или иной степени его модификации. Метод Move(Unit, Count) сжимает область в точку, стягивая ее в начало или конец, а затем перемещает точку вставки. Параметр Unit определяет единицы перемещения, a Count – количество этих единиц (по умолчанию 1). Знак переменной Count задает направление стягивания и перемещения. Положительные значения этого параметра задают стягивание к концу и перемещение вперед, отрицательные – стягивание в начало и перемещение назад. Чистое стягивание без перемещения точки вставки задается как перемещение на одну единицу. Метод возвращает количество единиц, на которое фактически произошло перемещение, или 0, если оно не осуществлено. Параметр Unit принимает значения wdCharacter (по умолчанию), wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow и wdTable.
Методы перемещения на сам текст не влияют – лишь изменяют область, заданную объектами Range и Selection. Поэтому эти методы применимы только к переменным типа Range, но не к фиксированным областям. Например, запись
не имеет эффекта, поскольку область первого абзаца – вещь неизменяемая. Метод Move стягивает область в точку, которая и перемещается, поэтому после его выполнения область исчезает, остается только точка вставки. Методы MoveStart и MoveEnd перемещают начальную или конечную точку области, обычно тем самым расширяя область.
Удаление текста
Метод Delete позволяет удалить текст. Вызванный без параметров, он удаляет вызывающий его объект Range или Selection. Если он применен в форме Delete(Unit,Count), удаляется часть текста в указанной области. Параметр Unit задает единицы, но при удалении возможны только два значения: wdWord и wdCharacter. Параметр Count задает количество удаляемых единиц. Если область стянута в точку, удаляются символы перед точкой вставки или после нее в зависимости от знака параметра Count.
Вставка текста
Группа методов Insert объектов Range и Selection позволяет осуществлять вставки в документ. Для вставки текста используются методы InsertBefore(Text) и InsertAfter(Text). Параметр text типа string задает текст, вставляемый до или после области, заданной объектами range или selection. После вставки текста область автоматически расширяется, включая в себя добавляемый текст.
Свойство Text позволяет заменять текст в выделенной области, поэтому нет нужды вызывать метод Insert(Text). Методы InsertBefore и InsertAfter безопасны, так как текст добавляется, не изменяя содержимого области. Совсем иное дело – методы вставки, которые далеко не безопасны. При вставке внутрь области, например при использовании метода InsertSymbol или InsertParagraph, заменяется содержимое области.
Работа с буфером
Метод Сору, не имеющий параметров, копирует объект (содержимое области) в буфер. Метод cut, действуя аналогично, должен бы заодно и удалять объект. Но сам объект не удаляется – только стягивается в точку, так что над ним возможны дальнейшие операции.
Иногда в буфер копируют не текст, а его формат. Этим занимается метод CopyFormat, копирующий формат по первому символу объекта selection. Если этот символ – метка абзаца, копируется формат абзаца. Методом CopyFormat обладает только объект selection.
Метод Paste позволяет поместить («приклеить») содержимое буфера в область, заданную объектами Range и Selection. Эта операция опасна, так как происходит замена, а не добавление текста. Поэтому обычно метод Paste применяется к объектам Range и Selection, предварительно стянутым в точку вставки. Метод PasteFormat применяет форматирование, хранящееся в буфере, к объекту Selection.
Например, создадим макрос, который вставляет список «урок, экзамен, сдал!», копирует его и помещает еще раз на лист.
Sub Макрос1()
With Selection.ParagraphFormat
Selection.TypeText Text:="Работа с текстом:"
Selection.TypeParagraph
With
ListGalleries(wdBulletGallery).ListTemplates(1)._ListLevels(1)
End With
End With
ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""
Selection.Range.ListFormat.ApplyListTemplate
ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
Selection.TypeText Text:="урок"
Selection.TypeParagraph
Selection.TypeText Text:="экзамен"
Selection.TypeParagraph
Selection.TypeText Text:="сдал"
Selection.TypeParagraph
Selection.Range.ListFormat.RemoveNumbers
NumberType:=wdNumberParagraph
Selection.TypeParagraph
Selection.Font.Bold = wdToggle
Selection.Font.Italic = wdToggle
Selection.TypeText Text:="Работа завершена!"
Selection.WholeStory
Selection.Copy
Selection.PasteAndFormat (wdPasteDefault)
Selection.PasteAndFormat (wdPasteDefault)
End Sub
Наиболее важной особенностью работы на VBA в Word является вставка текста в документ при работе с приложениями. Для этого служат объекты Range и Selection, которые являются главными для практически любых операций, которые можно выполнять с помощью Word VBA. Некоторые из этих действий можно применять к документам в целом, но в общем случае вам необходим диапазон или выделенная область, прежде чем вносить изменения. Мы, однако, рассмотрим действия с документом при его создании.
Открытый документ Word уже содержит объекты Range, соответствующие многим его элементам. Каждый абзац, таблица, ячейка таблицы, комментарий и т. д. определяют диапазоны. Например, для того чтобы вставить некоторый текст в уже существующий документ, необходимо прописать код:
Причем данная строка будет расположена в конце существующего параграфа. С другой стороны, используя объект Selection, можно также вставить некоторый текст в документ, используя метод Add и присвоение свойства Text объекту Selection:
If Documents.Count = 0 Then Documents.Add
Selection.Text i_098.jpg"/>
Рис. 64. Форма ввода данных
При работе с текстом на рабочем листе Word необходимо знать следующие коды:
определение цвета
Selection.Font.Color =
В этой статье описывается создание нового документа в Word с помощью автоматизации из Visual Basic.
Пример кода
В примере кода в этой статье показано, как выполнить следующие действия:
- Вставка абзацев с текстом и форматированием.
- Просмотр и изменение различных диапазонов в документе.
- Вставка таблиц, форматирование таблиц и заполнение таблиц данными.
- Добавление диаграммы.
Чтобы создать новый документ Word с помощью автоматизации из Visual Basic, выполните следующие действия:
В Visual Basic создайте новый стандартный проект EXE. По умолчанию создается форма Form1.
В меню проект выберите пунктссылки, выберите один из следующих параметров и нажмите кнопку ОК:
- Для Office Word 2007 щелкните объектная Библиотека Microsoft Word 12,0.
- В Word 2003 щелкните объектная Библиотека Microsoft word 11,0.
- В Word 2002 щелкните объектная Библиотека Microsoft word 10,0.
- В Word 2000 щелкните объектная Библиотека Microsoft word 9,0.
Добавление элемента управления CommandButton в форму Form1.
Добавьте следующий код в событие Click для Command1:
Нажмите клавишу F5, чтобы запустить программу, а затем выберите Command1.
После завершения кода проверьте созданный документ. Документ содержит две страницы форматированных абзацев, таблиц и диаграмм.
Использование шаблона
Если вы используете автоматизацию для создания документов, отформатированных в общем формате, можно воспользоваться новым документом, основанным на предварительно отформатированном шаблоне. Использование шаблона с клиентом автоматизации Word имеет два существенных преимущества по сравнению с созданием документа из ничего:
- Вы можете больше управлять форматированием и размещением объектов в документах.
- Вы можете создавать документы с меньшим количеством кода.
С помощью шаблона можно выполнить точную настройку размещения таблиц, абзацев и других объектов в документе, а также включить форматирование для этих объектов. С помощью автоматизации можно создать новый документ на основе шаблона, используя следующий код:
В шаблоне можно определить закладки, чтобы клиент автоматизации мог заполнять переменный текст в определенном месте документа, как показано ниже:
Еще одно преимущество использования шаблона состоит в том, что вы можете создавать и сохранять стили форматирования, которые вы хотите применить во время выполнения, следующим образом:
Ссылки
Для получения дополнительных сведений щелкните номера статей, приведенные ниже, чтобы просмотреть статьи базы знаний Майкрософт:
285332 как автоматизировать Word 2002 с помощью Visual Basic для создания слияния почты
(c) корпорация Майкрософт (Microsoft Corporation) 2001, все права защищены. Вклады Лори B. Турнер, корпорация Майкрософт.
Версия данной статьи для Microsoft Visual Basic 6.0: .
Аннотация
В этой статье подробно рассматривается создание документов Word с помощью возможностей автоматизации Visual Basic.
Пример кода
Следующий пример кода показывает, как это сделать:
Вставка абзацев с определенными параметрами форматирования.
Модификация диапазонов в рамках документа.
Вставка, форматирование и заполнение таблиц.
Для создания документа Word с помощью Visual Basic необходимо выполнить следующие действия.
Добавьте ссылку на объектную библиотеку Microsoft Word Object Library. Для этого выполните следующие действия:
В меню Проект выберите команду Добавить ссылку.
На вкладке COM выделите библиотеку Microsoft Word Object Library и нажмите кнопку Выбрать.
Примечание. В состав Microsoft Office 2003 и более поздних версий набора Office входят основные сборки взаимодействия (PIA). Набор Microsoft Office XP не включает эти сборки, но их можно загрузить.
Чтобы узнать больше об основных сборках взаимодействия PIA для Office XP, щелкните номер следующей статьи базы знаний Майкрософт:
Загрузка основных сборок взаимодействия (PIA) для набора Microsoft Office XP
Для подтверждения сделанного выбора нажмите кнопку OK в диалоговом окне Add References. Если появится запрос на создание оберток для выбранных библиотек, нажмите кнопку Yes.
Для отображения панели элементов выберите в меню View элемент Toolbox и добавьте кнопку в форму Form1.
Дважды щелкните кнопку Button1. Появится окно программного кода формы.
В окне кода замените следующий код:
Добавьте следующий код в верхнюю часть файла Form1.vb:
Чтобы построить и запустить программу, нажмите клавишу F5.
После завершения кода проверьте созданный документ. Документ содержит две страницы форматированных абзацев, таблицы и диаграмму.
Использование шаблона
Если вы используете автоматизацию для построения документов в одинаковом формате, вы можете запустить процесс с новым документом на основе предварительно отформатированного шаблона. Использование шаблона имеет два существенных преимущества по сравнению с созданием документа с нуля.
Разработчик более полно контролирует формат и расположение объектов в документах.
Уменьшается размер программного кода, который нужен для создания документа.
Вы можете точно указать место расположения и формат объектов (например таблиц и абзацев) в рамках документа, а также включить форматирование этих объектов. Ниже приведен пример программного кода для автоматизации создания документа на основе шаблона.
Следующий программный код позволяет определить в шаблоне метки, по которым клиент автоматизации вставит произвольный текст в документ.
Еще одно преимущество использования шаблонов состоит в том, что вы можете создавать и сохранять стили форматирования, которые используются на этапе выполнения программы.
Ссылки
Дополнительные сведения см. на следующих веб-сайтах Microsoft Developer Network (MSDN):
При разработке приложения, использующего данные в документе Office, может быть полезно иметь эти данные непосредственно в приложении Visual Basic, чтобы пользователь мог просматривать и редактировать данные без необходимости переключаться на приложение Office. Это можно сделать в Visual Basic с помощью элемента управления OLE Container.
В этой статье описывается динамическое создание и автоматизация документа Office с помощью элемента управления OLE Container.
Дополнительные сведения
Возможность вставки документа Office в Visual Basic осуществляется с помощью технологии технологии OLE и связывания и внедрения объектов Майкрософт. Технология OLE предназначена для того, чтобы позволить другому приложению размещать объект, принадлежащий другому приложению, так, чтобы он был удобным для конечного пользователя, но не требует от приложений знать внутренние сведения о другом. Visual Basic предоставляет элемент управления OLE Container, позволяющий программистам Visual Basic добавлять в форму объекты OLE.
После внедрения объекта большинство OLE-серверов поддерживают автоматизацию, чтобы ведущее приложение программно изменяет или манипулирует объектом из кода. Чтобы получить ссылку на объект Automation, используйте свойство Object контейнера OLE. Это свойство возвращает объект автоматизации, который точно соответствует внедренному элементу.
Создание приложения Visual Basic, в котором размещается книга Excel
Запустите Visual Basic и создайте новый стандартный проект. По умолчанию создается форма Form1.
На панели элементов управления добавьте три командные кнопки в форму Form1. Затем добавьте экземпляр элемента управления OLE Container. Когда элемент управления OLE Container размещается в форме, он запрашивает тип объекта, который вы хотите вставить. Для этого примера необходимо динамически добавить объект, поэтому нажмите кнопку Отмена, чтобы закрыть диалоговое окно без добавления объекта.
В окне кода для формы Form1 добавьте следующий код:
Создание приложения Visual Basic, в котором размещается документ Word
Запустите Visual Basic и создайте новый стандартный проект. По умолчанию создается форма Form1.
На панели элементов управления добавьте три командные кнопки в форму Form1. Затем добавьте экземпляр элемента управления OLE Container. Когда элемент управления OLE Container размещается в форме, он запрашивает тип объекта, который вы хотите вставить. Для этого примера необходимо динамически добавить объект, поэтому нажмите кнопку Отмена, чтобы закрыть диалоговое окно без добавления объекта.
В окне кода для формы Form1 добавьте следующий код:
Рекомендации по использованию OLE Container
При внедрении из существующего файла данные, содержащиеся в контейнере OLE, являются копией данных в файле. Все внесенные изменения не сохраняются автоматически в один и тот же файл. Несмотря на то, что вы можете использовать метод, аналогичный приведенному выше, чтобы сохранить результаты обратно в определенный файл, не все OLE серверы поддерживают эту возможность. Он не считается обычным поведением объекта OLE.
Если вы привязку к файлу, объект невозможно активировать на месте. Вместо этого, когда пользователь дважды щелкает объект, объект открывается в окне серверного приложения. На месте можно активировать только внедренные объекты.
Элемент управления OLE Container связан с данными. Если у вас есть база данных Access 97 или Access 2000, вы можете привязывать элемент управления к полю объекта OLE в базе данных. При отображении формы данные извлекаются из базы данных и отображаются для редактирования пользователем. Любые изменения, внесенные пользователем, автоматически сохраняются в базе данных при закрытии объекта OLE.
Чтобы сделать привязанные данные элемента управления OLE Container, добавьте элемент управления данными Visual Basic и присвойте свойству DatabaseName путь к базе данных. Затем присвойте источнику записи существующую таблицу в базе данных. Используйте свойство DataSource элемента управления OLE, чтобы присоединить элемент управления к элементу управления данными Visual Basic, а затем задайте свойство DataObject, чтобы оно ссылалось на определенное поле в наборе записей, содержащее объект OLE. Visual Basic выполняет остальные функции.
Размер и положение заштрихованной границы, которая отображается, когда контейнер становится активным на месте, определяется размером объекта и параметрами, выбранными для элемента управления OLE. Эта граница отображается, чтобы пометить границы окна редактирования. Границы окна редактирования часто не совпадают с границами самого контейнера OLE; Такое поведение является нормальным для объекта OLE. Окно редактирования невозможно изменить программным способом с помощью Visual Basic.
Некоторые методы автоматизации могут работать неправильно, если объект не был активирован на месте. Чтобы программно активировать объект OLE, используйте метод Доверб и укажите Вболешов (-1) в качестве команды.
Чтобы определить, отображается ли меню связанного или внедренного объекта в форме контейнера, можно задать свойство формы Неготиатеменус. Если для свойства Неготиатеменус дочерней формы задано значение true, а в контейнере определена строка меню, меню объекта помещаются в строку меню контейнера при активации объекта. Если в контейнере нет строки меню или для свойства Неготиатеменус задано значение false, меню объекта не отображаются при его активации. Обратите внимание, что свойство Неготиатеменус не применяется к формам MDI, поэтому меню формы MDI невозможно объединить с активизированными объектами. Чтобы проиллюстрировать согласование меню, попробуйте выполнить указанные ниже действия с примером приложения, созданного в предыдущем разделе.
Visual Basic не позволяет управлять процессом слияния меню или вносить изменения в элементы меню сервера при добавлении. Однако вы можете изменить или изменить меню приложения Office с помощью автоматизации, используя код, аналогичный приведенному ниже:
Обратите внимание, что некоторые изменения могут быть внесены до того, как объект станет активным на месте, в противном случае изменения могут не отображаться в меню слияние.
Note (Примечание ) Эта точка маркера не относится к Microsoft Office Excel 2007 или Microsoft Office Word 2007.
Visual Basic в настоящее время не поддерживает назначение пространства панели инструментов. Таким образом, закрепленные панели инструментов обычно не отображаются при активации объекта. Тем не менее, можно отобразить плавающее окно инструментов с автоматизацией:
Note (Примечание ) Эта точка маркера не относится к Microsoft Office Excel 2007 или Microsoft Office Word 2007.
Для программ, требующих, чтобы объект оставался активным на месте постоянно, корпорация Майкрософт предоставила технологию ActiveX Documents. Не все серверы OLE являются серверами документов ActiveX; Microsoft Word, Microsoft Excel и Microsoft PowerPoint — это серверы документов ActiveX.
Visual Basic не поддерживает собственный элемент управления для размещения документов ActiveX. Однако элемент управления WebBrowser, поставляемый с Internet Explorer (версия 3,0 и более поздние версии), поддерживает такую форму включения на месте. Этот элемент управления можно использовать для открытия документа Office в виде документа ActiveX. Для получения дополнительных сведений об использовании элемента управления WebBrowser обратитесь к следующей статье:
243058 как использовать элемент управления WebBrowser для открытия документа Office
Метод SaveToFile контейнера OLE создает файл, который можно открыть в контейнере OLE. Однако файлы, сохраненные с помощью метода SaveToFile контейнера OLE, невозможно открыть непосредственно в соответствующем приложении Office. Если вы хотите сохранить внедренный документ на диске, чтобы документ можно было открыть в целевом приложении, используйте метод SaveAs документа приложения:
Столкнулся с проблемой на работе, хочется оптимизировать документ но не совсем понимаю как это сделать. Задача в целом наверное простая. Я создаю в VBA Userform, в ней создаю 5 полей textbox и одну commandbuttnon. Я вызываю этот макрос и по нажатию на кнопку хочу чтобы документ, в зависимости от расставленных меток в документе, заполнился текстом который я ввел в эти 5 полей. Я ни разу макросами не пользовался, хочется сделать, но не могу сообразить что написать. Не совсем понимаю как создать событие нажатие на кнопку, считывание данных из полей и дальнейшее заполнение в зависимости от этого документа. Буду благодарен если поможете решить проблему.
Word макрос для копирования документа с учетом формата
Добрый день, форумчане! Подскажите пожалуйста, есть задачка. Макросом открывается файл Word.
Макрос Word Создание нового документа
Помогите написать макрос Создание нового документа и предоставление его пользователю для.
Написать макрос в word. Посимвольное прохождение документа
Написать макрос: прохождение документа посимвольно и определять если символ 14 шрифта то после него.
Написал такой код
Но вот проблема, вроде закладки поставил но даже в первую хотя бы в номер не вставляет. Пока строки закоментил. Не пойму в чем проблема. Почему не подтягивается из формы в документ. Еще вопрос, правильно ли я сделал, и мне надо документ активным открытым держать чтобы он подставил. Или наоборот закрывать ворд. В общем, спасибо кто отзовется.
Если кто знает, как сделать так чтобы динамически вордовский файл заполнялся, то есть вот у меня открыт документ, я вызвал следующую форму. По событию на кнопку заполнить, заполнил по закладкам документ ?
Добавлено через 1 час 32 минуты
Разобрался что было не так, может кто подскажет как это сделать когда у тебя активное окно ворда, ато так документ получается закрыт чтобы в нем поменялись закладки, а как сделать чтобы они менялись когда окно активно, т.е. документ открыт ?
Макрос. Приведение документа WORD к нужному виду
Всем доброго времени суток. Есть некий документ WORD написанный абы как. Необходимо макросом.
Макрос, извлекающий реквизиты из документа в Word и вставляющий их в Excel
Здравствуйте, помогите написать макрос, который будет извлекать реквизиты компаний из присланных.
Макрос Word: вставить в конец документа строчку с информацией о документе
Нужен макрос, вставляющий в конец документа строчку с информацией о документе (путь, имя, дата.
Написать макрос MS Word, работающий с участком текста документа, выделенного пользователем
Написать макрос MS Word, который работает с участком текста документа, выделенного пользователем. А.
Читайте также: