Перенос данных из word в excel макросом

Обновлено: 06.07.2024

АВТОМАТИЗАЦИЯ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ, ЧАСТЬ 4: ПЕРЕНОС ДАННЫХ В WORD

В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфейс приложения, организовать проверку вводимых данных и получить число прописью без использования кода VBA. В этой, заключительной статье речь пойдет о волшебстве - переносе всех необходимых значений из рабочей книги Excel в документ Word. Давайте я покажу Вам то, что должно получиться в итоге:

Описание механизма

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

Создание шаблона документа Word

Тут все предельно просто - создаем обычный документ, набираем и форматируем текст, в общем, добиваемся того, чтобы получить необходимую форму. В тех местах, куда необходимо будет подставить значения из Excel нужно создать закладки. Это делается следующим образом:

  • Для удобства поддержки напечатать в нужном месте название закладки. Я еще и заключил названия в угловые скобки, так что получилось, например, вот так: <DocumentDate> для закладки, содержащей дату документа.
  • Выделить все название закладки (в моем случае вместе с угловыми скобками), перейти на вкладку "Вставка" и нажать кнопку "Закладка":

Расположение кнопки "Вставить закладку"

Таким образом нужно будет создать все закладки, то есть отметить все места, куда будут вставлены данные из Excel. Получившийся файл нужно сохранить как "Шаблон MS Word" с помощью пункта меню "Файл" -> "Сохранить как. ".

Подготовка данных Excel

Я решил для удобства поместить все данные, которые необходимо перенести в документ Word, на отдельном рабочем листе с названием Bookmarks - закладки. На этом листе два столбца: в первом содержатся названия закладок (в точности так, как они названы в документе Word), а во втором - соответствующие значения, подлежащие переносу.

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

На этом этапе важно правильно указать все названия закладок - от этого зависит правильность переноса данных.

Процедура переноса

А вот это - самое интересное. Существует два варианта выполнения кода переноса данных:

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

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

  • Создать шаблон документа Word с поддержкой макросов. В этом шаблоне будет содержаться выполняемый код на VBA.

Почему нужно создать именно шаблон? Таким образом можно защитить программный код от неумышленного изменения. Дело в том, что каждый раз при открытии шаблона создается новый файл Word, сохранить который поверх существующего шаблона просто так не получится. Сам шаблон при этом остается неизменным.

Текст процедуры я приводить в статье не буду - его можно легко посмотреть в файле FillDocument.dotm , расположенном в папке Template в архиве с примером.

Как же воспользоваться всем этим для решения именно Вашей задачи?

Понимаю, что на словах это все выглядит очень просто, но что же получается на деле? Я предлагаю Вам просто воспользоваться уже готовым вариантом. Скачайте архив с примером, в рабочей книге Excel нажмите комбинацию клавиш Alt+F11, чтобы открыть редактор Visual Basic и прочитайте все мои комментарии к программе. Для того, чтобы изменить программу под свои нужды Вам понадобится всего лишь изменить значение нескольких констант, они вынесены в самое начало программы. Весь текст программы Вы можете свободно скопировать в свой проект.

Структура архива

В архиве, приложенном к этой статье, содержится несколько файлов.

Основной файл - рабочая книга Excel с названием "Создание подтверждений". В этой рабочей книге 4 рабочих листа, из которых отображаются только два: "Input" - лист ввода данных и "Database" - архив всех введенных документов.

В папке Templates находятся шаблоны документов Word. Один из них - шаблон, содержащий программу заполнения закладок, а второй - форма для заполнения. Вы можете использовать без изменений шаблон с программой, но форму для заполнения, естественно, придется переделать в соответствии с Вашими нуждами.

Как переработать пример "под себя"?

