182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
1 |
|
12.09.2011, 13:44. Показов 34899. Ответов 96
Делаю макрос для автоматического заполнения анкеты.
0 |
Заблокирован |
|
12.09.2011, 14:17 |
2 |
kotan, Перейдите к строке Фамилия в документе Word. Вы увидете, что серое поле обрамлено в квадратные скобки. Эти скобки означают, что поле Формы находится в закладке. Т.е. вам нужно просто напросто переделать всю форму. Имена полям нужно давать так:
1 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
12.09.2011, 14:49 [ТС] |
3 |
попробовал. одинаковые имены закладок уничтожают друг друга, остается только последняя созданная и соотв. из формы вставляется текст только в последнюю созданную закладку.
0 |
Заблокирован |
||||
12.09.2011, 14:55 |
4 |
|||
kotan, Затем в коде:
0 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
12.09.2011, 14:58 [ТС] |
5 |
я понял. имена закладок должны быть уникальными. а есть ли способ обойти это? очень много придет делать «уникальных» вкладок для одного значения?
0 |
Заблокирован |
|
12.09.2011, 15:14 |
6 |
kotan, Чтобы было видно непечатаемые символы: Допустим встречается строка Фамилия 10 раз:
Теперь при изменении текста в поле Формы в строке Фамилия, будут изменены все перекрёстные ссылки на это поле Формы. Чтобы изменения произошли: Файл — Предварительный просмотр (чтобы произошло обновление полей), а затем выйдите из Предварительного просмотра.
1 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
12.09.2011, 15:22 [ТС] |
7 |
Спасибо ВАМ огрОмное! Помогло
1 |
Заблокирован |
||||||||
12.09.2011, 16:33 |
8 |
|||||||
kotan,
Можно сделать так, что форма будет открыта и можно будет работать с документом. Переключаться между документом и формой в этом случае можно через Панель задач Windows (внизу полоса). Очистка полей:
1 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
12.09.2011, 18:11 [ТС] |
9 |
Спасибо большое, все работает. Супер! Не могу понять куда прописать код в своей форме, чтобы форма автоматически запускалась при отркытии документа. У меня в модуле прописано появление кнопки при открытии (где-то содрал), а вот саму форму на автоподгрузку научить не получается.
0 |
Заблокирован |
||||
12.09.2011, 19:35 |
10 |
|||
Создайте в самом документе (а не шаблоне Normal) модуль (см. рис), в него поместите вот этот код:
Сохраните изменения. Делаете этот документ доверенным на этом компьютере (чтобы при открытии документа макросы, содержащиеся в этом документе, не блокировались). Создание сертификата:
Связывание документа с сертификатом (действия надо делать в VBA): Tools — Digital Signature… — Выбрать… — Мой сертификат — OK — OK. Подготовка документа к работе:
Теперь можете запускать этот документ у себя на компьютере:
На каждом компьютере нужно создавать сертификат и связывать его с документом. Иначе перед открытием документа будет появляться сообщение о том, что в документе есть макросы. Миниатюры
0 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
12.09.2011, 20:44 [ТС] |
11 |
Работает! НО… если только документ открыть из Офиса как шаблон для редактирования, а если прост нажать на шаблон когда создется новый док автоматически форма не подгружается, но про макросы уже не спрашивает!
0 |
Заблокирован |
|
13.09.2011, 08:24 |
12 |
kotan, Т.е. если перенести файл на др. компьютер, в этом файле должна быть форма?
0 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
13.09.2011, 10:21 [ТС] |
13 |
Busine2009, да, желательно, чтобы могли открывать и на других компьютерах
0 |
Заблокирован |
||||
13.09.2011, 14:23 |
14 |
|||
Чтобы форма появлялась при создании нового документа на основе нужного шаблона Создайте новый документ на основе нужного шаблона (чтобы открыть VBA этого шаблона). Вот этот код:
поместите вот сюда (см. Рисунок1). А форму поместите вот сюда (см. Рисунок2). Как поместить форму в новый документ, я ещё не смотрел. Миниатюры
1 |
182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
|
13.09.2011, 15:00 [ТС] |
15 |
наверное недопонял где-то… и еще забегая вперед, может подскажите, как сделать кнопки в MultiPage на разных страницах с дублирующими друг друга. У меня на одной странице есть кнопки «Вставить», «Очистить», «Выйти» и они все работают, но если скопировать их на вторую вкладку — они не работают. Миниатюры
0 |
Заблокирован |
|
13.09.2011, 15:02 |
16 |
наверное недопонял где-то… да, неправильно поняли, ещё раз попробуйте.
0 |
kotan 182 / 1 / 0 Регистрация: 12.09.2011 Сообщений: 81 |
||||
13.09.2011, 15:08 [ТС] |
17 |
|||
Вставил в ThisDocument вот этот код:
Теперь форма подгружается сама! Добавлено через 36 секунд
может подскажите, как сделать кнопки в MultiPage на разных страницах с дублирующими друг друга. У меня на одной странице есть кнопки «Вставить», «Очистить», «Выйти» и они все работают, но если скопировать их на вторую вкладку — они не работают. По этому вопросу подскажите?
0 |
Заблокирован |
|
13.09.2011, 15:09 |
18 |
Вставил в ThisDocument вот этот код: я про другое писал.
0 |
Заблокирован |
||||
13.09.2011, 15:15 |
19 |
|||
Помещение во вновь созданные документы формы
Миниатюры
0 |
Заблокирован |
|
13.09.2011, 15:41 |
20 |
и еще забегая вперед, может подскажите, как сделать кнопки в MultiPage на разных страницах с дублирующими друг друга. У меня на одной странице есть кнопки «Вставить», «Очистить», «Выйти» и они все работают, но если скопировать их на вторую вкладку — они не работают. потому что скопированные и вставленные кнопки — это не те же самые — это новые кнопки. Нужно зайти в VBA и записать для каждой новой кнопки код.
0 |
Продолжаем серию заметок по теме автоматизации документов.
Сегодня я расскажу, как добавить к вашим документам специальную форму, с помощью которой можно легко и просто вводить данные в документ. Введенные в форму данные адресата по нажатию кнопки на форме будут автоматически внесены в документ.
Предполагается, что у вас есть готовый шаблон документа, например, письма. В качестве образца можно использовать подготовленный мною шаблон официального письма вымышленной организации.
Использование шаблона необходимо, ведь на его основе вы в дальнейшем будете создавать свои документы.
Распакуйте файл из архива и поместите его в папку с шаблонами редактора Word. Как правило, эта папка находится по адресу: C:Documents and SettingsИМЯ_ПОЛЬЗОВАТЕЛЯApplication DataMicrosoftШаблоны.
Итак, шаблон документа у нас есть, открыт и готов к изменению. В первую очередь нам необходимо добавить закладки в те позиции в документе, куда вы собираетесь вставлять данные из формы. Как правило, письмо должно содержать фамилию, имя и отчество адресата, наименование организации адресата, полный почтовый адрес и приветствие.
Исходя из этого мы добавим в документ следующие закладки:
- name
- company
- address
- date
- salutation
Обратите внимание, реквизитов адресата, которые должно содержать письмо, на самом деле может быть много, а закладок мы определили всего пять. Это логично, так как в дальнейшем мы будем подставлять несколько реквизитов к одной закладке (например, адрес, который будет состоять из индекса, названия города, области, улицы).
После добавления закладок (и если у вас включен режим отображения меток закладок), наш документ будет выглядеть примерно как на рисунке ниже (щелкните по картинке для ее увеличения):
Эти метки закладок после нажатия кнопки «Внести данные» будут заменены на конкретные тексты.
Не забывайте сохранять сделанные вами изменения в шаблоне на всякий «пожарный» случай.
На втором шаге мы создадим специальную форму с текстовыми полями, которая будет открываться при создании каждого нового документа на основе вашего шаблона письма. Кратко расскажу, как добавить в шаблон форму.
- Откройте редактор Visual Basic с помощью сочетания клавиш «Alt»+«F11». Убедитесь, что в окне проектов выделен ваш шаблон:
- В меню Insert выберите команду UserForm. В окне проектов будет создан новый объект Forms с пустой формой или просто добавлен в проект модуль userForm.
- Разместите на форме необходимые элементы. Например, как на рисунке ниже:
Текстовые поля (со стандартными именами TextBox1) были мною переименованы с учетом их назначения. Обратите внимание в нижеприведенном коде, как они теперь называются.
Третий шаг — написание кода для элементов нашей формы.
- В меню Insert выберите команду Module. В окне проектов будет создан новый модуль Module1. Дважды щелкните по модулю и перейдите в окно редактирования кода. Вставьте следующий код:
- Перейдите на модуль UserForm1. Переименуйте его в MyForm.
- Нажмите клавишу «F7» и в окне редактора кода вставьте следующий код (содержит процедуры для действий с элементами формы):
- Ниже этого кода вставьте следующий код:
- Сохраните проект и попробуйте создать на основе вашего шаблона новый документ. Введите необходимые данные в поля формы и нажмите кнопку «Внести данные».
Sub AutoNew() Dim oF As MyForm Set oF = New MyForm oF.Show Set oF = Nothing End Sub
Этот код запускает форму каждый раз при создании нового документа на основе вашего шаблона.
Private Sub CommandButton1_Click() 'Действия формы по нажатию кнопки "Ввести данные" Dim bm As Bookmarks Dim rng As Word.Range Dim addr As String Dim sText As String Dim sResult1 As String Dim sResult2 As String Dim arName() As String Set bm = ActiveDocument.Bookmarks sText = Me.tbName.Text 'присваиваем переменной текст из текстового поля "Имя адресата" arName = Split(sText) 'создаем массив из отдельных слов, вместе составляющих ФИО адресата 'Действия с полем "Дата" With Me.tbDate If Not IsDate(.Text) Then 'если данные введены не в формате даты, то MsgBox "В поле ""Дата"" неверно введены данные." 'выводим сообщение .Text = Format(Now, "dd MMMM yyyy") 'автоматически заполняем поле текущей датой .SetFocus 'фокус на поле "Дата" .SelStart = 0 ' .SelLength = Len(.Text) 'выделяем весь текст в поле, начиная с левого края Exit Sub Else Set rng = bm("date").Range 'присваиваем переменной rng ссылку на закладку "date" rng.Text = .Text & " г." 'определяем новый текст закладки bm.Add "date", rng 'заменяем закладку End If End With Set rng = bm("name").Range 'присваиваем переменной rng ссылку на закладку "name" sResult1 = arName(0) & " " 'присваиваем переменной значение первого слова из поля "Имя адресата" и добавляем пробел sResult1 = sResult1 & Left(arName(1), 1) & ". " 'добавляем к первому слову первую букву Имени и точку sResult1 = sResult1 & Left(arName(2), 1) & "." 'добавляем первую букву Отчества и точку rng.Text = sResult1 'определяем новый текст закладки bm.Add "name", rng 'заменяем закладку Set rng = bm("company").Range 'присваиваем переменной rng ссылку на закладку "company" rng.Text = Me.tbCompany 'определяем новый текст закладки bm.Add "company", rng 'заменяем закладку If Len(sText) > 0 Then 'если в поле "Имя адресата" есть какие-то символы, то sText = sResult1 & vbCr 'присваиваем переменной текст закладки "name" и переводим строку End If If Len(Me.tbCompany.Text) > 0 Then 'если в поле "Организация" есть какие-то символы, то Me.tbCompany.Text = Me.tbCompany.Text & vbCr 'присваиваем переменной текст из поля и переводим строку End If If Len(Me.tbAddress.Text) > 0 Then 'если в поле "Адрес" есть какие-то символы, то Me.tbAddress.Text = Me.tbAddress.Text 'присваиваем переменной текст из поля End If If Len(Me.tbIndex.Text) > 0 Then 'если в поле "Индекс" есть какие-то символы, то Me.tbIndex.Text = Me.tbIndex.Text & "," 'присваиваем переменной текст из поля и добавляем запятую End If If Len(Me.tbCity.Text) > 0 Then 'если в поле "Город" есть какие-то символы, то Me.tbCity.Text = Me.tbCity.Text & "," 'присваиваем переменной текст из поля и добавляем запятую End If If Len(Me.tbOblast.Text) > 0 Then 'если в поле "Область" есть какие-то символы, то Me.tbOblast.Text = Me.tbOblast.Text & "," 'присваиваем переменной текст из поля и добавляем запятую End If 'присваиваем переменной фрагментов текста из полей "Индекс", "Город", "Область" и "Адрес" addr = Me.tbIndex.Text & " " & Me.tbCity.Text & " " & Me.tbOblast.Text & " " & Me.tbAddress.Text Set rng = bm("address").Range 'присваиваем переменной rng ссылку на закладку "address" rng.Text = addr 'определяем новый текст закладки из переменной addr bm.Add "address", rng 'заменяем закладку Set rng = bm("salutation").Range 'присваиваем переменной rng ссылку на закладку "salutation" rng.Text = Me.tbSalutation.Text 'определяем новый текст закладки bm.Add "salutation", rng 'заменяем закладку Unload Me 'Закрываем форму ActiveDocument.Range.Fields.Update 'Обновляем все поля в документе End Sub
Private Sub CommandButton2_Click() 'Выход из формы и закрытие окна документа при нажатии кнопки "Отменить" On Error GoTo ErrLabel Unload Me 'Закрываем форму ActiveDocument.Close 'Закрываем текущий документ ErrLabel: End Sub Private Sub tbIndex_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Устанавливаем правила заполнения поля "Индекс" With Me.tbIndex If Not IsNumeric(.Text) Or Len(.Text) <> 6 Then 'если в поле "Индекс" данные не цифры и меньше 6, то MsgBox "Ошибка!" & " " & "Введите 6 цифр индекса города или района." 'выводим сообщение Cancel = True 'возвращаемся к полю .Text = "" 'очищаем поле .SetFocus End If End With End Sub Private Sub tbName_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'При выходе из поля "Имя адресата" его имя подставляется в поле "Приветствие" sText = Me.tbName.Text arName = Split(sText) sResult2 = arName(1) & " " sResult2 = sResult2 & arName(2) Me.tbSalutation = "Уважаемый " & sResult2 & "!" End Sub Private Sub UserForm_Initialize() Me.tbDate = Format(Now, "dd MMMM yyyy") With Me.tbName .Text = "Фамилия Имя Отчество" .SetFocus .SelStart = 0 .SelLength = Len(.Text) End With End Sub
Вы можете скачать уже готовый шаблон письма и подредактировать его под свои нужды.
В этом шаблоне есть небольшой недостаток: в текстовые поля нужно вводить информацию в правильном формате и регистре, иначе в итоговом письме придется вручную править недочеты.
Образцом для шапки шаблона послужила картинка из шаблона городского письма редактора Word 2007.
Образцом кода для данного макроса и формы послужила заметка Gregory Maxey Address a Letter Using as UserForm.
Чтобы создать в Word форму, которую могут заполнить другие, начните с шаблона или документа и добавьте элементы управления содержимым. К таким элементам относятся, например, флажки, текстовые поля, элементы выбора даты и раскрывающиеся списки. Если вы знакомы с базами данных, вы можете даже связывать элементы управления содержимым с данными.
Отображение вкладки «Разработчик»
Если вкладка «Разработчик» не отображается на ленте, см. раздел Отображение вкладки «Разработчик».
Откройте шаблон или пустой документ, на основе которого будет формироваться форма.
Для экономии времени начните с шаблона формы или начните с нуля с пустого шаблона.
-
Перейдите к пункту Файл > Новый.
-
В поле Поиск шаблонов в сети введите Формы или тип нужной формы и нажмите клавишу ВВОД.
-
Выберите шаблон формы, а затем выберите Создать или Скачать.
-
Перейдите к пункту Файл > Новый.
-
Выберите Пустой документ.
Добавьте содержимое в форму
Перейдите в раздел Разработчик и выберите элементы управления для добавления в документ или форму. Чтобы удалить элемент управления содержимым, выберите его и нажмите кнопку DELETE. После вставки свойств элементов управления можно настроить свойства.
Примечание: Форму с элементами управления содержимым можно распечатать, однако поля вокруг них напечатаны не будут.
В элементе управления содержимым «форматированный текст» пользователи могут выделять текст полужирным шрифтом или курсивом, а также вводить несколько абзацев текста. Чтобы ограничить возможности пользователей, вставьте элемент управления содержимым «обычный текст».
-
Щелкните или коснитесь места, куда вы хотите вставить элемент управления.
-
Выберите Разработчик > Управление содержимым форматированного текста или Управление содержимым обычного текста .
Чтобы задать определенные свойства элемента управления, см. раздел Установка или изменение свойств элементов управления содержимым.
Элемент управления «рисунок» часто используется в шаблонах, однако его можно добавить и в форму.
-
Щелкните или коснитесь места, куда вы хотите вставить элемент управления.
-
Выберите Разработчик > Управление содержимым изображений .
Чтобы задать определенные свойства элемента управления, см. раздел Установка или изменение свойств элементов управления содержимым.
Используйте стандартные блоки, когда хотите предоставить пользователям возможность выбрать определенный блок текста. Например, элементы управления стандартными блоками полезны, когда вам нужно добавить другой шаблонный текст в зависимости от конкретных требований контракта. Вы можете создать для каждого варианта элемент управления содержимым «форматированный текст» и поместить их все в элемент управления «стандартный блок», который будет служить контейнером.
-
Щелкните или коснитесь места, куда вы хотите вставить элемент управления.
-
Перейдите в раздел РазработчикЭлемент управления содержимым галереи стандартных блоков (или Элемент управления содержимым стандартных блоков).
-
Выберите Разработчик и элементы управления содержимым для стандартного блока.
-
Щелкните или коснитесь места, куда вы хотите вставить элемент управления.
Чтобы задать определенные свойства элемента управления, см. раздел Установка или изменение свойств элементов управления содержимым.
В поле со списком пользователи могут выбрать один из предложенных вами пунктов или ввести собственный вариант. В раскрывающемся списке пользователи могут только выбрать один из имеющихся пунктов.
-
Перейдите в раздел Разработчик > Управление содержимым поля со списком или Управление содержимым раскрывающегося списка .
-
Выберите элемент управления содержимым, а затем выберите Свойства.
-
Чтобы создать список вариантов, выберите Добавить в разделе Свойства раскрывающегося списка.
-
Введите вариант в поле Отображаемое имя, например Да, Нет или Возможно.
Повторяйте этот шаг до тех пор, пока все нужные вам значения не окажутся в раскрывающемся списке.
-
При необходимости задайте остальные свойства.
Примечание: Если установить флажок Содержимое нельзя редактировать, пользователи не смогут изменять выбранные пункты.
-
Щелкните или коснитесь того места, где вы хотите вставить элемент управления выбора даты.
-
Выберите Разработчик > Управление содержимым средства выбора даты .
Чтобы задать определенные свойства элемента управления, см. раздел Установка или изменение свойств элементов управления содержимым.
-
Щелкните или коснитесь того места, где вы хотите вставить элемент управления «флажок».
-
Выберите Разработчик > Элемент управления содержимым «флажок» .
Чтобы задать определенные свойства элемента управления, см. раздел Установка или изменение свойств элементов управления содержимым.
Элементы управления формы прежних версий предназначены для совместимости с предыдущими версиями Word и состоят из традиционной формы и элементов управления Active X.
-
Щелкните или коснитесь того места, где вы хотите вставить традиционный элемент управления.
-
Перейдите в раскрывающийся список Разработчик > Формы прежних версий .
-
Выберите нужный элемент управления в разделе Формы предыдущих версий или Элементы ActiveX.
Установка или изменение свойств элементов управления содержимым
У каждого элемента управления содержимым есть параметры, которые можно установить или изменить. Например, для элемента управления «Выбор даты» вы можете выбрать различные форматы отображения даты.
-
Выберите элемент управления содержимым, который вы хотите изменить.
-
Перейдите в раздел Разработчик > Свойства.
-
Измените нужные свойства.
Добавить защиту формы
Если вы хотите ограничить возможности редактирования или форматирования формы пользователями, воспользуйтесь командой Ограничить редактирование.
-
Откройте форму, которую хотите заблокировать или защитить.
-
Выберите Разработчик > Ограничить правку.
-
После выбора ограничений выберите Да, начать применение защиты.
Дополнительный совет:
Если вы хотите защитить только части документа, разделите его на разделы и защитите только определенные разделы.
Для этого выберите Выбрать разделы на панели Ограничить правку. Дополнительные сведения о разделах см. в разделе Вставка разрыва раздела.
Отображение вкладки «Разработчик»
Если вкладка «Разработчик» не отображается на ленте, см. раздел Отображение вкладки «Разработчик».
Откройте шаблон или используйте пустой документ
Чтобы создать в Word форму, которую могут заполнить другие, начните с шаблона или документа и добавьте элементы управления содержимым. Элементы управления содержимым включают в себя такие элементы, как флажки, текстовые поля и раскрывающиеся списки. Если вы знакомы с базами данных, вы можете даже связывать элементы управления содержимым с данными.
-
Выберите Файл > Создание из шаблона.
-
В области поиска введите форму.
-
Дважды щелкните нужный шаблон.
-
Выберите Файл > Сохранить как, и выберите место для сохранения формы.
-
В области Сохранить как введите имя файла и выберите Сохранить.
-
Перейдите в раздел Файл > Новый документ.
-
Выберите Файл > Сохранить как.
-
В области Сохранить как введите имя файла и выберите Сохранить.
Добавьте содержимое в форму
Перейдите в раздел Разработчик и выберите элементы управления для добавления в документ или форму. Чтобы удалить элемент управления содержимым, выберите его и нажмите кнопку DELETE. Вы можете установить параметры для элементов управления после вставки. В меню «Параметры» можно добавить макросы входа и выхода для запуска при взаимодействии пользователей с элементами управления, а также элементы списка для полей со списком,
-
В документе щелкните или коснитесь того места, где нужное добавить элемент управления содержимым.
-
В разделе Разработчик выберите Текстовое поле, Флажок или Поле со списком.
-
Чтобы задать определенные свойства для элемента управления, выберите Параметры, и настройте .
-
Повторите шаги 1–3 для каждого из элементов управления, который хотите добавить.
Параметры позволяют устанавливать общие параметры, а также управлять конкретными параметрами. Выберите элемент управления, а затем выберите Параметры, чтобы настроить или внести изменения.
-
Установите общие свойства.
-
Выбор макроса для запуска позволяет выбрать записанный или пользовательский макрос для запуска при Входе илиВыходе из поля.
-
Закладка Укажите уникальное имя или закладку для каждого элемента управления.
-
Вычислять при выходе Это заставляет Word запускать или обновлять любые вычисления, такие как общая стоимость, когда пользователь выходит из поля.
-
Добавить текст справки Предоставьте подсказки или инструкции для каждого поля.
-
ОК Сохраняет параметры и закрывает панель.
-
Отмена Забывает изменения и закрывает панель.
-
-
Установите определенные свойства для текстового поля
-
Тип Выберите форму «Обычный текст», «Число», «Дата», «Текущая дата», «Текущее время» или «Вычисление».
-
Текст по умолчанию задает необязательный текст инструкций, отображаемый в текстовом поле до ввода пользовательского текста в поле. Установите включенное текстовое поле, чтобы разрешить пользователю вводить текст в поле.
-
Максимальная длина устанавливает длину текста, который может ввести пользователь. Значение по умолчанию — Не ограничено.
-
Формат текста может указывать, будет ли текст автоматически форматироваться в верхнем регистре, нижнем регистре, с первой заглавной буквой, или в заглавном регистре.
-
Текстовое поле включено Позволяет пользователю вводить текст в поле. Если есть текст по умолчанию, пользовательский текст заменяет его.
-
-
Задайте определенные свойства для флажка.
-
Значение по умолчанию Выберите между Не отмечено или Отмечено по умолчанию.
-
Размер флажка Установите размер Точно или Автоматически, чтобы изменять размер по мере необходимости.
-
Флажок включен Позволяет пользователю пометить или очистить текстовое поле.
-
-
Установите определенные свойства для поля со списком
-
Элемент раскрывающегося меню Введите строки для элементов списка. Нажмите + или ВВОД, чтобы добавить элемент в список.
-
Элементы в раскрывающемся списке Отображает текущий список. Выберите элемент и используйте стрелки вверх или вниз, чтобы изменить порядок. Нажмите — чтобы удалить выбранный элемент.
-
Раскрывающееся меню включено Позволяет пользователю открыть поле со списком и сделать выбор.
-
-
Перейдите в раздел Разработчик > Защита формы.
Примечание: Чтобы снять защиту с формы и продолжить правку, снова выберите Защитить форму.
-
Сохраните и закройте форму.
При необходимости вы можете проверить форму, прежде чем распространять ее.
-
Защитите форму.
-
Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.
Отображение вкладки «Разработчик»
-
В правой части ленты выберите , а затем выберите Параметры ленты.
-
В разделе Настройка, выберите Разработчик .
Откройте шаблон или документ, на основе которого будет формироваться форма
Вы можете можно начать работу с пустого документа и создать собственную форму с нуля. Чтобы сэкономить время, можно использовать шаблон.
-
Выберите Файл > Создание из шаблона.
-
На левой панели разверните Веб-шаблоны и выберите Формы.
-
Дважды щелкните шаблон формы, который нужно использовать.
Добавление элементов управления содержимым в форму
-
В документе щелкните место, куда нужно добавить элемент управления содержимым.
-
На вкладке Разработчик в разделе Элементы управления формой выберите Текстовое поле, Флажок, или Поле со списком.
-
Чтобы задать определенные свойства для элемента управления, выберите Параметры и настройте нужные свойства.
Примечание: Чтобы составить раскрывающийся список для поля со списком, выберите заполнитель поля, щелкните Параметры и добавьте в список нужные пункты.
-
Повторите шаги 1–3 для каждого из элементов управления, который хотите добавить.
Добавьте пояснительный текст (необязательно)
Пояснительный текст (например, «введите имя») в текстовом поле позволит сделать форму более удобной. По умолчанию текстовое поле остается пустым, но вы можете добавить в него текст.
-
Выберите элемент управления текстовым полем, к которому нужно добавить пояснительный текст.
-
На вкладке Разработчик в разделе Элементы управления формой выберите пункт Настройки.
-
В поле Текст по умолчанию введите текст инструкции.
-
Проверьте, выбран ли пункт включить заливку, и выберите ОК.
Защитите форму.
-
На вкладке Разработчик в разделе Элементы управления формой выберите Защитить форму.
Примечание: Чтобы снять защиту формы и продолжить редактирование, щелкните Защита формы еще раз.
-
Сохраните и закройте форму.
Проверка формы (необязательно)
При необходимости вы можете проверить форму, прежде чем распространять ее.
-
Защитите форму.
-
Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.
Создание заполняемых форм недоступно в Word в Интернете.
Вы можете создать форму в настольной версии Word, следуя инструкциям в разделе Создание заполняемой формы.
Когда вы сохраните документ и откроете его в Word в Интернете, то увидите внесенные изменения.
Заполнение полей в документе word данными из документа excel
Смотрите также Function FindWindow Lib которая будет создавать со 2 строки буду очень благодарен.Но такое нужно R L = Excel.Worksheet Dim intTbl по клаве объясняя, 0 .Cells.Font.ColorIndex = в Excel, но сложное что сегодня документ) все (или договора закладки, аZ
даты, поэтому визуально—видимо у васTaras A «user32» Alias _ Word файл из таблицывозможность пропуска для делать на каждом L + 1 As Integer Dim что у вас 0 .Cells.Font.Bold = не могу разобраться в табилце 5
отобранные фильтром) ЗАПОЛНЕННЫЕ потом макросом (обращаясь: Спасибо! Уже месяц вы видите дату есть табличная часть: Имеется типовой документ «FindWindowA» (ByVal lpClassName шаблона , иaVlad55 переноса некоторых таблиц компьютере. Если компьютеров ‘*************************************************************************************************** Next wdTbl rCount As Integer имеется и с 0 .Cells.UnMerge .Range(.Cells(1,
почему не создается записей завтра может договоры, нажмите «Найти по имени закладки) как новинка в в привычном отображении. акта(перечень работ с
word, назовем его As String, ByVal вносить в этот: форма вордовского документа (например если в много, то есть End With ‘
Dim cCount As каком виде. Потом 1), .Cells(UBound(Mx, 2), таблица экселя. временная быть 120 и и объединить» (см. на это место
«Приемах», а не Но дата в расценками) АКТ, в котором lpWindowName As String) файл данные скорее
стандартизована, поэтому просто 1 столбце наличие др. способ работы Автоподбор ширины. Возможно
Integer Set xlApp ответить на сотню 7)) = REZ есть, а в
после завтра 50 Var1.png, обведено желтым). вставляете свои данные.
заметил… Excel — число—многие метки повторяются вся информация остается _ As Long всего из Excel по очереди при
слова «нарушен*» то
с Excel из не лучшй выход. = CreateObject(«Excel.Application») xlApp.Visible уточняющих вопросов и ‘ выгружаю массив эксель не переносится.
и эта таблицаА для удобства (вместо закладок можно
CyberForum.ru
Заполнение шаблона Word из Excel
Z. дней, прошедших с много раз(например номер неизменной, за исключением Sub Sample() Dim
в специально как-то выборке по условию переносится, при отсутствии Word. Напишите, если Может быть задать
= True Set всё-равно получить не на лист .Columns(1).ColumnWidth
и нужно размножение должна попадать
использования (наглядности) можно использовать поля, как
karim 1 января 1900 акта, дата, подписи нескольких полей (см.
objWord As Object, отмеченные места в будет, я думаю — нет) — надо.» нужную ширину столбцов xlWb = xlApp.Workbooks.Add работающий макрос. = 4 .Columns(2).ColumnWidth
на несколько таблицalex77755 включить заливку серым удобнее…): спасибо за наводку года. и должности….) рисунок 1 - docWord As Object Word’e. пока, нормально.
решено.библиотеку подключил, но и автоперенос xlWs.Cells.Columns.AutoFitДобавлено через 7 минутПо ссылке находится = 6 .Columns(«E:M»).ColumnWidth а не 1.: Во второй таблице цветом вставленных полейЕсли задача просто
=)=Текст(A1;»дд.ММ.ГГ») — но—иногда текст замены
желтый выделитель). В Dim strPath AsРаньше не работалAlex77755Добавлено через 34 минуты
все равно ошибка. Set xlApp =ИМХО. Так таблицы набор процедур с
= 7 Forв общем полная я оставлял шапку (будет видно только получить заполненные договоры,BurBon
это уже не весьма длинный(более 254 процессе работы приходится String, FileName As
с Word, только: Это можно пониматьи да, еще,Апострофф Nothing End Sub вставляются в ексел подробным описаним. Если
planetaexcel.ru
Заполнение шаблона WORD данными EXCEL с помощью макроса
i = 1 задача такая:
и 1 строку. на экране, а то используйте стандартную: Всем привет! Прошу
число, это текст. символа) оформлять достаточно большое String Dim hwnd с Excel, не
как: все таблицы как этот макрос: Не ту библиотекуaVlad55 как объекты и
вы не смогли
To 7 .Cells(1,есть Акты проверок. Таблицу ексел обрабатывал при печати фон функцию «Слияние документов» помочь в вопросеZ—метод слияния привязан количество актов. Цель As Long Set знаю как реализовать всегда заполняются? сохранить чтоб не подключили — надо
: Алекс спасибо за с ними, я
разобраться в нём, i) = SG(i)
в нем 10-15 построчно будет белым, как (в Word, вкладка заполнения шаблона word
: 1 почему -
к месту нахождения — максимально ускорить objWord = CreateObject(«Word.Application»)
planetaexcel.ru
Заполнение шаблона word из Excel (Word)
правильнее идею ,И каждую таблицу потерять. а тоMicrosoft помощь. но что-то
бумаю, будет работать то сделайте по Next .Columns(«A:G»).Columns.AutoFit End таблиц с нарушениями.Вот из моей и прежде) и на ленте «Рассылки» из Excel.
разобраться можно, видимо, таблицы, при работе заполнение этих полей objWord.Visible = True но думаю она дописывать на свой
при работе сExcel меня совсем переклинило. сложнее, чим если другому: сделайте часть
With Next Ttнужно эти таблицы
проги кусок: отображение значений полей, -> «Начать слияние»
Имеется книга Excel только в вашем
из ексель —шаблоны следующим образом. ‘~~> Change this
стандартная , на лист? По тому разными макросами остаютсяObject LibraryКроме этой задачи
перенести данные просто работы вручную и
excelworld.ru
перенос данных из excel в шаблон ворд (Макросы/Sub)
‘XL.DisplayAlerts = False копировать в соответствующие200?’200px’:»+(this.scrollHeight+5)+’px’);»>If Список_мероприятий.ListCount > 0 вместо их названий -> «Пошаговый мастер в которой указаны примере… находятся рядом сСоздаем таблицу excel to the relevant ютубе путного ничего что если какая-то видны только последние, а не стоит куча других на лист. Код
выложите сюда в ‘XL.Save ‘XL.DisplayAlerts = листы экселя (реестр Then (см. Var1.png, обведено слияния»). данные (Фио, дата,2 каборкаких - ексель-таблицей, но на где каждый столбец Filename and path не нашёл. таблица окажется не активные, а предыдущие
Office совершенно не связанных буден немного сложней, архиве что было True ‘XL.Quit ‘ нарушений) дополнением вWith .Tables(3) зеленым).gilenok
подписант 1, подписант в свойствах поля,наверное, любом месте компа соответствует определенному полю strPath = ThisWorkbook.PathУ самого возникла нужной и будет где-то прячутся.. с программированием. прыгая но полученные данные и что стало ‘ ‘ NV.Save
последующую пустую строку.For J =Небольшое замечание:: Если договор нужно 2, и т.д.).
надо добавить код/маску…. в акте, а + «» + мысль реализовать идея
удалена, то дляAlex77755aVlad55 туда сюда уже доступней. после обработки. ‘ NV.Select ‘пример таблица а 0 To Список_мероприятий.ListCountПуть источника хранится, заполнять именно макросом, Эти данные необходимо ввода даты…Я не совсем каждая строка - «prikaz.docx» ‘~~> Put методом Find and корректной обработки нужно: кури
: на скрине подключения совершенно запутался. иДобавлено через 38 минутПосли этого вопросы NV.Tables(1).Cell(1, 1).Select Application.DisplayAlerts кодом нарушения 1.1.х — 1 как абсолютный, т.е., то вставляете в подставить в документEducatedFool
понял о чем отдельному акту (см. the acutal file Replace. применять разные методыЧто-то не вкладыватся не видно. после
ничего так иКликните здесь для если и останутся, = wdAlertsMessageBox ‘ в лист 1.1,s = Split(Список_мероприятий.List(J), при перемещении этих нужные места шаблона word (Соглашение).: Оля, если есть здесь идет речь. рисунок 2). Вызываем name here without
Какие еще есть привязки ссылка под слово.. переоткрытия документа ворд не работает. что просмотра всего текста то не много MsgBox «OK», 64, с кодом 2.1.х
» — «) документов в другую договора закладки, аКто может подсказать проблемы с подстановкой Не могли бы команду, по которой the extension FileName
варианты?aVlad55aVlad55 подключение слетает. ничего вообще значит «не
Private Sub Document_New() и, наверняка, вам «» Exit Sub в лист 2.1.
.Cell(.Rows.Count, 1).Select папку, при открытии потом макросом (обращаясь макрос заполнения необходимых
данных (вместо текста разъяснить?можете почитать для генерируется комплект актов = «prikaz.docx» SetСпасибо.
: да, все всегда
: алекс. нащел интересное не понимаю уже. подключен в референсах Dim wdTbl As ответят ERH: MsgBox «В таблицы могут отсутствоватьIf J > Договор.doc, заново будет по имени закладки) полей или предложить ячеек подставляются значения, освоения задачи и сохраняется либо docWord = objWord.Documents.Open(FileName:=strPath,Alex77755 заполняются. в крайнем решение по копированиюAlex77755 эксель»? где он Word.Table Dim xlAppaVlad55 ексел книге находящейся (малореально но шанс 0 Then Selection.InsertRowsBelow
запрошен путь к на это место иное решение для или наоборот),Замена меток в в один документ
ReadOnly:=True) objWord.Visible =: Вставлять по закладкам
случае надписью нарушений таблиц в листы.
: Обрезало почему-то..
должен быть подключен ' As Excel.Application: я дал код,
рядом нет листа без нарушений есть).
1
источнику. вставляете свои данные. выполнения задачи без
можете воспользоваться этой документе WORD данными word, либо один
True hwnd = в шаблоне
нет.
Таблицы из WordНичего в референсах
и как? при
Dim xlWb '
который по идее
BD!», vbCritical, «Ошибка»Если кто может.Cell(J + 3,
Сейчас сохранен путь: (вместо закладок можно слияния? надстройкой для заполнения из EXCEL акт в один
excelworld.ru
Заполнение книги Excel данными из документа Word
FindWindow(vbNullString, FileName &Alex77755
да, первый лист 2010 в Excel подключать не надо стандартных установках офиса As Excel.Workbook Dim должен работать. но End Sub помогите. все что 1).Range.Text = s(0) C:1233…, т.е. если использовать поля, какВ Книге excel документов Word изГость файл. » [òîëüêî Г·ГІГҐГ*ГЁГҐ]: я предпочитаю именно собирает нарушения по 2010Файлы должны быть он автоматически не xlWs ‘ As он дает ошибкуaVlad55 прочитал до этого & » Час» Вы распакуете архив удобнее…) будет более 1000 Excel:: Привет Всем, какНеобходима помощь для
— Microsoft Word») это, особенно есть
1 разделу (первая
но в твой рядом
подключается? Excel.Worksheet Dim intTbl при запуске. почему: Алекс, я к обрабатывает 1 таблицу
.Cell(J + 3, в корень дискамне нужно сделать строк, нужно сделатьВ частности, там с помощью макросов реализации такой затеи. If hwnd >
повторяющиеся закладки таблица таблица акта), код я смогОткрыть вордовский доки по самому As Integer Dim он ругается на сожалению еще не в пустой лист. 2).Select
С:, то пути так но я более 1000 соглашений
есть опция (переключатель), заполнить шаблон Word Чувствую что нужно 0 Then SetForegroundWindowavenger24 второй лист по вставитьАlt+F8 — Document_New макросу. у меня rCount As Integer не оперделенный тип на столько хорошо а у меняSelection.ParagraphFormat.Alignment = wdAlignParagraphLeft переназначать не придется, не понимаю как таким образом. подставлять в шаблон данными из Excel-табличке? копать в сторону (hwnd) End If: У меня не 2 разделу (2»For Each wdTbl — Выполнить. конкретная задача - Dim cCount As в экселе, если знаю VBA чтоб еще и в.Cell(J + 3, т.к. все и это сделать можетеkrosav4ig Word текст ячейкиGuest VBA. Буду благодарен vr_1 = Range(«c2»).Value получалось сделать 2 таблица) и т.д. In ActiveDocument.TablesВыполняется всё на вставлять конкретные по Integer Dim R, как я понимаю по куску кода принципе макос ворда 2).Range.Text = s(1) так увидится. прислать пример: Здравствуйте (16.10.2012) вместо её: А как с описанию алгоритма работы centr_1 = Range(«c3»).Value закладки с одинаковым всего 13-15 разделов.If InStr(LCase(wdTbl.Cell(2, 1).Range.Text), 1 лист. очередности таблицы ворда C, L Set
там все определено? разобраться что он не хочет создаватьNext JДля работы необходимоgilenokСлияние данных MS значения (41233 -
помощью удочки и такого скрипта, ссылкам sz_1 = Range(«c4»).Value именем.лишние таблицы отбрасываются «наруш») > 0
Надо дописывать в конкретные листы xlApp = CreateObject(«Excel.Application») макрос запускаю из делает. документ экселя.End With открыть «C:1233Var1 (слияние)Договор.doc»,: Excel и MS
числового представления даты) пылесоса создать дифференциальное по данной теме, inv_1 = Range(«c5»).ValueДа и сами по наличию слова Then»aVlad55 книги экселя, причем xlApp.Visible = True ворда. офис 2007.
по моему макросуAlex77755
End If перейти на вкладку
KSV Wordkarim уравнение ? образцам и прочей docWord.Range.Text = Replace$(docWord.Range.Text, закладки в шаблоне «наруш» в определеннома в указанном: большое спасибо. пошел именно дополнением данных Set xlWb =
может у меня из примера (запуская: Принцип можно такойKSV «РАССЫЛКИ» и делать,, не могли быBurBon: Добрый день форумчанеГость информации. Есть опыт «vr_1», vr_1) docWord.Range.Text текста не имели.
месте. ругается на «.Cell». курить ваш пример. на том листе. xlApp.Workbooks.Add rCount =
что-то не подключено майн и р4) применить:: нажать кнопку в что нужно… прислать пример: Добрый день!Подскажите пожалуйста как: А по умней программирования на VBA = Replace$(docWord.Range.Text, «centr_1»,Это если нево всяком случае не подскажешь почему? у вас смотрю как можно это 1 cCount = в офисе? в получаю ошибку «User-definedSub СБОРКА_ТАБЛИЦЫ() MyPath
ячейке H1Вариант 2 (сKSV
По моему я передать данные из можно что-нить сказать? для excel, программирования centr_1) docWord.Range.Text =
закладки, а просто
сейчас так стоити остается важный не требует экселя сделать? в обоих
1 L = смыле примеры документов type not defined» = ActiveDocument.Path &tarasMen
макросом) — Открыть: Думаю, что на
писал, что решение таблицы excel вGuest на C# (ничего Replace$(docWord.Range.Text, «sz_1», sz_1) условное слово поставить задача. причем в вопрос копирования данных в референсах. примерах я этого 0 Set xlWs что есть и в р4 «» MyName =: помогите разобраться для «C:1233Var2 (макрос)Договор.xls» и
данном этапе, Вам интересует без слияния. документ Word.: Можно ;-) общего с MS docWord.Range.Text = Replace$(docWord.Range.Text, и потом его примере видно что не в новыйхоть что-то сдвинулось. не смог увидеть,
= xlWb.Worksheets(1) With
что нужно? илис выделением желтым
Dir(MyPath & «*.xls») своей таблицы сделать, нажать кнопку «Формировать». проще воспользоваться стандартнымиTimShaЗадача в чем,Вы иронию поняли office). «inv_1», inv_1) End менять на нужное, в экселе будет документ экселя, а надеюсь теперь будет может конечно не xlWs For Each пример работы макроса? «Sub P4(ByRef ÂðÒàáëèöà If Len(MyName) = чето совсем неЗаполненные договоры будут средствами слияния документов: В таком случае, Есть вордовский документ или просто обиделись?..ViterAlex SubТакой код в то да! больше столбцов которые продолжением существующего. проще разобраться дальше. до конца разобрался wdTbl In ActiveDocument.TablesAlex77755 As Word.Table, Èìÿ 0 Then MsgBox воткну что и сохранены в той — это полностью без вашего участия, (Форма для заполненияЧто бы кто-нибудь: Это называется слиянием. Верхнем колонтитуле меняетavenger24 будут дозаполняться вручнуюи таки встаетнесколько доработок которые в коде. ‘*************************************************************************************************** »»»» этот: что есть и As String)» и «Рядом нет книги как же папке, где решает Вашу задачу требования выполняют фрилансеры «Рыба»), в которую что нибудь понял, Берётся источник данных, шрифт и в
: это я обычно уже после копирования. вопрос об исключении уже вижу нужны:
какие вообще условия блок вставляет как что нужно синим «Ýêñåëü As ексел», vbCritical, «Ошибка»aVlad55 лежит Договор.xls. и дает некоторые в соответствующем разделе. вносятся данные надо понятней объяснить, поля данных поставляются некоторых местах меняет и применяю (дата акта, какой копирования заголовков таблиц.
эксель документ должен работы макроса? файлы объекты ‘ wdTbl.Range.CopyaVlad55 New Excel.Application». после Exit Sub End: Добрый день.Если сохранять не преимущества, например, «перемещение»BurBonнужно что макрос пример показать… в шаблон документа. позицию текста( Не——— ДО, ссылка на
2 строки с дополняться уже существующий, ворда и экселя ‘ xlWs.Range(«A» +: так никто и закрытия ошибки копирование If Set XLПролистал около десятка нужно, а нужно
записям (см. Var1.png,: Спасибо за помощь) формировал новый документЮрий М Генерируются документы. Вкладка
подскажите как этогоа вариантов около акт и т.д.
частично объединенными ячейками. а не создаваться должны лежать в
CStr(rCount)).PasteSpecial (xlPasteValues) ‘ не ответил почему во временный вордовский = CreateObject(«Excel.Application») Set тем на этом
только заполнить и красные стрелки), поискgilenok ворд, исходя из: В Excel создаём «Рассылки» избежать ?я не 10—это то, что
чего нет в где-то видел подобную
новый при каждом одной папке, где-то rCount = rCount не создается экселевская документ происходит, в WB = XL.Application.Workbooks.Open(MyPath форуме и еще показать — закомментируйте нужного договора по
: во вложение обработка шаблона и заполнял таблицу. Нечто вродеTaras A применяю АПИ функции знаю я
таблице ворда) тему но не
запуске, не заносить должно быть точно
+ wdTbl.Rows.Count ‘ книга.
эксель нет.
& MyName) XL.Application.Visible на нескольких, так
(или удалите) строку: любым критериям, фильтры
работает не так
бы необходимые поля Базы Данных (БД).: Разобрался с данной типаshanemac51разброс по листам
могу найти. в эксель шапку прописан путь к
cCount = wdTbl.Columns.Countвыкладываю примеры файлов.ну и остаются = True On и не смог200?’200px’:»+(this.scrollHeight+5)+’px’);»>WD.SaveAs f & r (полезно, например, если как нужно. задачаЗаранее спасибо. Идём в Word. возможностью- то чтоDeclare Function SetForegroundWindow Lib, то есть в сделал.Добавлено через 25 минут таблицы (если не экселевскому файлу или ‘*************************************************************************************************** »»»’ этотAlex77755 вопросы как продолжить Error GoTo ERH найти более менее
gilenok нужно распечатать только стоит выделять неЮрий М Там: Сервис -
надо. Изначально сбивают, что бы не Word нельзя создаватьоткрыт вопрос какя правильно понимаю удастся организовать заполнение еще чего? блок вставляет поячеечно
: Это значит, что
просмотр начального вордовского Set IST = полного решения для: KSV сложность в те договоры, «Заказ-наряд» одну строку для: Можно обойтись без Письма и рассылки с толку списки
зависеть от зоопарка 1 закладку в
работать с конкретным что в твоем
ворда без шапки),обрабатываться должны разные на лист.Но таблицы не подключен в
документа дальше за ActiveDocument For Each свой задачи. Сам
том что таблицы на которые оформил переноса в word
макросов в Excel. — Мастер слияния.
получателей, письма и компов(разные версии windows/ms 2 местах ?
файлом (например E:книга22.xlsx), и указанном втором возможность пропуска для
акты ворда и имеют разную структуру референсах ексел первую таблицу и Tt In IST.Tables
больше «железячник», но могут меняться и Сусанин И.П.) и а любое количество Посмотрите в Word: И никаких макросов. другие названия команд. office) в службах
Придётся создавать 2
а не открывать макросе временные документы переноса некоторых таблиц работы макроса заполнять и получается неЛучше использовать позднее копирование второй (третьей, For Each R
руководство поставило задачу должны переносится полностью т.д.
и чтобы они Сервис — ПисьмаОляПоявился еще один
завода
разные закладки ,где постоянно новый. и не создаются? и
(например если в добавлением один файл красиво. »»»’ Может связывание(если макрос должен четветой) найденной таблицы In Tt.Rows For автоматизировать сведение в
во вложении чутьЕсли Вы не попадали в определенную и рассылки -
: добрый вечер, подскажите вопрос. Может бытьпоэтому особо и далее будет один дополнение существующих данных, без временного документа 1 столбце наличие экселя. проще вставлять каждую работать на разных
в следующие лист Each C In общий реестр данные изменил данную таблицу( разобрались, как этим
таблицу в ворд Слияние. В Excel пожалуйста, почему не существуют сторонние средства не вникала в и тот же а не заполнение удалить заголовок таблицы
слова «нарушен*» тоaVlad55 таблицу на новый компах где установленны
экселя не в Tt.Columns ‘ тут из актов нарушений. тоесть в файл пользоваться — см. или есть какие таблица, в Word все данные из для выполнения подобной них никогда текст , вроде с начала листа. будет затруднительно?
переносится, при отсутствии: «Надо подключить библиотеку
лист? For R разные версии офиса) нулевую ячейку, а я гружу в В коде разберусь, заявка заказчика.docx должна Var1.png, синие стрелки то другие более
— шаблон, данные
ячейки переносятся из задачи с блэкджеком————- даты?Добавлено через 3 минуты
CyberForum.ru
Заполнение данными шаблона Word
Alex77755 — нет), ну
объектов программы Excel: = 1 ToВот верхняя часть продолжением заполнения. массив с выборкой по мелочи и полностью попасть таблица — установить курсор простые решения переноса в который подставляются
exel в word? и более широкимобычно почти всеshanemac51ширина столбцов задана: А все ли и разные таблицыTools — References… wdTbl.Rows.Count L =
макросаAlex77755 по условию next образцу сделать скорее
с первого листа ввода в нужное
определенных строк в
из выбранной строки и числовое значение, функционалом?
отчеты(более 90%) формирую, здравствуйте. Вот попробовал в файле книга22. таблицы всегда заполняются?
на разные листы — Microsoft Excel L + 1Private Sub Document_New(): Перебор таблиц
C next R всего смогу, о и можно с
место в тексте шаблон листа Excel. Вопросы например, 16.10.2012 переноситсяTaras A программно а НТМ—формате
такой вариант , вставляемые данныеИх же надо
как у меня
Object Library. For C = Dim wdTbl As
For Each Tt Set SH = написать самому не заменой как удобно. (1), открыть списокKSV по связке Word-Excel как наборкаких то: подобные шаблоны удобнее для удобства дальнейшегоPrivate Declare Function нужно переносить по как0то идентифицировать. Какую в образце.
Это позволяет проще 1 To wdTbl.Rows(R).Cells.Count Word.Table Dim xlApp In IST.Tables next WB.Worksheets(«БД»)’ выбираю нужный получается. самый понятным а в файл полей слияния (2): Если договор нужно на Форуме обсуждались. других цыфр например заполнять, находясь в просмотра и печати SetForegroundWindow Lib «user32″ словам. таблицу на какойеще раз большое писать код, т.к. .Cells(L, C) = ‘ As Excel.ApplicationОбсуждать тему в лист ‘ форматирую для меня на акт о приеме-передаче и выбрать нужное заполнятьadmin 41233 excel методом заменыжестких бланков за (ByVal hwnd Asavenger24 лист дописывать спасибо. если есть после того, как Replace(Replace(wdTbl.Cell(R, C).Range.Text, Chr(7), Dim xlWb ‘ таком формате просто With SH .Select данный момент оказался электрооборудования.docx должна попасть поле.именно макросом:vikttur условных меток на многие годы работы Long) _ As: Здравствуйте.не нужно. возможность помочь по ставим точку, появляются «»), Chr(13), «») As Excel.Workbook Dim глупо: можно долго .Cells.ClearContents .Cells.NumberFormat = этот код Экспорт таблица со второгоЧтобы распечатать (или, то вставляете вВот тут есть подробно: Ячейка имеет формат некий текст —почти не было Long Private Declare
Буду писать программку,Просто начинать считывать указанным выше вопросам
всплывающие подсказки.
Next C Next xlWs ‘ As и нудно клацить «@» .Cells.Interior.ColorIndex = таблицы из Word
листа и самое поместить в другой нужные места шаблона
CyberForum.ru
про Слияние:
Столкнулся с тем, что все инструкции связаны со сложной автоматизацией с использованием кучи каких-то файлов, экселя и его таблиц, связей документов и так далее. Всё можно сделать гораздо проще!
Автозаполнение документа или договора Word Без Excel – как это сделать?
Сколько же я намучался, забивая запросы типа “как сделать автозаполнение word без экселя” или “заполнение документа значением поля” или “word значение поля в текст автоматически“. На самом деле всё оказалось не так сложно, как я изначально предполагал.
Да, можно делать очень полезные связки документов, когда мы заполняем эксель, а потом у нас шаблон ворда из него берет информацию. Но объяснить какому-нибудь муниципальному сотруднику как это делать – задача практически невозможная.
Так вот, всё что нам потребуется – это Microsoft Word Документ. В нем мы создадим поля, настроим страницы и всё будет автоматически наполняться.
Инструкция как сделать автозаполнение документа Word из полей
Для примера возьму документ договора, где есть заказчик, исполнитель, дата документа и сумма договора, которые мы хотим подставлять из полей.
Пример документа с автозаполнением из полей делаю в microsoft office word 2019 (автоматизация заполнения документов word без эксель).
- Формат документа DOCM.
Создаем новый документ и сохраняем его в формате docm (Документ Word с поддержкой макросов). - Вкладка “Разработчик”.
Файл – Параметры – Настроить ленту. В выпадающем списке выбираем “Основные команды”, затем выделяем ниже строчку “Разработчик”, и по середине жмем “Добавить”. Справа появляется “разработчик” с плюсиком, жмем Ок, и видим, что теперь вверху есть вкладка “Разработчик”.
- Делаем страницу с полями для ввода данных документа (договора).
Кликаю в начале договора, жму вставка – разрыв страницы, и в итоге у меня пустая первая страница.
На ней создаю табличку, это не обязательно, и начинаю там создавать поля. Делаем страницу с полями для ввода данных - Создаём поля для ввода текста для автозаполнения документа.
Кликаем в любое место документа, где нам нужно поле.
Переходим во вкладку Разработчик. Вставляем не просто текстовое поле, а именно СТАРОЕ текстовое поле.
То есть выбираем там уже иконку “Инструменты из предыдущих версий”, затем “Поле (элемент управления формы)”.
И вставляем куда нам нужно.
- Настраиваем поля Word для автозаполнения.
Когда поле есть на странице, жмем по нему правой кнопкой и во всплывающем меню выбираем “Свойства” (поля).
Настраиваем обязательно следующие параметры поля:
— Текст по-умолчанию: тут свой текст.
— Закладка: на английском, уникальный идентификатор поля. Придумайте что-нибудь понятное, это нам пригодится далее.
— Ставим галочки (чек-боксы) “разрешить изменения” и “вычислить при выходе”.
В данном примере я создал текстовое поле, в котором будет Дата договора (по сути это любой текст). Мне главное, чтобы я в одном месте ввел данные, а в других местах документа текст из поля автоматически заполнился. И в данном случае это будет то, что я назвал датой. - Настраиваем подстановку текста из поля в документ.
ЕСТЬ ДВА СПОСОБА: ВРУЧНУЮ СОВСЕМ, И ЧЕРЕЗ СВОЙСТВА ПОЛЕЙ.
Разберем первый способ: вставка текста из поля в документ через закладку ctrl+f9.
Для этого выбираем место, где у нас должно подставиться значение поля. Мы помним, что в нашем случае уникальный идентификатор (название закладки) в примере: POLEDATE.
В этом месте кликаем мышкой левой кнопкой (просто чтобы там курсор мигал), затем на клавиатуре нажимаем сочетание клавиш Ctrl+F9 (контрол плюс эф девять).
Видим, что появились фигурные скобки с серым фоном, и мы можем внутри печатать.
Печатаем внутри следующее: REF POLEDATE.
Поясняю: внутри фигурных скобочек, должно быть три буквы заглавных REF, затем пробел, затем то как мы назвали закладку (идентификатор поля). В нашем случае это POLEDATE, а может быть что угодно.
Больше ничего жать не нужно, можно убрать оттуда курсор.
Вот как это выглядит в итоге:
Второй способ: вставка значения поля из другого поля автоматически через закладку REF.
Это практически тоже самое, только не нужно нажимать ничего на клавиатуре. По мне так, дольше, но вдруг вам там понятнее.
Так же создаем поле, в этом примере возьму сумму договора. При создании поля (см. п. 5) я ввел название закладки поля (уникальный идентификатор) pole_stoimost.
Только теперь, когда мы нажали в место документа, куда хотим подставить данные автоматически (курсор там мигает), мы вставляем поле.
Выбираем вкладку “Вставка”, затем “Экспресс-блоки”, затем “Поле” (как на скриншоте ниже):
Это поле нужно настроить так, чтобы в него подставлялось значение другого поля автоматически.
При вставке поля из экспресс-блоков, или когда вы потом можете нажать правой кнопкой Свойства поля, настраиваем так.
Слева выбираем тип поля “Ref”, и дальше выбираем название нашей закладки, т.е. идентификатор поля, откуда надо подставить текст. В нашем случае это pole_stoimost:
(вот кстати выше видно на скриншоте еще ошибку “Ошибка! Источник ссылки не найден.” – это происходит, когда вы ввели REF Несуществующая закладка, например. То есть не найдено поле (закладка) с тем идентификатором уникальным. И надо просто проверить свойства полей.).
Короче, так или иначе, подытожу:
— Создали поле через Разработчика.
— У него в свойствах прописали уникальный идентификатор (название закладки).
— Вставили через CTRL+F9 или экспресс блоки – поле (место) куда будет подстваляться текст из первого поля, указав такой же идентификатор. - Автозаполнения документа значением из полей через F9 или печать документа.
Ну.. тут уже все понятно должно быть – насоздавали полей сколько нужно, поставляли в места куда нужно.
По-умолчанию, Word будет автозаполнять документ автоматически, если весь документ выделить (ctrl+a например) и нажать кнопку F9.
Места с REF и полями преобразуются в то, что есть в оригинальном поле-закладке.
Но есть трудность – сложно объяснить людям как это работает, что выделять и как обновлять эти поля.
Я выбрал способ попроще – чтобы поля автоматически обновлялись при печати (печатать почти все умеют как).
Лезем в настройки (файл – параметры), там выбираем “Экран” и отмечаем галочку “Обновлять поля перед печатью”.
Теперь, каждый раз когда через Файл – Печать или Ctrl+P будет печататься документ – поля будут обновляться (текст автоматически подставляться), т.е. тоже самое что через выделение документа и нажатие F9. - Наводим красоту: запрет редактирования, номера страниц.
Ну и еще два момента. Во-первых, документы пронумерованы обычно. И основная проблема – что страница с полями тоже печатается, а в официальном документе её быть не должно.
Соответственно, способа убрать страницу word из печати автоматически я не нашел. Поэтому, выкрутился по-другому.
Через настройки колонтитула (несколько кликов по нижней части документа (или где там у вас номера страниц)), переходим в свойства, номера страниц, и там выбираем начать с “0″, с нуля короче.
Таким образом, страница с полями становится как бы нулевой, и договор печатается как надо, первая страница договора остается первой.
И второе, защита от редактирования, чтобы только вводили данные в поля.
Сделал просто – Рецензирование – Ограничить редактирование – Да, включить защиту, ну и пароль 1.
Отключается так же, только не все видят – там внизу кнопка становится “отключить защиту”.
Считаю обязательным выложить для вас сам документ, который использовал в этой инструкции. Если сильно запутались, можете просто из него скопировать оригинальные поля (которые в таблице) которые заполняются, и поля которые принимают автоматически значения из других полей.
Скачать пример автоматическое заполнение Word из полей: Автозаполнение документов Word Без Excel через текстовые поля docm (пароль на отключение защиты: 1 (просто единичка)).
P.S. Почему формат docm? На самом деле потому, что если формат doc или docx – то не работает вкладка “разработчик” где поля (ну не вставляются они). При этом – само автозаполнение прекрасно работает. Совет – делайте всё в docm, а итоговый результат, уже с защитой от редактирования – сохраните в обычный формат doc/docx и отдавайте, всё там прекрасно работает и печатается.
P.P.S. Заказать можно тут: https://vk.com/autoworddocs! обязательно оставьте отзыв!
Мои контакты →
© 2006 — 2023, Александр Сергеев