Макрос при создании документа word

Содержание

  • Области использования макросов:
  • Включение макросов
  • Запись макросов
  • Изменение комбинаций клавиш для макроса
  • Запуск макроса
  • Создание нового макроса
  • Вопросы и ответы

Как создать макрос в Ворде

Макрос — это набор определенных действий, команд и/или инструкций, которые сгруппированы в одну целостную команду, обеспечивающую автоматическое выполнение той или иной задачи. Если вы активный пользователь MS Word, вы тоже можете автоматизировать часто выполняемые задачи, создав для них соответствующие макросы.

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

Области использования макросов:

    1. Ускорение часто выполняемых операций. В числе таковых форматирование и редактирование.

    2. Объединение нескольких команд в целостное действие “от и до”. Например, с помощью макроса можно вставить таблицу заданного размера с необходимым количеством строк и столбцов.

    3. Упрощение доступа к некоторым параметрам и инструментам, расположенным в различных диалоговых окнах программы.

    4. Автоматизация сложных последовательностей действий.

Последовательность макросов может быть записана или создана с нуля путем введения кода в редактор Visual Basic на одноименном языке программирования.

Включение макросов

По умолчанию макросы доступны не во всех версиях MS Word, точнее, они просто не включены. Чтобы активировать их необходимо включить средства разработчика. После этого на панели управления программы появится вкладка “Разработчик”. О том, как это сделать, читайте ниже.

Примечание: В версиях программы, в которых макросы доступны изначально (например, Ворд 2016), средства для работы с ними находятся во вкладке “Вид” в группе “Макросы”.

Кнопка Макросы в Word

1. Откройте меню “Файл” (кнопка “Microsoft Office” ранее).

2. Выберите пункт “Параметры” (ранее “Параметры Word”).

3. Откройте в окне “Параметры” категорию “Основные” и перейдите в группе “Основные параметры работы”.

4. Установите галочку напротив пункта “Показывать вкладку “Разработчик” на ленте”.

5. На панели управления появится вкладка “Разработчик”, в которой и будет находиться пункт “Макросы”.

Lumpics.ru

Запись макросов

1. Во вкладке “Разработчик” или, в зависимости от используемой версии Ворда, во вкладке “Вид”, нажмите кнопку “Макросы” и выберите пункт “Запись макроса”.

Запись макроса в Word

2. Задайте имя для создаваемого макроса.

Окно Запись макроса в word

Примечание: Если вы, создавая новый макрос, даете ему точно такое же имя, как у встроенного в программу, действия, записанные вами в новый макрос, будут выполняться взамен стандартным. Для просмотра макросов, доступных в MS Word по умолчанию, в меню кнопки “Макросы” выберите “Команды Word”.

3. В пункте “Макрос доступен для” выберите то, для чего он будет доступен: шаблон или документ, в который его следует сохранить.

Выбор места для применения макроса в Word

    Совет: Если вы хотите, чтобы создаваемый макрос был доступен во всех документах, с которыми вы работаете в дальнейшем, выберите параметр “Normal.dotm”.

4. В поле “Описание” введите описание для создаваемого макроса.

Описание макроса в Word