Я рекомендую придерживаться следующей последовательности действий:

  1. Подготовить шаблон документа Word, который необходимо заполнить. Создать в нем все необходимые закладки и сохранить как "шаблон MS Word".
  2. Скопировать в папку с подготовленным шаблоном файл FillDocument.dotm из архива, приложенного к этой статье. Этот файл отвечает за заполнение закладок шаблона, и в нем ничего менять не нужно.
  3. Подготовить рабочую книгу Excel для ввода данных. Вам решать, будет ли она обладать каким-либо "продвинутым" пользовательским интерфейсом и осуществлять разные хитрые расчеты. Главное, чтобы в ней содержался рабочий лист с таблицей соответствия имени закладки в шаблоне Word и значения, которое нужно подставить.
  4. Вставить в подготовленную рабочую книгу код программы на VBA из файла-примера. Заменить все константы в соответствии с Вашим проектом.
  5. Протестировать правильность работы.
  6. Активно пользоваться!

Вместо заключения

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

Другие статьи из цикла:

По этой ссылке Вы перейдете на сайт Microsoft SkyDrive, где Вам будет предложено скачать файл Confirm.rar - это и есть архив приложения.

0 коммент.:

Реклама

Архив блога

Ярлыки

Recent

Popular Posts

В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфе.

Хотите свободно говорить на английском? Есть вещи, которые нужно выучить назубок! Основные неправильные глаголы английского языка: .

word to excel

В Excel удобно систематизировать и обрабатывать текстовые и численные данные. Но что делать, если изначально документ создан в Word? Достаточно конвертировать его в другой формат. Способов конвертации масса: встроенными средствами редакторов, бесплатными онлайн-сервисами или специальными приложениями.

Преобразование документа встроенными средствами Word и Excel

Перенос текста, таблиц, списков, диаграмм и рисунков с сохранением форматирования

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

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

Отображение выполняется двумя способами:

символы для удаления перед переносом

После удаления элементов:

  1. Выделите в документе данные, которые собираетесь переносить.
  2. Скопируйте выделенный фрагмент через контекстное меню: щелкните по документу правой клавишей мышки и выберите команду «Копировать». Или просто нажмите Ctrl+C.

По умолчанию данные вставятся в левую верхнюю ячейку новой книги Excel.

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

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

изменение размера текста в word

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

Для вставки рисунков и диаграмм выделите в таблице отдельные ячейки, иначе можно нарушить структуру документа.

Импорт данных в Excel. Корректный перенос таблиц

Для выполнения корректного импорта данных необходимо правильно сохранить Word-документ:

  1. Щелкните по таблице в документе Word.
  2. В «Макете» для редактирования вставленной таблицы выберите команду «Преобразовать в текст».
  3. Поставьте галочку возле строки «Знак табуляции».

преобразовать в текст

После этого сохраните документ. Вместо стандартного формата .docx выберите тип файла «Обычный текст».

сохранить как обычный текст

Дальнейшая работа по переносу данных выполняется в Excel.

таблица перенесенная из word

Конвертация Ворд в Эксель онлайн

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

Convertio

Чтобы загрузить вордовский документ в сервис Convertio, нажмите на пиктограмму папки и выберите нужный файл на компьютере или в онлайн-хранилище. Затем укажите тип готового Эксель-документа (xls).

загрузка документа word в convertio

скачивание готового эксель файла в convertio

Pdfmall

Также здесь доступен выбор режима распознавания текста. Чтобы конвертировать Ворд в Эксель, поставьте галочку напротив «Использовать только текст из DOCX (Word)».

Конвертация при помощи приложений

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

Total Doc Converter

Приложение Total Doc Converter предназначено для конвертации фалов больших размеров. Одно из его достоинств – простое и понятное меню на русском языке.

Чтобы преобразовать Word-документ в Excel с помощью Total Doc Converter:

  1. Выберите в проводнике файл Ворд.
  2. Отметьте галочкой его тип.
  3. Укажите тип конечного файла.

загрузка файла ворд в Total Doc Converter

После этого откроется дополнительное окно, где вам следует выбрать папку для сохранения Excel-файла.

выбор папки для результирующего файла

После нажатия на кнопку «Старт» начинается процесс конвертации.

