Таблицы в VBA Word принадлежат коллекции Tables, которая предусмотрена для объектов Document, Selection и Range. Новая таблица создается с помощью метода Tables.Add.
Синтаксис метода Tables.Add
Expression . Add ( Range , Rows , Columns , DefaultTableBehavior , AutoFitBehavior )
Expression – выражение, возвращающее коллекцию Tables.
Параметры метода Tables.Add
- Range – диапазон, в котором будет создана таблица (обязательный параметр).
- Rows – количество строк в создаваемой таблице (обязательный параметр).
- Columns – количество столбцов в создаваемой таблице (обязательный параметр).
- DefaultTableBehavior – включает и отключает автоподбор ширины ячеек в соответствии с их содержимым (необязательный параметр).
- AutoFitBehavior – определяет правила автоподбора размера таблицы в документе Word (необязательный параметр).
Создание таблицы в документе
Создание таблицы из 3 строк и 4 столбцов в документе myDocument без содержимого и присвоение ссылки на нее переменной myTable:
Как в ворде сделать таблицу ? ворд для начинающих
With myDocument
Set myTable = . Tables . Add ( . Range ( Start : = 0 , End : = 0 ) , 3 , 4 )
With myDocument
myInt = . Range . Characters . Count — 1
Set myTable = . Tables . Add ( . Range ( Start : = myInt , End : = myInt ) , 5 , 4 )
myDocument . Tables ( индекс )
Нумерация индексов начинается с единицы.
Отображение границ таблицы
myTable . Style = «Сетка таблицы»
With myTable
. Borders . OutsideLineStyle = wdLineStyleSingle
. Borders . InsideLineStyle = wdLineStyleSingle
With myTable
. Borders ( wdBorderHorizontal ) = True
. Borders ( wdBorderVertical ) = True
. Borders ( wdBorderTop ) = True
. Borders ( wdBorderLeft ) = True
. Borders ( wdBorderRight ) = True
. Borders ( wdBorderBottom ) = True
Присвоение таблицам стилей
myTable . Style = «Таблица простая 5»
myTable . AutoFormat wdTableFormatClassic1
Выбирайте нужную константу с помощью листа подсказок свойств и методов – Auto List Members.
Обращение к ячейкам таблицы
myTable2 . Cell ( nRow , nColumn )
myDocument . Tables ( 2 ) . Cell ( nRow , nColumn )
Обращение к ячейкам таблицы myTable в документе Word с помощью свойства Cell объектов Row и Column и запись в них текста:
myTable . Rows ( 2 ) . Cells ( 2 ) . Range = _
«Содержимое ячейки во 2 строке 2 столбца»
myTable . Columns ( 3 ) . Cells ( 1 ) . Range = _
«Содержимое ячейки в 1 строке 3 столбца»
В таблице myTable должно быть как минимум 2 строки и 3 столбца.
Примеры создания таблиц Word
Sub Primer1 ( )
Dim myWord As New Word . Application , _
myDocument As Word . Document , myTable As Word . Table
Set myDocument = myWord . Documents . Add
myWord . Visible = True
With myDocument
Set myTable = . Tables . Add ( . Range ( 0 , 0 ) , 5 , 4 )
With myTable
. Borders . OutsideLineStyle = wdLineStyleSingle
. Borders . InsideLineStyle = wdLineStyleDot
Sub Primer2 ( )
On Error GoTo Instr
Dim myWord As New Word . Application , _
myDocument As Word . Document , _
myTable As Word . Table , myInt As Integer
Автозаполнение данных в MS Word
Set myDocument = myWord . Documents . Add
myWord . Visible = True
With myDocument
‘Вставляем заголовок таблицы
. Range . InsertAfter «Продажи фруктов в 2019 году» Наименование»
. Columns ( 1 ) . Cells ( 2 ) . Range = «1 квартал»
. Columns ( 1 ) . Cells ( 3 ) . Range = «2 квартал»
. Columns ( 1 ) . Cells ( 4 ) . Range = «Итого»
‘Заполняем второй столбец
. Columns ( 2 ) . Cells ( 1 ) . Range = «Бананы»
. Columns ( 2 ) . Cells ( 2 ) . Range = «550»
. Columns ( 2 ) . Cells ( 3 ) . Range = «490»
. Columns ( 2 ) . Cells ( 4 ) . AutoSum
‘Заполняем третий столбец
. Columns ( 3 ) . Cells ( 1 ) . Range = «Лимоны»
. Columns ( 3 ) . Cells ( 2 ) . Range = «280»
. Columns ( 3 ) . Cells ( 3 ) . Range = «310»
. Columns ( 3 ) . Cells ( 4 ) . AutoSum
‘Заполняем четвертый столбец
. Columns ( 4 ) . Cells ( 1 ) . Range = «Яблоки»
. Columns ( 4 ) . Cells ( 2 ) . Range = «630»
. Columns ( 4 ) . Cells ( 3 ) . Range = «620»
. Columns ( 4 ) . Cells ( 4 ) . AutoSum
‘Освобождаем переменные
Set myDocument = Nothing
Set myWord = Nothing
‘Завершаем процедуру
‘Обработка ошибок
If Err . Description <> «» Then
MsgBox «Произошла ошибка: » =SUM(LEFT)» )
Другие значения метода Formula, применяемые для суммирования значений ячеек:
- «=SUM(ABOVE)» – сумма значений над ячейкой (аналог метода AutoSum);
- «=SUM(BELOW)» – сумма значений под ячейкой;
- «=SUM(RIGHT)» – сумма значений справа от ячейки.
Дополнительная информация к этой теме: Вставка таблицы Excel в документ Word.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
12 комментариев для “VBA Excel. Создание таблиц в документе Word”
Спасибо автору сайта за подробное описание и примеры.
Вопрос по записи макроса в Word 2003.
Нужно реализовать отключение макросом автоподбора размеров таблицы по содержимому (Свойства таблицы — Таблицы — Параметры). При попытке записать макрос Свойства таблицы оказываются недоступными.
Подскажите код, который будет отключать автоподбор размеров таблицы по содержимому.
Спасибо.
ActiveDocument . Tables ( 1 ) . AllowAutoFit = False
Евгений, спасибо огромное!
Конструкция работает — в таблице, вставленной макросом из Excel в Word ширина столбцов остаётся такой же как и в Excel.
Set tbl2Range = Range ( Cells ( 35 , 8 ) , Cells ( 39 + s , 12 ) )
tbl2Range . Copy
WD . Application . Selection . Find . ClearFormatting
If WD . Application . Selection . Find . Execute ( FindText ) = True Then
WD . Application . Application . Selection . Paste
Помогите пожалуйста!
myDocument . Tables ( 1 ) . Columns ( 1 ) . Cells ( 1 ) . Range . Paste
закладка замещается значением первой ячейки вставляемой таблицы.
. Visible = True
. ActiveDocument . Tables ( 1 ) . cell ( 1 , 1 ) . Select
Sheets ( «Док» ) . Activate
Range ( Cells ( 4 , 2 ) , Cells ( i , 5 ) ) . Select
Selection . Copy
WA . Selection . PasteExcelTable _
LinkedToExcel : = False , _
WordFormatting : = False , _
RTF : = False
. ActiveDocument . Tables ( 2 ) . cell ( 1 , 1 ) . Select
во вторую нарисованную таблицу в шаблоне не попадает.
Как обозначаются явно таблицы в Worde?
. ActiveDocument . Tables ( 2 ) . cell ( 1 , 1 ) . Select
. ActiveDocument . Tables ( 2 ) . Cells ( 1 , 1 ) . Select
Если это не опечатка, тогда из-за этого не работает.
. ActiveDocument . Tables ( 3 ) . cell ( 1 , 1 ) . Select
именно такой — cell(1,1) работает.
Когда разбирался, пробовал cell(1,10) VBA сказал, что нет такой ячейки
Sub Primer ( )
Dim myWord As New Word . Application , myDoc As Word . Document
‘Открываем существующий документ Word
‘Копируем таблицу на активном листе в буфер обмена
‘Вместо ячейки Range(«A1») можно указать любую другую, расположенную внутри таблицы
Range ( «A1» ) . CurrentRegion . Copy
‘Вставляем таблицу из буфера обмена на место закладки
myDoc . Bookmarks ( «Закладка1» ) . Range . PasteExcelTable False , False , False
‘Отображаем программу Word
myWord . Visible = True
With myDocument
Set myTable = . Expression . Add ( DefaultTableBehavior )
Set myWord = Nothing
Set myDoc = Nothing
myDoc . Tables ( 2 ) . AutoFitBehavior wdAutoFitWindow
У меня это сработало. Замените 2 на порядковый номер вашей таблицы.
Замечание по вашему участку кода: объявлена переменная myDoc, а вы используете в блоке With переменную myDocument.
Здравствуйте, Евгений. Извините меня, я не написал, что этим кодом я хотел добиться. При вставке кодом из Excel в документ Word у меня таблица немного сжимается и соответственно текстовые строки делают перенос, а при выполнении в Word для таблицы автоформат по содержимому у меня встаёт всё на места. Вот и пытался приспособить код. Ваш код работает, но мою проблему не решает.
Из вашего объяснения понял, что не то делаю. Спасибо вам за ваше внимание. Буду искать решение дальше.
Источник: vremya-ne-zhdet.ru
2.1. Создание таблиц в документах ms Word
Таблица может быть вставлена в произвольное место документа. Размер таблицы может превышать размер страницы, поэтому ее часть может размещаться на одной или нескольких последующих страницах. В таком случае можно определять заголовки для таблицы таким образом, что, если таблица будет размещена на нескольких страницах, в верхней части каждой страницы заголовки будут отображаться автоматически.
С помощью Word для Windows таблицы можно создавать двумя способами.
Первый заключается в преобразовании существующего текста в таблицу. При этом текст будущих ячеек таблицы разделяется символом табуляции, запятой, двоеточием или любым другим символом, который вы укажете.
Второй способ — это создание пустой таблицы с последующим заполнением ячеек. В созданной вами таблице можно изменять число столбцов и строк, а также объединять ячейки или вставлять новые в любое место таблицы.
Для создания таблицы можно воспользоваться командой Таблица | Добавить таблицу или кнопкой Добавить таблицу на стандартной панели инструментов. При использовании команды меню можно определить ширину столбцов и формат в процессе вставки таблицы в текст.
Новым в редакторе Word является возможность нарисовать сложную таблицу от руки. Для этого достаточно выбрать в меню Таблица команду нарисовать таблицу.
Прежде чем приступить непосредственно к созданию таблицы, вы должны иметь хотя бы приблизительное представление о том, сколько столбцов и строк должна иметь таблица. На этом этапе не обязательно точно указывать параметры таблицы. После создания всегда можно добавить и/или удалить столбцы и строки по своему усмотрению.
Создание таблицы с помощью команды Таблица | Добавить таблицу.
- Установите курсор в точку, в которой должен располагаться левый верхний угол таблицы.
- Выберите команду Таблица | Добавить таблицу, в результате чего на экране появится окно диалога “Вставка таблицы”.
- Укажите требуемое число столбцов и строк. Число можно выбрать или напечатать в соответствующей строке ввода. На этом этапе достаточно задание приблизительных значений. В дальнейшем вы всегда сможете изменить число строк и столбцов в таблице.
- Если вы знаете четкое представление о ширине столбцов, укажите требуемое значение в строке ввода “Ширина столбца”. Если не знаете, какую ширину должны иметь столбцы, оставьте значение по умолчанию. В соответствии с этим значением Word создаст таблицу на всю ширину документа и установит для всех столбцов одинаковую ширину. В дальнейшем вы сможете индивидуально настроить ширину каждого из столбцов в таблице.
- Выберите кнопку Автоформат, если хотите применить к создаваемой таблице один из стандартных форматов.
- Нажмите кнопку ОК. В результате определенная вами таблица появится в вашем документе. При этом курсор будет расположен в первой ячейке.
Может оказаться, что созданная вами таблица окажется невидимой. Такая ситуация возможна в том случае, если опция Сетка выключена.
Создание таблицы с помощью команды Таблица | Нарисовать таблицу.
Выберите место создания таблицы.
- Если панель инструментов Таблицы и границы не отображена, нажмите кнопку Таблицы и границы
. После этого появится панель инструментов и указатель мыши изменится на перо.
- Если панель инструментов Таблицы и границы отображена, нажмите кнопку Нарисовать таблицу
. Указатель мыши изменится на перо.
- Чтобы определить внешние границы таблицы, переместите (проведите) указатель при нажатой кнопке мыши из одного угла таблицы в другой. Затем прорисуйте линии столбцов и строк.
- Для удаления линии нажмите кнопку Ластик
и сотрите линию.
- После создания таблицы выберите мышкой ячейку и вставляйте текст или графику.
Источник: studfile.net
Как создать таблицу в Microsoft Word
В процессе работы с документами в Microsoft Word можно подавать информацию структурировано, в виде таблиц. Причём в виде стильных и эффектных таблиц. С помощью таблиц мы можем создавать бланки, ведомости, планы, расписания, графики дежурств, календари и т.п. А при желании даже можно в Microsoft Word внедрить таблицу Microsoft Excel. Как же работает функционал Microsoft Word по работе с таблицами?
Давайте рассмотрим.
Создание таблицы в Microsoft Word
За возможность создания таблицы в Microsoft Word отвечает кнопка «Таблица» из верхнего меню «Вставка». И здесь нам из выпадающего списка предлагается 5 разных способов создания таблицы (без учёта функции преобразования текста в таблицу). Что это за способы?
Способ №1: простая и быстрая вставка таблицы. На интерактивной карте ячеек мы выбираем количество столбцов и строк. Делаем клик, и таблица вставлена.
Это самый элементарный способ. Правда, карта ячеек ограничена числом строк и столбцов, но их мы можем добавить в таблицу в любой момент позднее.
Способ №2: настраиваемая вставка таблицы. В выпадающем списке выбираем «Вставить таблицу», укажем нужное нам число строк и столбцов. Если нужно, то можно указать настройки автоподбора ширины столбцов. Нажимаем «Ок».
Способ №3: рисование таблицы. При необходимости можно воспользоваться инструментом рисования таблицы от руки. И нарисовать её размер, столбцы и строки. В выпадающем списке выбираем «Нарисовать таблицу» и рисуем.
Способ №4: таблица Microsoft Excel. При желании в MS Word-документ можно интегрировать таблицу Excel и применить к ней все возможности для работы с данными, соответственно, MS Excel. В выпадающем списке выбираем «Таблица Excel».
И, удерживая таблицу за правый нижний край, оттянем для придания нужного размера. К особенностям таблиц Excel мы ещё вернёмся.
Способ №5: экспресс-таблицы. Таблицу можно вставить не просто пустую, а из небольшой подборки шаблонов, имеющихся в Word – так называемых экспресс-таблиц. В выпадающем списке выбираем «Экспресс-таблицы». И далее кликаем на приглянувшийся шаблон.
Редактирование таблиц в Microsoft Word
Возможностей по редактированию таблиц текстовый редактор Word предлагает множество. Непосредственно в самой таблице можно, оттягивая грани столбцов и строк, устанавливать их размеры.
Нажав всплывающие при наведении курсора к граням столбцов и строк кнопки-плюсики, можем добавлять, соответственно, новые столбцы и строки.
В контекстном меню на таблице доступны функции как то: вставка и удаление столбцов и строк, выравнивание ширины столбцов, разделение ячеек, выбор из стилей оформления границ, направление текста в ячейках, доступ к различным возможностям в свойствах таблицы.
Больше возможностей по редактированию таблиц мы получим в двух разделах меню «Конструктор» и «Макет», которые на верхней ленте меню Microsoft Word появляются только при активной таблице, т.е. при её выделении целиком или нахождении курсора в ячейках. Меню «Конструктор» примечательно разными возможностями оформления таблицы. Здесь можно выбрать для неё и фоновую заливку и оформление, раскраску границ и обрамление.
А можем применить готовые и эффектные стили оформления. Готовых стилей представлен довольно неплохой ассортимент, который можно фильтровать по разным критериям оформления – чередующиеся строки или столбцы, наличие оформления заголовка, строки итогов, первого столбца.
В разделе меню «Макет» собраны организационные функции таблицы: вставка и удаление строк и столбцов, разделение и объединение ячеек, инструменты рисования граней таблицы и ластика для стирания граней, задание вручную и автоматический подбор ширины и высоты ячеек, направление текста в ячейках. Есть функции сортировки данных таблицы и вставки формул.
Особо отметим функцию повторения строк заголовков. Она важна для длинных таблиц на две или более страниц. Дабы на второй и следующих страницах у нас не отображались только голые данные, необходимо, чтобы уже каждая страница документа содержала первую строку с заголовками, т.е. с названиями ячеек. Но для этого не нужно на начало каждой страницы вручную переносить названия ячеек.
Просто выделяем всю таблицу и в разделе меню «Макет» кликаем опцию «Повторить строки заголовков». Названия ячеек автоматически отобразятся в начале каждой страницы.
Как удалить таблицу в Microsoft Word
Если таблица не нужна, для удаления нужно её выделить с захватом интервала перед таблицей и нажать клавишу Del.
Либо выделяем только саму таблицу и в контекстном меню на выделении жмём «Удалить таблицу».
Таблица Excel в Microsoft Word
И, наконец, рассмотрим интеграцию таблиц из Excel в текстовый редактор Word. Эту крайне примечательную возможность можно использовать, если вам нужно представить в документе данные уже существующих таблиц Excel, либо если вы хотите применить к данным таблицы все возможности Excel. Функции Microsoft Word конкретно по работе с данными таблицы представлены их сортировкой и возможностью применения формул для вычислений и логических сравнений. Однако же на фоне формул Word возможности Excel по выполнению операций с данными таблицы (в частности, арифметические операции) реализованы здесь гораздо проще. Да и сами по себе возможности Microsoft Excel намного шире.
Интегрированная в Microsoft Word таблица Excel выглядит в стиле Excel.
При двойном клике на ней окно Microsoft Word превращается в окошко Microsoft Excel со всеми возможностями табличного редактора.
По окончании редактирования таблицы для выхода из режима интеграции Excel нужно кликнуть на любом месте документа за гранями таблицы. И мы вновь с вами окажемся в обычном режиме Microsoft Word.
Источник: shvetscomp.ru