5. Выполните одно из действий, указанных ниже:

  • Начните запись — чтобы приступить к началу записи макроса, не связывая его при этом с кнопкой на панели управления или комбинацией клавиш, нажмите “ОК”.
  • Создайте кнопку — чтобы связать создаваемый макрос с кнопкой, расположенной на панели управления, выполните следующее:
      • Нажмите “кнопке”;
      • Выберите документ или документы, в которых требуется добавить создаваемый макрос на панель быстрого доступа (раздел “Настройка панели быстрого доступа”);

    Параметры макроса в Word

      Совет: Чтобы создаваемый макрос был доступен для всех документов, выберите параметр “Normal.dotm”.

    Доступ к макросу в Word

    В окне “Макрос из” (ранее “Выбрать команды из”) выберите макрос, который следует записать, нажмите “Добавить”.

    Добавить макрос в Word

      • Если вы хотите настроить эту кнопку, нажмите “Изменить”;
      • Выберите подходящий символ для создаваемой кнопки в поле “Символ”;
      • Введите имя макроса, которое будет отображаться в дальнейшем в поле “Отображаемое имя”;
      • Для начала записи макроса дважды кликните по кнопке “ОК”.

    Запись макроса ОК в Word

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

  • Назначьте сочетание клавиш — Для того, чтобы назначить комбинацию клавиш для создаваемого макроса, выполните следующие действия:
      • Кликните по кнопке “Клавишами” (ранее “Клавиатура”);

    Запись макроса клавишами в Word

      • В разделе “Команды” выберите макрос, который необходимо записать;

    Настройка клавиатуры в Word

      • В разделе “Новое сочетание клавиш” введите любую удобную для вас комбинацию, после чего нажмите кнопку “Назначить”;

    Настройка комбинаций клавиатуры в Word

      • Для начала записи макроса нажмите “Закрыть”.

    6. Выполните поочередно все те действия, которые необходимо включить в макрос.

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

    Урок: Горячие клавиши в Ворде

    7. Для остановки записи макроса нажмите “Остановить запись”, эта команда расположена в меню кнопки “Макросы” на панели управления.

    остановить запись макроса в Word

    Изменение комбинаций клавиш для макроса

    1. Откройте окно “Параметры” (меню “Файл” или кнопка “MS Office”).

    2. Выберите пункт “Настройка”.

    3. Нажмите на кнопку “Настройка”, расположенную рядом с полем “Сочетание клавиш”.

    4. В разделе “Категории” выберите “Макросы”.

    5. В открывшемся списке выберите макрос, который необходимо изменить.

    6. Кликните по полю “Новое сочетание клавиш” и нажмите клавиши или комбинацию клавиш, которые вы хотите назначить для конкретного макроса.

    Настройка клавиатуры в Word

    7. Убедитесь, что назначенное вами сочетание клавиш не используется для выполнения другой задачи (поле “Текущее сочетание”).

    8. В разделе “Сохранить изменения” выберите подходящий вариант (место) для сохранения места, где макрос будет запускаться.

    Сохранить Настройки клавиатуры в word

      Совет: Если вы хотите, чтобы макрос был доступен к использованию во всех документах, выберите параметр “Normal.dotm”.

    9. Нажмите “Закрыть”.

    Запуск макроса

    1. Нажмите на кнопку “Макросы” (вкладка “Вид” или “Разработчик”, в зависимости от используемой версии программы).

    Открыть макросы в Word

    2. Выберите макрос, который хотите запустить (список “Имя макроса”).

    3. Нажмите “Выполнить”.

    Выбор Макроса в Word

    Создание нового макроса

    1. Нажмите кнопку “Макросы”.

    Кнопка макросы в Word

    2. Задайте имя для нового макроса в соответствующем поле.

    Имя Макроса в Word

    3. В разделе “Макросы из” выберите шаблон или документ, для которого будет сохранен создаваемый макрос.

    Создать Макрос в Word

      Совет: Если вы хотите, чтобы макрос стал доступен во всех документах, выберите параметр “Normal.dotm”.

    4. Нажмите “Создать”. Будет открыт редактор Visual Basic, в котором и можно будет создать новый макрос на языке Visual Basic.

    Microsoft Visual Basic for Applications - Normal

    На этом все, теперь вы знаете, что такое макросы в MS Word, зачем они нужны, как их создавать и как с ними работать. Надеемся, информация из этой статьи будет полезной для вас и действительно поможет упростить, ускорить работу со столь продвинутой офисной программой.

    163 / 104 / 14

    Регистрация: 17.10.2012

    Сообщений: 488

    1

    Word

    Однократный запуск макроса при создании документа из шаблона

    05.02.2013, 19:02. Показов 4909. Ответов 7


    Студворк — интернет-сервис помощи студентам

    Приветствую! Недавно я задался такой задачей. Нужно сделать шаблон с макросом. Суть такова — когда создается документ на основе этого шаблона в программе вызывается макрос, который просит ввести некоторые данные, а потом формирует титульный лист, колонтитулы и т.д. на основе этих данных (фамилия, имя, название и т.д.). Так как я с VB (а тем более с VBA) знаком на недостаточно продвинутом уровне, то у меня возникло несколько вопросов (так же и по шаблонам):

    1. Как заставить макрос выполняться лишь однажды, при создании документа?
    2. Как обратиться к текстовому полю и его свойствам на текущем документе?
    3. Можно ли управлять колонтитулами?
    4. Как записать шаблон в качестве шаблона по умолчанию?

    Спасибо!



    0



    Programming

    Эксперт

    94731 / 64177 / 26122

    Регистрация: 12.04.2006

    Сообщений: 116,782

    05.02.2013, 19:02

    7

    5468 / 1148 / 50

    Регистрация: 15.09.2012

    Сообщений: 3,514

    05.02.2013, 19:41

    2

    Цитата
    Сообщение от iRomul
    Посмотреть сообщение

    4. Как записать шаблон в качестве шаблона по умолчанию?

    Я пока предположу, что в программе Word шаблоном по умолчанию может быть только шаблон с именем Normal. Поэтому выбирать шаблон по умолчанию можно, только давая имя Normal нужному шаблону.



    0



    Казанский

    15136 / 6410 / 1730

    Регистрация: 24.09.2011

    Сообщений: 9,999

    05.02.2013, 20:25

    3

    Цитата
    Сообщение от iRomul
    Посмотреть сообщение

    1. Как заставить макрос выполняться лишь однажды, при создании документа?

    В модуль ThisDocument

    Visual Basic
    1
    2
    3
    
    Private Sub Document_New()
    MsgBox "Создан новый документ!"
    End Sub

    2, 3 Запишите действия в макрос и посмотрите, что получается.



    0



    163 / 104 / 14

    Регистрация: 17.10.2012

    Сообщений: 488

    06.02.2013, 00:22

     [ТС]

    4

    И всё-таки мне непонятно, как обратиться к полю. Запись не помогла, так как я немог выделить это поле. Вот задача точнее:
    есть документ-шаблон, на документе размещен элемент управления содержимым «Форматированный текст», нужно из макроса произвести запись в это поле. Пробовал через Me.Fields(1), Me.Shape(1), Me.InlineShape(1), Me.FormFields(name) но он ругается, что объект с таким номером не найден. Как быть?



    0



    5468 / 1148 / 50

    Регистрация: 15.09.2012

    Сообщений: 3,514

    06.02.2013, 07:45

    5

    iRomul, VBA-название элемента управления содержимым «Форматированный текст» можно узнать, включив макрорекордер и вставив этот элемент управления в Word-документ.

    Примечание

    Элементы управления содержимым появились в Word 2007.



    0



    iRomul

    163 / 104 / 14

    Регистрация: 17.10.2012

    Сообщений: 488

    07.02.2013, 16:04

     [ТС]

    6

    Я попробовал сделать так

    Visual Basic
    1
    
    ActiveDocument.SelectContentControlsByTitle("field").Item(1).SetPlaceholderText()

    В функцию SetPlaceholderText нужно поместить параметр BuildingBlock и Range, что это?



    0



    ViterAlex

    8927 / 4839 / 1885

    Регистрация: 11.02.2013

    Сообщений: 10,246

    11.02.2013, 06:29

    7

    Лучший ответ Сообщение было отмечено как решение

    Решение

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

    Visual Basic
    1
    2
    3
    4
    
    Private Sub Document_New()
        ActiveDocument.SelectContentControlsByTitle("field").Item(1).SetPlaceholderText _
            Text:="Новый документ на основе шаблона " & ActiveDocument.AttachedTemplate.Name
    End Sub



    0



    iRomul

    163 / 104 / 14

    Регистрация: 17.10.2012

    Сообщений: 488

    12.02.2013, 20:18

     [ТС]

    8

    Visual Basic
    1
    2
    3
    4
    
        str = OpenWindow.TextTeacher.Text
     
        ActiveDocument.SelectContentControlsByTitle("teacher").Item(1).SetPlaceholderText _
        Text:=str

    Пишет ошибку, говорит неправильный вызов процедуры. А со строковыми литералами работает. Как так?



    0



    • Документы Word
    • Создание файлов
    • Работа с файлами

    Таблица Excel с исходными данными для создания документов Word

    Макрос предназначен для программного создания документов Word на основе шаблона

    (без использования функции слияния в Word)

    В прикреплённом к статье архиве находятся 2 файла:

    • шаблон договора в формате Microsoft Word (расширение .dot)
    • файл Excel с макросом

    Настройки макроса задаются в коде:

    Const ИмяФайлаШаблона = «шаблон.dot»
    Const КоличествоОбрабатываемыхСтолбцов = 8
    Const РасширениеСоздаваемыхФайлов = «.doc»

    При нажатии кнопки запуска макрос на основе шаблона dot создаёт очередной файл, и в этом документе производит замену текста («кода поля») из первой строки файла Excel на значение поля (из очередной строки с данными файла Excel)

    Папка для сформированных документов создаётся автоматически, и содержит в имени текущую дату и время
    (например, созданная папка будет называться Договоры, сформированные 01-05-2011 в 15-03-24)

    Имена создаваемых файлов формируются объединением полей фамилия, имя и отчество, с добавлением расширения doc

    PS: Макрос был написан достаточно давно, когда я только начинал изучать VBA, — так что код недостаточно универсален.

    Но, в качестве примера, пожалуй, подойдёт (если вам нужен более функциональный макрос, воспользуйтесь универсальной надстройкой (см. ниже))

    Ознакомьтесь также с универсальной надстройкой формирования документов по шаблонам,
    которая может делать всё тоже самое, что и эта программа,
    только в качестве шаблонов могут выступать, помимо документов Word, ещё текстовые файлы, и книги Excel.

    В надстройке — много возможностей, и полезных дополнений: склонение ФИО в родительный и дательный падежи, автоматический вывод на печать (с заданным количеством копий), размещение созданных файлов в разных папках, создание и рассылка писем со вложениями, и множество других полезных функций.

    По вышеприведённой ссылке программа заполнения документов Word из Excel доступна для бесплатного скачивания.

    Внимание: просьбы о доработке макроса, описанного в этой статье, не принимаются.

    Есть новая (универсальная) версия, — в которой уже есть практически всё, что может понадобиться.

    • 197090 просмотров

    Не получается применить макрос? Не удаётся изменить код под свои нужды?

    Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.


    Краткое описание

    Макрос на основе шаблонов в формате Word и по заданному списку значений в Excel формирует необходимое количество вордовских документов. Количество формируемых файлов неограниченно и зависит только от числа указанных вами параметров в Excel.

    Подробное описание

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

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

           — Шаблоны задаются в формате Word. Количество одновременно используемых шаблонов неограниченно.
           — Настройки (параметры) для подстановки в шаблоны хранятся в файле эксель. Может быть задано неограниченное количество параметров.

    Из дополнительных возможностей макроса:

           — В настройках листа с данными достаточно указать название шаблона и именно данный шаблон будет применен для формирования документов. Если шаблонов указано несколько, то формирование документов будет происходить по нескольким (указанным) шаблонам.
           — В настройках макроса можно указать, по каким строкам формировать документы, а по каким пропускать.
           — Для каждого формируемого документа можно указать необходимое имя (название).
           — Для более удобной вставки наименований шаблонов в ячейку достаточно два раза кликнуть на соответствующей ячейке в столбце «C» и в открывшейся форме выбрать нужные шаблоны.

    В целом, ничего сложного в работе с макросом и шаблонами нет.
    Перед запуском макроса обязательно ознакомьтесь с примечаниями в пункте «Важно» на листе «const».

    Скачать макрос эксель для создания документов и примеры шаблонов можно по ссылке выше.

    Обновление макроса от 09.07.2020


    В программу добавлена возможность замены значений в колонтитулах. Колонтитулы учитываются как верхние, так и нижние. При необходимости можете ознакомиться с примерами заполнения шаблонов, которые также присутствуют в архиве.
    Ссылка на загрузку архива с программой обновлена. Актуальная версия программы: «CreateWord, v.2.xlsb».

    Создание нового документа Word или открытие существующего из кода VBA Excel. Методы Documents.Add и Documents.Open. Сохранение и закрытие документа.

    Работа с Word из кода VBA Excel
    Часть 2. Создание и открытие документов Word
    [Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5] [Часть 6]

    Новый документ Word создается из кода VBA Excel с помощью метода Documents.Add:

    Sub Test1()

    Dim myWord As New Word.Application

    Dim myDocument As Word.Document

    Set myDocument = myWord.Documents.Add

    myWord.Visible = True

    End Sub

    Переменную myDocument можно объявить с типом Object, но тогда не будет ранней привязки к типу Word.Document и подсказок при написании кода (Auto List Members).

    Открытие существующего документа

    Существующий документ Word открывается из кода VBA Excel с помощью метода Documents.Open:

    Sub Test2()

    Dim myWord As New Word.Application

    Dim myDocument As Word.Document

    Set myDocument = _

    myWord.Documents.Open(«C:Документ1.docx»)

    myWord.Visible = True

    End Sub

    Замените в этой процедуре строку «C:Документ1.docx» на адрес своего файла.

    Подключение к открытому документу

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

    Sub Test3()

    Dim myWord As Object, myDoc As Word.Document

    On Error GoTo Instr

        Set myWord = GetObject(, «Word.Application»)

        Set myDoc = myWord.Documents(«Документ1.docx»)

        myDoc.Range.InsertAfter «Добавляем новый текст, подтверждающий подключение к открытому документу.»

    Exit Sub

    Instr:

        MsgBox «Произошла ошибка: « & Err.Description

    End Sub

    Если открытого приложения Word нет, выполнение функции GetObject приведет к ошибке. Также произойдет ошибка, если не будет найден указанный документ (в примере — «Документ1.docx»).

    Сохранение и закрытие документа

    Сохранение нового документа

    Чтобы сохранить из кода VBA Excel новый документ Word, используйте метод SaveAs2 объекта Document:

    myDocument.SaveAs2 («C:Документ2.docx»)

    Замените «C:Документ2.docx» на путь к нужному каталогу с именем файла, под которым вы хотите сохранить новый документ.

    Сохранение изменений в открытом документа

    Сохраняйте изменения в существующем документе с помощью метода Document.Save или параметра SaveChanges метода Document.Close:

    ‘Сохранение изменений документа

    myDocument.Save

    ‘Сохранение изменений документа

    ‘при закрытии

    myDocument.Close ‘по умолчанию True

    myDocument.Close True

    myDocument.Close wdSaveChanges

    ‘Закрытие документа без

    ‘сохранения изменений

    myDocument.Close False

    myDocument.Close wdDoNotSaveChanges

    Закрытие любого сохраненного документа

    Метод Document.Close закрывает документ, но не приложение. Если работа с приложением закончена, оно закрывается с помощью метода Application.Quit.

    Понравилась статья? Поделить с друзьями:
  • Макрос переноса всех данных с одного файла в другой excel
  • Макрос при расчетах в excel
  • Макрос перемещения ячейки excel
  • Макрос при закрытии книги excel
  • Макрос переключения листов в excel