Abex Word to Excel Converter

В приложении Abex Word to Excel Converter меню на английском языке, но его интерфейс интуитивно понятен. Этот компактный конвертер позволяет преобразовывать несколько документов одновременно. Однако его бесплатная версия предназначена только для работы с файлами формата .doc (поддерживается версиями Word 2003/2007/2010).

Внимание! Для корректной работы приложение автоматически закрывает все открытые текстовые документы.

Процесс конвертации занимает от нескольких секунд до нескольких минут в зависимости от размера исходного файла.

АВТОМАТИЗАЦИЯ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ, ЧАСТЬ 4: ПЕРЕНОС ДАННЫХ В WORD

В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфейс приложения, организовать проверку вводимых данных и получить число прописью без использования кода VBA. В этой, заключительной статье речь пойдет о волшебстве - переносе всех необходимых значений из рабочей книги Excel в документ Word. Давайте я покажу Вам то, что должно получиться в итоге:

Описание механизма

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

Создание шаблона документа Word

Тут все предельно просто - создаем обычный документ, набираем и форматируем текст, в общем, добиваемся того, чтобы получить необходимую форму. В тех местах, куда необходимо будет подставить значения из Excel нужно создать закладки. Это делается следующим образом:

  • Для удобства поддержки напечатать в нужном месте название закладки. Я еще и заключил названия в угловые скобки, так что получилось, например, вот так: <DocumentDate> для закладки, содержащей дату документа.
  • Выделить все название закладки (в моем случае вместе с угловыми скобками), перейти на вкладку "Вставка" и нажать кнопку "Закладка":

Расположение кнопки "Вставить закладку"

Таким образом нужно будет создать все закладки, то есть отметить все места, куда будут вставлены данные из Excel. Получившийся файл нужно сохранить как "Шаблон MS Word" с помощью пункта меню "Файл" -> "Сохранить как. ".

Подготовка данных Excel

Я решил для удобства поместить все данные, которые необходимо перенести в документ Word, на отдельном рабочем листе с названием Bookmarks - закладки. На этом листе два столбца: в первом содержатся названия закладок (в точности так, как они названы в документе Word), а во втором - соответствующие значения, подлежащие переносу.

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

На этом этапе важно правильно указать все названия закладок - от этого зависит правильность переноса данных.

Процедура переноса

А вот это - самое интересное. Существует два варианта выполнения кода переноса данных:

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

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

  • Создать шаблон документа Word с поддержкой макросов. В этом шаблоне будет содержаться выполняемый код на VBA.

Почему нужно создать именно шаблон? Таким образом можно защитить программный код от неумышленного изменения. Дело в том, что каждый раз при открытии шаблона создается новый файл Word, сохранить который поверх существующего шаблона просто так не получится. Сам шаблон при этом остается неизменным.

Текст процедуры я приводить в статье не буду - его можно легко посмотреть в файле FillDocument.dotm , расположенном в папке Template в архиве с примером.

Как же воспользоваться всем этим для решения именно Вашей задачи?

Понимаю, что на словах это все выглядит очень просто, но что же получается на деле? Я предлагаю Вам просто воспользоваться уже готовым вариантом. Скачайте архив с примером, в рабочей книге Excel нажмите комбинацию клавиш Alt+F11, чтобы открыть редактор Visual Basic и прочитайте все мои комментарии к программе. Для того, чтобы изменить программу под свои нужды Вам понадобится всего лишь изменить значение нескольких констант, они вынесены в самое начало программы. Весь текст программы Вы можете свободно скопировать в свой проект.

Структура архива

В архиве, приложенном к этой статье, содержится несколько файлов.

Основной файл - рабочая книга Excel с названием "Создание подтверждений". В этой рабочей книге 4 рабочих листа, из которых отображаются только два: "Input" - лист ввода данных и "Database" - архив всех введенных документов.

