Макрос word заполнение формы

182 / 1 / 0

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

Сообщений: 81

1

12.09.2011, 13:44. Показов 34899. Ответов 96


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

Делаю макрос для автоматического заполнения анкеты.
Есть куча повторяющихся строк, например фамилия, имя, отчество и т.п.
При выполнении макроса данные вставляются только в одном месте, т.е. например фамилия вставляется только один раз в первой закладке, а дальше по доку пусто.
Помоги кто знает.
Заранее спасибо.
Шаблон прилагаю



0



Busine2009

Заблокирован

12.09.2011, 14:17

2

kotan,
чтобы видеть Закладки (потом поймёте, зачем они):
СервисПараметры… — вкладка Вид — флажок Закладки.

Перейдите к строке Фамилия в документе Word. Вы увидете, что серое поле обрамлено в квадратные скобки. Эти скобки означают, что поле Формы находится в закладке.
Имя поля Формы — это имя закладки, в котором находится поле.
Теперь перейдите к строке, которая не заполняется. Поле будет без квадратных скобок.

Т.е. вам нужно просто напросто переделать всю форму.

Имена полям нужно давать так:

  1. вставьте поле Формы;
  2. щ. по нему правой кн. мыши — Свойства;
  3. закладка: — укажите имя — это и будет именем поля, которое у вас и есть в коде VBA.



1



182 / 1 / 0

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

Сообщений: 81

12.09.2011, 14:49

 [ТС]

3

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



0



Busine2009

Заблокирован

12.09.2011, 14:55

4

kotan,
давайте имена закладкам такие: Фамилия1, Фамилия2 и т.д.

Затем в коде:

Visual Basic
1
2
ActiveDocument.FormFields("Фамилия1").Result = Me.TextBox1.Text
ActiveDocument.FormFields("Фамилия2").Result = Me.TextBox1.Text



0



182 / 1 / 0

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

Сообщений: 81

12.09.2011, 14:58

 [ТС]

5

я понял. имена закладок должны быть уникальными. а есть ли способ обойти это? очень много придет делать «уникальных» вкладок для одного значения?



0



Busine2009

Заблокирован

12.09.2011, 15:14

6

kotan,
чтобы было видно поля (потом поймёте, зачем это надо):
СервисПараметры… — вкладка Видзатенение полей: Всегда.

Чтобы было видно непечатаемые символы:
щ. на панели инструментов Стандартная кнопку Непечатаемые знаки.

Допустим встречается строка Фамилия 10 раз:

  1. вставляете поле Формы там, где строка Фамилия, встречается первый раз;
  2. даёте имя полю Фамилия;
  3. для наглядности введите в поле слово Фамилия;
  4. перейдите в то место документа, где строка Фамилия встречается второй раз;
  5. ВставкаСсылкаПерекрёстная ссылка…;
  6. Тип ссылки: Закладка — выбирете закладку с именем Фамилия — ВставитьЗакрыть;
  7. в документ будет вставлено слово Фамилия и оно будет серым. Серое означает, что это не прост текст, а поле (не надо вникать, что это такое);
  8. скопируйте это серое (без знака абзаца);
  9. вставьте скопированное во все строки, где должна быть фамилия.

Теперь при изменении текста в поле Формы в строке Фамилия, будут изменены все перекрёстные ссылки на это поле Формы. Чтобы изменения произошли: ФайлПредварительный просмотр (чтобы произошло обновление полей), а затем выйдите из Предварительного просмотра.



1



182 / 1 / 0

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

Сообщений: 81

12.09.2011, 15:22

 [ТС]

7

Спасибо ВАМ огрОмное! Помогло
Понаглею и спрошу еще.
Можно ли сделать так чтобы после заполнения формы все данные в ней сохранялись если потребуется что-то откорректировать (чтобы заново не вбивать все данные, а изменить нужные) и была кнопка типа «Очистить» для ввода новых данных?



1



Busine2009

Заблокирован

12.09.2011, 16:33

8

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

Visual Basic
1
2
3
Private Sub CommandButton2_Click()
Me.Hide
End Sub

Можно сделать так, что форма будет открыта и можно будет работать с документом. Переключаться между документом и формой в этом случае можно через Панель задач Windows (внизу полоса).

Очистка полей:

Visual Basic
1
2
3
4
5
6
7
8
Private Sub CommandButton1_Click()
Dim Элемент As MSForms.Control
For Each Элемент In Me.Controls
    If TypeName(Элемент) = "TextBox" Then
        Элемент.Text = ""
    End If
Next Элемент
End Sub



1



182 / 1 / 0

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

Сообщений: 81

12.09.2011, 18:11

 [ТС]

9

Спасибо большое, все работает. Супер!

Не могу понять куда прописать код в своей форме, чтобы форма автоматически запускалась при отркытии документа. У меня в модуле прописано появление кнопки при открытии (где-то содрал), а вот саму форму на автоподгрузку научить не получается.



0



Busine2009

Заблокирован

12.09.2011, 19:35

10

Создайте в самом документе (а не шаблоне Normal) модуль (см. рис), в него поместите вот этот код:

Visual Basic
1
2
3
Sub AutoOpen()
UserForm1.Show
End Sub

Сохраните изменения.

Делаете этот документ доверенным на этом компьютере (чтобы при открытии документа макросы, содержащиеся в этом документе, не блокировались).

Создание сертификата:

  1. Пуск — Все программы — Microsoft Office — Средства Microsoft Office — Цифровой сертификат для проектов VBA;
  2. введите имя Мой сертификат — OK. Теперь у вас есть сертификат, с которым свяжем ваш документ.

Связывание документа с сертификатом (действия надо делать в VBA):

Tools — Digital Signature… — Выбрать… — Мой сертификат — OK — OK.

Подготовка документа к работе:

  1. Сохраните документ.
  2. Закройте документ.
  3. Откройте документ.
  4. Поставьте флажок Всегда доверять макросам от этого издателя Не отключать макросы.

Теперь можете запускать этот документ у себя на компьютере:

  • не будет заблокирован макрос;
  • появится форма.

На каждом компьютере нужно создавать сертификат и связывать его с документом. Иначе перед открытием документа будет появляться сообщение о том, что в документе есть макросы.

Миниатюры

Макрос. Автозаполнение анкеты в Word. Нужна помощь
 



0



182 / 1 / 0

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

Сообщений: 81

12.09.2011, 20:44

 [ТС]

11

Работает! НО… если только документ открыть из Офиса как шаблон для редактирования, а если прост нажать на шаблон когда создется новый док автоматически форма не подгружается, но про макросы уже не спрашивает!



0



Busine2009

Заблокирован

13.09.2011, 08:24

12

kotan,
а форма должна быть в новых документах?

Т.е. если перенести файл на др. компьютер, в этом файле должна быть форма?



0



182 / 1 / 0

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

Сообщений: 81

13.09.2011, 10:21

 [ТС]

13

Busine2009, да, желательно, чтобы могли открывать и на других компьютерах



0



Busine2009

Заблокирован

13.09.2011, 14:23

14

Чтобы форма появлялась при создании нового документа на основе нужного шаблона

Создайте новый документ на основе нужного шаблона (чтобы открыть VBA этого шаблона).
Перейдите в VBA. Во вложенных рисунках Project(Автозапуск) — это шаблон, на основе которого будут создаваться документы-анкеты.

Вот этот код:

Visual Basic
1
2
3
Private Sub Document_New()
UserForm1.Show
End Sub

поместите вот сюда (см. Рисунок1).

А форму поместите вот сюда (см. Рисунок2).

Как поместить форму в новый документ, я ещё не смотрел.

Миниатюры

Макрос. Автозаполнение анкеты в Word. Нужна помощь
 

Макрос. Автозаполнение анкеты в Word. Нужна помощь
 



1



182 / 1 / 0

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

Сообщений: 81

13.09.2011, 15:00

 [ТС]

15

наверное недопонял где-то…
1. Нажимаю на свой шаблон.
2. На его основе создается документ, скажем «Документ1»
3. Вхожу в настройки VB этого Документ1
4. Вставляю код в ThisDocument и форму из моего шаблона(рис.1)
5. Сохраняюсь и выхожу. Форма автоматом не подгружается.
вот-с…

и еще забегая вперед, может подскажите, как сделать кнопки в MultiPage на разных страницах с дублирующими друг друга. У меня на одной странице есть кнопки «Вставить», «Очистить», «Выйти» и они все работают, но если скопировать их на вторую вкладку — они не работают.

Миниатюры

Макрос. Автозаполнение анкеты в Word. Нужна помощь
 



0



Busine2009

Заблокирован

13.09.2011, 15:02

16

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

наверное недопонял где-то…

да, неправильно поняли, ещё раз попробуйте.



0



kotan

182 / 1 / 0

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

Сообщений: 81

13.09.2011, 15:08

 [ТС]

17

Вставил в ThisDocument вот этот код:

Visual Basic
1
2
3
Sub AutoOpen()
UserForm1.Show
End Sub

Теперь форма подгружается сама!
Спасибо!

Добавлено через 36 секунд

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

может подскажите, как сделать кнопки в MultiPage на разных страницах с дублирующими друг друга. У меня на одной странице есть кнопки «Вставить», «Очистить», «Выйти» и они все работают, но если скопировать их на вторую вкладку — они не работают.

По этому вопросу подскажите?



0



Busine2009

Заблокирован

13.09.2011, 15:09

18

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

Вставил в ThisDocument вот этот код:

я про другое писал.



0



Busine2009

Заблокирован

13.09.2011, 15:15

19

Помещение во вновь созданные документы формы

  1. Создайте где-нибудь у себя на компьютере папку: из неё будет помещаться форма во вновь создаваемый документ.
  2. Помещаем в эту папку форму (действия делаются в VBA):
    • щ. 2 раза левой кн. мыши по форме;
    • File Export File… — выберите только что созданную папку — Сохранить. В результате в только что созданной папке появятся 2 файла (оба эти файла относятся к одной форме).
  3. Вот сюда (см. Рисунок1) помещаем вот этот код:
    Visual Basic
    1
    2
    3
    4
    5
    6
    7
    8
    
    Private Sub Document_New()
    With Application.VBE
        'Здесь нужно указать ваш путь к файлу формы.
        .VBProjects(.VBProjects.Count).VBComponents.Import _
            FileName:="C:Documents and SettingsПользовательРабочий столUserForm1.frm"
    End With
    UserForm1.Show
    End Sub

Миниатюры

Макрос. Автозаполнение анкеты в Word. Нужна помощь
 



0



Busine2009

Заблокирован

13.09.2011, 15:41

20

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

и еще забегая вперед, может подскажите, как сделать кнопки в MultiPage на разных страницах с дублирующими друг друга. У меня на одной странице есть кнопки «Вставить», «Очистить», «Выйти» и они все работают, но если скопировать их на вторую вкладку — они не работают.

потому что скопированные и вставленные кнопки — это не те же самые — это новые кнопки. Нужно зайти в VBA и записать для каждой новой кнопки код.



0



Продолжаем серию заметок по теме автоматизации документов.

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

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

Использование шаблона необходимо, ведь на его основе вы в дальнейшем будете создавать свои документы.

Распакуйте файл из архива и поместите его в папку с шаблонами редактора Word. Как правило, эта папка находится по адресу: C:Documents and SettingsИМЯ_ПОЛЬЗОВАТЕЛЯApplication DataMicrosoftШаблоны.

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

Исходя из этого мы добавим в документ следующие закладки:

  • name
  • company
  • address
  • date
  • salutation

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

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

Эти метки закладок после нажатия кнопки «Внести данные» будут заменены на конкретные тексты.

Не забывайте сохранять сделанные вами изменения в шаблоне на всякий «пожарный» случай.

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

  • Откройте редактор Visual Basic с помощью сочетания клавиш «Alt»+«F11». Убедитесь, что в окне проектов выделен ваш шаблон:
  • В меню Insert выберите команду UserForm. В окне проектов будет создан новый объект Forms с пустой формой или просто добавлен в проект модуль userForm.
  • Разместите на форме необходимые элементы. Например, как на рисунке ниже:

Текстовые поля (со стандартными именами TextBox1) были мною переименованы с учетом их назначения. Обратите внимание в нижеприведенном коде, как они теперь называются.

Третий шаг — написание кода для элементов нашей формы.

  1. В меню Insert выберите команду Module. В окне проектов будет создан новый модуль Module1. Дважды щелкните по модулю и перейдите в окно редактирования кода. Вставьте следующий код:
  2. Sub AutoNew()
    Dim oF As MyForm
    Set oF = New MyForm
    oF.Show
    Set oF = Nothing
    End Sub

    Этот код запускает форму каждый раз при создании нового документа на основе вашего шаблона.

  3. Перейдите на модуль UserForm1. Переименуйте его в MyForm.
  4. Нажмите клавишу «F7» и в окне редактора кода вставьте следующий код (содержит процедуры для действий с элементами формы):
  5. 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
  6. Ниже этого кода вставьте следующий код:
  7. 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
  8. Сохраните проект и попробуйте создать на основе вашего шаблона новый документ. Введите необходимые данные в поля формы и нажмите кнопку «Внести данные».

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

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

Образцом для шапки шаблона послужила картинка из шаблона городского письма редактора Word 2007.

Образцом кода для данного макроса и формы послужила заметка Gregory Maxey Address a Letter Using as UserForm.

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

Отображение вкладки «Разработчик»

Если вкладка «Разработчик» не отображается на ленте, см. раздел Отображение вкладки «Разработчик».

Откройте шаблон или пустой документ, на основе которого будет формироваться форма.

Для экономии времени начните с шаблона формы или начните с нуля с пустого шаблона.

  1. Перейдите к пункту Файл > Новый.

  2. В поле Поиск шаблонов в сети введите Формы или тип нужной формы и нажмите клавишу ВВОД.

  3. Выберите шаблон формы, а затем выберите Создать или Скачать.

  1. Перейдите к пункту Файл > Новый.

  2. Выберите Пустой документ.

Добавьте содержимое в форму

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

Примечание: Форму с элементами управления содержимым можно распечатать, однако поля вокруг них напечатаны не будут.

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

  1. Щелкните или коснитесь места, куда вы хотите вставить элемент управления.

  2. Выберите Разработчик > Управление содержимым форматированного текста Кнопка "Форматированный текст" или Управление содержимым обычного текста Кнопка "Обычный текст".

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

Элемент управления «рисунок» часто используется в шаблонах, однако его можно добавить и в форму.

  1. Щелкните или коснитесь места, куда вы хотите вставить элемент управления.

  2. Выберите Разработчик > Управление содержимым изображений Кнопка "Рисунок".

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

Используйте стандартные блоки, когда хотите предоставить пользователям возможность выбрать определенный блок текста. Например, элементы управления стандартными блоками полезны, когда вам нужно добавить другой шаблонный текст в зависимости от конкретных требований контракта. Вы можете создать для каждого варианта элемент управления содержимым «форматированный текст» и поместить их все в элемент управления «стандартный блок», который будет служить контейнером.

  1. Щелкните или коснитесь места, куда вы хотите вставить элемент управления.

  2. Перейдите в раздел РазработчикЭлемент управления содержимым галереи стандартных блоков Элемент управления "коллекция стандартных блоков" (или Элемент управления содержимым стандартных блоков).

  3. Выберите Разработчик и элементы управления содержимым для стандартного блока.

    Вкладка "Разработчик" с изображением элементов управления содержимым

  1. Щелкните или коснитесь места, куда вы хотите вставить элемент управления.

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

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

  1. Перейдите в раздел Разработчик > Управление содержимым поля со списком кнопка поля со списком или Управление содержимым раскрывающегося списка Кнопка списка.

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

  3. Чтобы создать список вариантов, выберите Добавить в разделе Свойства раскрывающегося списка.

  4. Введите вариант в поле Отображаемое имя, например Да, Нет или Возможно.

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

  5. При необходимости задайте остальные свойства.

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

  1. Щелкните или коснитесь того места, где вы хотите вставить элемент управления выбора даты.

  2. Выберите Разработчик > Управление содержимым средства выбора даты Кнопка выбора даты .

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

  1. Щелкните или коснитесь того места, где вы хотите вставить элемент управления «флажок».

  2. Выберите Разработчик > Элемент управления содержимым «флажок» Кнопка флажка.

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

Элементы управления формы прежних версий предназначены для совместимости с предыдущими версиями Word и состоят из традиционной формы и элементов управления Active X.

  1. Щелкните или коснитесь того места, где вы хотите вставить традиционный элемент управления.

  2. Перейдите в раскрывающийся список Разработчик > Формы прежних версий Кнопка устаревших элементов управления.

  3. Выберите нужный элемент управления в разделе Формы предыдущих версий или Элементы ActiveX.

Установка или изменение свойств элементов управления содержимым

У каждого элемента управления содержимым есть параметры, которые можно установить или изменить. Например, для элемента управления «Выбор даты» вы можете выбрать различные форматы отображения даты.

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

  2. Перейдите в раздел Разработчик > Свойства.

    Кнопка свойств элементов управления

  3. Измените нужные свойства.

Добавить защиту формы

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

  1. Откройте форму, которую хотите заблокировать или защитить.

  2. Выберите Разработчик > Ограничить правку.

    Кнопка "Ограничить редактирование"

  3. После выбора ограничений выберите Да, начать применение защиты.

    Панель ограничения редактирования

Дополнительный совет:

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

Для этого выберите Выбрать разделы на панели Ограничить правку. Дополнительные сведения о разделах см. в разделе Вставка разрыва раздела.

Селектор разделов на панели ограничения разделов

Отображение вкладки «Разработчик»

Если вкладка «Разработчик» не отображается на ленте, см. раздел Отображение вкладки «Разработчик».

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

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

  1. Выберите Файл > Создание из шаблона.

    Параметр "Создать из шаблона"

  2. В области поиска введите форму.

  3. Дважды щелкните нужный шаблон.

  4. Выберите Файл > Сохранить как, и выберите место для сохранения формы.

  5. В области Сохранить как введите имя файла и выберите Сохранить.

  1. Перейдите в раздел Файл > Новый документ.

    Параметр "Создать документ"

  2. Выберите Файл > Сохранить как.

  3. В области Сохранить как введите имя файла и выберите Сохранить.

Добавьте содержимое в форму

Перейдите в раздел Разработчик и выберите элементы управления для добавления в документ или форму. Чтобы удалить элемент управления содержимым, выберите его и нажмите кнопку DELETE. Вы можете установить параметры для элементов управления после вставки. В меню «Параметры» можно добавить макросы входа и выхода для запуска при взаимодействии пользователей с элементами управления, а также элементы списка для полей со списком,

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

  2. В разделе Разработчик выберите Текстовое поле, Флажок или Поле со списком.

    Вкладка "Разработчик" с элементами управления содержимым

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

  4. Повторите шаги 1–3 для каждого из элементов управления, который хотите добавить.

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

  • Установите общие свойства.

    • Выбор макроса для запуска позволяет выбрать записанный или пользовательский макрос для запуска при Входе илиВыходе из поля.

    • Закладка Укажите уникальное имя или закладку для каждого элемента управления.

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

    • Добавить текст справки Предоставьте подсказки или инструкции для каждого поля.

    • ОК Сохраняет параметры и закрывает панель.

    • Отмена Забывает изменения и закрывает панель.

  • Установите определенные свойства для текстового поля

    • Тип Выберите форму «Обычный текст», «Число», «Дата», «Текущая дата», «Текущее время» или «Вычисление».

    • Текст по умолчанию задает необязательный текст инструкций, отображаемый в текстовом поле до ввода пользовательского текста в поле. Установите включенное текстовое поле, чтобы разрешить пользователю вводить текст в поле.

    • Максимальная длина устанавливает длину текста, который может ввести пользователь. Значение по умолчанию — Не ограничено.

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

    • Текстовое поле включено Позволяет пользователю вводить текст в поле. Если есть текст по умолчанию, пользовательский текст заменяет его.

  • Задайте определенные свойства для флажка.

    • Значение по умолчанию Выберите между Не отмечено или Отмечено по умолчанию.

    • Размер флажка Установите размер Точно или Автоматически, чтобы изменять размер по мере необходимости.

    • Флажок включен Позволяет пользователю пометить или очистить текстовое поле.

  • Установите определенные свойства для поля со списком

    • Элемент раскрывающегося меню Введите строки для элементов списка. Нажмите + или ВВОД, чтобы добавить элемент в список.

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

    • Раскрывающееся меню включено Позволяет пользователю открыть поле со списком и сделать выбор.

  1. Перейдите в раздел Разработчик > Защита формы.

    Кнопка "Защита формы" на вкладке "Разработчик"

    Примечание: Чтобы снять защиту с формы и продолжить правку, снова выберите Защитить форму.

  2. Сохраните и закройте форму.

При необходимости вы можете проверить форму, прежде чем распространять ее.

  1. Защитите форму.

  2. Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.

Отображение вкладки «Разработчик»

  1. В правой части ленты выберите Всплывающее меню "Действие", а затем выберите Параметры ленты.

  2. В разделе Настройка, выберите Разработчик .

Откройте шаблон или документ, на основе которого будет формироваться форма

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

  1. Выберите Файл > Создание из шаблона.

  2. На левой панели разверните Веб-шаблоны и выберите Формы.

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

Добавление элементов управления содержимым в форму

  1. В документе щелкните место, куда нужно добавить элемент управления содержимым.

  2. На вкладке Разработчик в разделе Элементы управления формой выберите Текстовое поле, Флажок, или Поле со списком.

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

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

  4. Повторите шаги 1–3 для каждого из элементов управления, который хотите добавить.

Добавьте пояснительный текст (необязательно)

Пояснительный текст (например, «введите имя») в текстовом поле позволит сделать форму более удобной. По умолчанию текстовое поле остается пустым, но вы можете добавить в него текст.

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

  2. На вкладке Разработчик в разделе Элементы управления формой выберите пункт Настройки.

  3. В поле Текст по умолчанию введите текст инструкции.

  4. Проверьте, выбран ли пункт включить заливку, и выберите ОК.

Защитите форму.

  1. На вкладке Разработчик в разделе Элементы управления формой выберите Защитить форму.

    Примечание: Чтобы снять защиту формы и продолжить редактирование, щелкните Защита формы еще раз.

  2. Сохраните и закройте форму.

Проверка формы (необязательно)

При необходимости вы можете проверить форму, прежде чем распространять ее.

  1. Защитите форму.

  2. Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.

Создание заполняемых форм недоступно в 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, и т.д.).​

​ надо добавить код/маску​​….​​ в акте, а​​ + «» +​ мысль реализовать идея​

​ удалена, то для​​Alex77755​aVlad55​ туда сюда уже​ доступней.​ после обработки.​ ‘ 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​
​ варианты?​aVlad55​aVlad55​ подключение слетает. ничего​ вообще значит «не​
​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 xlApp​aVlad55​ ексел книге находящейся​ (малореально но шанс​ 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 SetForegroundWindow​avenger24​ второй лист по​ вставить​А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​ Word​karim​ уравнение ?​ образцам и прочей​ 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-defined​Sub СБОРКА_ТАБЛИЦЫ() 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.Tables​Alex77755​ As Word.Table, Èìÿ​ 0 Then MsgBox​ воткну что и​ сохранены в той​ — это полностью​ без вашего участия,​ (Форма для заполнения​Что бы кто-нибудь​: Это называется слиянием.​ Верхнем колонтитуле меняет​avenger24​ будут дозаполняться вручную​и таки встает​несколько доработок которые​ в коде.​ ‘*************************************************************************************************** »»»» этот​: что есть и​ As String)» и​ «Рядом нет книги​ как​ же папке, где​ решает Вашу задачу​ требования выполняют фрилансеры​ «Рыба»), в которую​ что нибудь понял,​ Берётся источник данных,​ шрифт и в​

​: это я обычно​​ уже после копирования.​ вопрос об исключении​ уже вижу нужны:​
​какие вообще условия​ блок вставляет как​ что нужно​ синим «Ýêñåëü As​ ексел», vbCritical, «Ошибка»​aVlad55​ лежит Договор.xls.​ и дает некоторые​ в соответствующем разделе.​ вносятся данные​ надо понятней объяснить,​ поля данных поставляются​ некоторых местах меняет​ и применяю​ (дата акта, какой​ копирования заголовков таблиц.​
​ эксель документ должен​ работы макроса? файлы​ объекты ‘ wdTbl.Range.Copy​aVlad55​ 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 + 1​Private 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 As​avenger24​ лист дописывать​ спасибо. если есть​ после того, как​ 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 значение поля в текст автоматически“. На самом деле всё оказалось не так сложно, как я изначально предполагал.

пример автоматическое заполнение Word из полей
Да, можно делать очень полезные связки документов, когда мы заполняем эксель, а потом у нас шаблон ворда из него берет информацию. Но объяснить какому-нибудь муниципальному сотруднику как это делать – задача практически невозможная.

Так вот, всё что нам потребуется – это Microsoft Word Документ. В нем мы создадим поля, настроим страницы и всё будет автоматически наполняться.

Инструкция как сделать автозаполнение документа Word из полей

Для примера возьму документ договора, где есть заказчик, исполнитель, дата документа и сумма договора, которые мы хотим подставлять из полей.

Пример документа с автозаполнением из полей делаю в microsoft office word 2019 (автоматизация заполнения документов word без эксель).

  1. Формат документа DOCM.
    Создаем новый документ и сохраняем его в формате docm (Документ Word с поддержкой макросов).
  2. Вкладка “Разработчик”.
    Файл – Параметры – Настроить ленту. В выпадающем списке выбираем “Основные команды”, затем выделяем ниже строчку “Разработчик”, и по середине жмем “Добавить”. Справа появляется “разработчик” с плюсиком, жмем Ок, и видим, что теперь вверху есть вкладка “Разработчик”.
    Вкладка "Разработчик". Файл - Параметры - Настроить ленту
  3. Делаем страницу с полями для ввода данных документа (договора).
    Кликаю в начале договора, жму вставка – разрыв страницы, и в итоге у меня пустая первая страница.
    На ней создаю табличку, это не обязательно, и начинаю там создавать поля. Делаем страницу с полями для ввода данных Делаем страницу с полями для ввода данных
  4. Создаём поля для ввода текста для автозаполнения документа.
    Кликаем в любое место документа, где нам нужно поле.
    Переходим во вкладку Разработчик. Вставляем не просто текстовое поле, а именно СТАРОЕ текстовое поле.
    То есть выбираем там уже иконку “Инструменты из предыдущих версий”, затем “Поле (элемент управления формы)”.
    И вставляем куда нам нужно.
    "Инструменты из предыдущих версий", затем "Поле (элемент управления формы)"
  5. Настраиваем поля Word для автозаполнения.
    Когда поле есть на странице, жмем по нему правой кнопкой и во всплывающем меню выбираем “Свойства” (поля).
    Настраиваем поля Word для автозаполнения
    Настраиваем обязательно следующие параметры поля:
    — Текст по-умолчанию: тут свой текст.
    — Закладка: на английском, уникальный идентификатор поля. Придумайте что-нибудь понятное, это нам пригодится далее.
    — Ставим галочки (чек-боксы) “разрешить изменения” и “вычислить при выходе”.
    В данном примере я создал текстовое поле, в котором будет Дата договора (по сути это любой текст). Мне главное, чтобы я в одном месте ввел данные, а в других местах документа текст из поля автоматически заполнился. И в данном случае это будет то, что я назвал датой.
  6. Настраиваем подстановку текста из поля в документ.
    ЕСТЬ ДВА СПОСОБА: ВРУЧНУЮ СОВСЕМ, И ЧЕРЕЗ СВОЙСТВА ПОЛЕЙ.
    Разберем первый способ: вставка текста из поля в документ через закладку ctrl+f9.
    Для этого выбираем место, где у нас должно подставиться значение поля. Мы помним, что в нашем случае уникальный идентификатор (название закладки) в примере: POLEDATE.
    В этом месте кликаем мышкой левой кнопкой (просто чтобы там курсор мигал), затем на клавиатуре нажимаем сочетание клавиш Ctrl+F9 (контрол плюс эф девять).
    Видим, что появились фигурные скобки с серым фоном, и мы можем внутри печатать.
    Настраиваем подстановку текста из поля в документ
    Печатаем внутри следующее: REF POLEDATE.
    Поясняю: внутри фигурных скобочек, должно быть три буквы заглавных REF, затем пробел, затем то как мы назвали закладку (идентификатор поля). В нашем случае это POLEDATE, а может быть что угодно.
    Больше ничего жать не нужно, можно убрать оттуда курсор.
    Вот как это выглядит в итоге:
    вставка текста из поля в документ через закладку ctrl+f9
    Второй способ: вставка значения поля из другого поля автоматически через закладку REF.
    Это практически тоже самое, только не нужно нажимать ничего на клавиатуре. По мне так, дольше, но вдруг вам там понятнее.
    Так же создаем поле, в этом примере возьму сумму договора. При создании поля (см. п. 5) я ввел название закладки поля (уникальный идентификатор) pole_stoimost.
    вставка значения поля из другого поля автоматически через закладку REF
    Только теперь, когда мы нажали в место документа, куда хотим подставить данные автоматически (курсор там мигает), мы вставляем поле.
    Выбираем вкладку “Вставка”, затем “Экспресс-блоки”, затем “Поле” (как на скриншоте ниже):
    "Вставка", затем "Экспресс-блоки", затем "Поле"
    Это поле нужно настроить так, чтобы в него подставлялось значение другого поля автоматически.
    При вставке поля из экспресс-блоков, или когда вы потом можете нажать правой кнопкой Свойства поля, настраиваем так.
    Слева выбираем тип поля “Ref”, и дальше выбираем название нашей закладки, т.е. идентификатор поля, откуда надо подставить текст. В нашем случае это pole_stoimost:
    Слева выбираем тип поля "Ref", и дальше выбираем название нашей закладки
    (вот кстати выше видно на скриншоте еще ошибку “Ошибка! Источник ссылки не найден.” – это происходит, когда вы ввели REF Несуществующая закладка, например. То есть не найдено поле (закладка) с тем идентификатором уникальным. И надо просто проверить свойства полей.).
    Короче, так или иначе, подытожу:
    — Создали поле через Разработчика.
    — У него в свойствах прописали уникальный идентификатор (название закладки).
    — Вставили через CTRL+F9 или экспресс блоки – поле (место) куда будет подстваляться текст из первого поля, указав такой же идентификатор.
  7. Автозаполнения документа значением из полей через F9 или печать документа.
    Ну.. тут уже все понятно должно быть – насоздавали полей сколько нужно, поставляли в места куда нужно.
    По-умолчанию, Word будет автозаполнять документ автоматически, если весь документ выделить (ctrl+a например) и нажать кнопку F9.
    Места с REF и полями преобразуются в то, что есть в оригинальном поле-закладке.
    Но есть трудность – сложно объяснить людям как это работает, что выделять и как обновлять эти поля.
    Я выбрал способ попроще – чтобы поля автоматически обновлялись при печати (печатать почти все умеют как).
    Лезем в настройки (файл – параметры), там выбираем “Экран” и отмечаем галочку “Обновлять поля перед печатью”.
    чтобы поля автоматически обновлялись при печати
    Теперь, каждый раз когда через Файл – Печать или Ctrl+P будет печататься документ – поля будут обновляться (текст автоматически подставляться), т.е. тоже самое что через выделение документа и нажатие F9.
  8. Наводим красоту: запрет редактирования, номера страниц.
    Ну и еще два момента. Во-первых, документы пронумерованы обычно. И основная проблема – что страница с полями тоже печатается, а в официальном документе её быть не должно.
    Соответственно, способа убрать страницу word из печати автоматически я не нашел. Поэтому, выкрутился по-другому.
    Через настройки колонтитула (несколько кликов по нижней части документа (или где там у вас номера страниц)), переходим в свойства, номера страниц, и там выбираем начать с “0″, с нуля короче.
    номера страниц, и там выбираем начать с "0", с нуля короче
    Таким образом, страница с полями становится как бы нулевой, и договор печатается как надо, первая страница договора остается первой.
    И второе, защита от редактирования, чтобы только вводили данные в поля.
    защита от редактирования, чтобы только вводили данные в поля
    Сделал просто – Рецензирование – Ограничить редактирование – Да, включить защиту, ну и пароль 1.
    Отключается так же, только не все видят – там внизу кнопка становится “отключить защиту”.

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

пример автоматическое заполнение Word из полей

Скачать пример автоматическое заполнение Word из полей: Автозаполнение документов Word Без Excel через текстовые поля docm (пароль на отключение защиты: 1 (просто единичка)).

P.S. Почему формат docm? На самом деле потому, что если формат doc или docx – то не работает вкладка “разработчик” где поля (ну не вставляются они). При этом – само автозаполнение прекрасно работает. Совет – делайте всё в docm, а итоговый результат, уже с защитой от редактирования – сохраните в обычный формат doc/docx и отдавайте, всё там прекрасно работает и печатается.

P.P.S. Заказать можно тут: https://vk.com/autoworddocs! обязательно оставьте отзыв!

 

Мои контакты →

© 2006 — 2023, Александр Сергеев

Понравилась статья? Поделить с друзьями:
  • Макрос excel эта строка этот столбец
  • Макрос word записывал все действия
  • Макрос word замена пробелов
  • Макрос excel шрифт текста
  • Макрос excel через запятую