В папке Templates находятся шаблоны документов Word. Один из них - шаблон, содержащий программу заполнения закладок, а второй - форма для заполнения. Вы можете использовать без изменений шаблон с программой, но форму для заполнения, естественно, придется переделать в соответствии с Вашими нуждами.

Как переработать пример "под себя"?

Я рекомендую придерживаться следующей последовательности действий:

  1. Подготовить шаблон документа Word, который необходимо заполнить. Создать в нем все необходимые закладки и сохранить как "шаблон MS Word".
  2. Скопировать в папку с подготовленным шаблоном файл FillDocument.dotm из архива, приложенного к этой статье. Этот файл отвечает за заполнение закладок шаблона, и в нем ничего менять не нужно.
  3. Подготовить рабочую книгу Excel для ввода данных. Вам решать, будет ли она обладать каким-либо "продвинутым" пользовательским интерфейсом и осуществлять разные хитрые расчеты. Главное, чтобы в ней содержался рабочий лист с таблицей соответствия имени закладки в шаблоне Word и значения, которое нужно подставить.
  4. Вставить в подготовленную рабочую книгу код программы на VBA из файла-примера. Заменить все константы в соответствии с Вашим проектом.
  5. Протестировать правильность работы.
  6. Активно пользоваться!

Вместо заключения

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

Другие статьи из цикла:

По этой ссылке Вы перейдете на сайт Microsoft SkyDrive, где Вам будет предложено скачать файл Confirm.rar - это и есть архив приложения.

0 коммент.:

Реклама

Архив блога

Ярлыки

Recent

Popular Posts

В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфе.

Хотите свободно говорить на английском? Есть вещи, которые нужно выучить назубок! Основные неправильные глаголы английского языка: .

Пакет прикладных программ Microsoft Office сам по себе предоставляет возможность легко и быстро переносить информацию между файлами офисных приложений. Так, сведения из Word без проблем перемещаются в Excel посредством обычного копирования.

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

Вариант 1: Простое копирование

Для начала рассмотрим поверхностный метод конвертации Ворд в Эксель. Осуществляется он при помощи копирования данных из файла DOC, DOCX и вставки в файл XLS или XLSX.

    Откройте ваш текстовый документ и выделите в нём сведения, которые хотите перенести в Эксель. Скопируйте их при помощи кнопки «Копировать», которую можно найти либо в контекстном меню, либо на панели инструментов на вкладке «Главная».

Вариант 2: Глубокое копирование

Иногда при преобразовании файлов Word возникает необходимость точной настройки больших объёмов данных. Для этого корпорация Microsoft предусмотрела инструмент конвертации обычного текстового документа в Эксель. Данная функция встроена непосредственно в саму программу и поддерживает только формат TXT.

    Для работы с внутренним конвертером Microsoft вам понадобится детально просмотреть документ на предмет лишних или, наоборот, недостающих символов. Используйте кнопку «Непечатаемые знаки», которая находится на вкладке «Главная». Так можно отобразить все невидимые знаки по типу пробела или табуляции. Поскольку в TXT не реализовано форматирование таблиц, их нужно будет создать вручную.

Способ 2: Сторонние конвертеры

Если нужно перевести множество текстовых файлов в короткий срок, на помощь придёт внешний софт. Благодаря таким решениям вам не придётся подолгу заниматься рутинным копированием информации из документов. Нужно будет лишь загрузить ваши DOC- или DOCX-файлы, а сервис или утилита преобразует их.

Вариант 1: Aspose

Интернет-ресурс Aspose предоставляет бесплатные инструменты конвертации различных форматов текстовых документов. Поэтому перевести Ворд в Эксель получится в режиме онлайн.

    Перейдите на сайт и нажмите кнопку «Выберите Word файлы».

Вариант 2: Abex Word to Excel Converter

Когда возникает необходимость превращения текстовых документов в таблицы без выхода в сеть, на помощь может прийти Abex Word to Excel Converter. Приложение является условно-бесплатным, поэтому некоторые его функции доступны только после покупки.

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

Читайте также: