Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование в ворд

Практические примеры программирования для MS Word

12.1. Групповая обработка файлов

12.1.1. Условие

Предположим, у вас есть несколько сотен файлов в формате .docx и . docm . Например, с ними вы работали дома. Очевидно, что дома у вас установлен Office 2007. И вот, приходит время перенести эти материалы на рабочий компьютер. Вы обнаруживаете, что MS Office на рабочем месте так и не обновили, а на вопросы об обновлении отвечают неопределенно. К тому же, некоторые из ваших документов предназначаются для других пользователей с устаревшими версиями Office — поэтому локальная самостоятельная установка конвертера на вашем ПК проблему не решает. А раз так — у вас есть два пути. Первый — заниматься конверсией файлов в формат .doc вручную, и второй — поручить это дело Microsoft Word.

12.1.2. Решение

Добавим в Microsoft Word кнопку, обработчик нажатия которой содержит следующий код (листинг 12.1)

Как видите, алгоритм работы программы выглядит так:

  • Найти файл
  • Открыть его
  • Сохранить в новом формате
  • Закрыть

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

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

12.2. Копирование материалов нескольких документов в один

12.2.1. Условие

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

12.2.2. Решение

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

Здесь мы создаем новый документ, в который копируем содержимое остальных открытых документов. Цикл обхода всех объектов коллекции Documents , то есть открытых документов, позволяет получить доступ к каждому открытому документу. Однако, здесь не обойтись без проверки — мы должны обработать все открытые документы кроме того, в который копируем данные. Для этого прежде чем начать обработку, сравниваем имя целевого и текущего документа.

12.3. Разбиение одного документа на несколько

12.3.1. Условие

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

Разобъем активный документ на части, по 10 абзацев каждая, и сохраним каждую из частей в отдельном документе с именем такого вида:

12.3.2. Решение

Напишем макрос (листинг 12.3.), который имеет смысл хранить в глобальном шаблоне. Этот макрос будет работать с активным документом.

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

10. Программирование в Word

Создание приложений VBA в Word, типичные ситуации

Word — старейшее и самое популярное приложение, входящее в состав Microsoft Office. В большинстве организаций пользователи готовят документы именно в Word.

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

Автору приходилось создавать приложения с отчетами, разработанными в самых разных программных продуктах — Microsoft Access, Crystal Reports, Microsoft Reporting Services и т.п. Если ваше приложение генерирует отчеты к базам данных в Microsoft Word, то, скорее всего, такие отчеты будут не самыми быстрыми с точки зрения их формирования и не самыми простыми с точки зрения программирования. Зато совершенно точно они будут самыми дружелюбными по отношению к конечному пользователю. Почему?

Очень часто на предприятии возникает необходимость исправить в форме отчета всего пару строк — например, вместо «Директор» поставить «И.О. Директора». Если отчет создан в Crystal Reports или Microsoft Reporting Services, придется срочно обращаться к разработчику. А через какое-то время И.О. утвердят в должности директора, и разработчику придется править отчет снова.

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

У изготовления отчетов в Word есть и другие преимущества. Как правило, при изготовлении отчетов в Word значения из базы данных подставляются в шаблон отчета, который хранится в базе данных или файловой системе (в файле *.dot). Если формат отчета сложный, с большим количеством специфического оформления (пример — объявление на взнос наличными), то намного проще подготовить его шаблон в Word, чем, к примеру, в Crystal Reports или Reporting Services.

Читать еще:  Программирование в visual studio

Еще одно программное применение Word — работа с разными форматами документов. Word умеет работать с документами самых разных форматов. Эти его возможности вполне можно применить для массовой обработки документов.

Случай из практики: в каталоге на диске у нас собралось несколько сотен «разнокалиберных» документов разных пользователей. Часть из них создана в Word разных версий, часть — просто текстовые файлы, некоторые документы в — форматах HTML, XML или EML (сообщения электронной почты). На предприятии внедрена система документооборота на основе SharePoint Portal Server и нам необходимо привести все эти документы к единому формату (Word 2003) и загрузить их на SharePoint Portal Server. Конечно же, без автоматизации в такой ситуации возиться придется очень долго.

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

Программирование на VBA в Word

Форматирование документа

Наиболее важной особенностью работы на VBA в Word является вставка текста в документ при работе с приложениями. Для этого служат объекты Range и Selection, которые являются главными для практически любых операций, которые можно выполнять с помощью Word VBA. Некоторые из этих действий можно применять к документам в целом, но в общем случае вам необходим диапазон или выделенная область, прежде чем вносить изменения. Мы, однако, рассмотрим действия с документом при его создании.

Открытый документ Word уже содержит объекты Range, соответствующие многим его элементам. Каждый абзац, таблица, ячейка таблицы, комментарий и т. д. определяют диапазоны. Например, для того чтобы вставить некоторый текст в уже существующий документ, необходимо прописать код:

Причем данная строка будет расположена в конце существующего параграфа. С другой стороны, используя объект Selection, можно также вставить некоторый текст в документ, используя метод Add и присвоение свойства Text объекту Selection:

If Documents.Count = 0 Then Documents.Add
Selection.Text = «Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, « + TextBox1.Text +», и отвечает запросам всех программистов!»

В результате выполнения данного программного кода в документе Word будет выведена строка: “Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, Светлана, и отвечает запросам всех программистов!”.

Описание процедур

Private Sub CommandButton1_Click()
If Documents.Count = 0 Then Documents.Add
Selection.Text = «При прохождении тока напряжением в » + TextBox1.Text + «вольт попроводнику длиной » + TextBox4.Text + » метров, сечением » + TextBox3.Text + «кв. мм и удельным сопротивлением » + TextBox5.Text + » Ом*мм^2/м за » + TextBox2.Text + » секунд выделится » + TextBox6.Text + « джоулей теплоты»
Selection.Collapse direction:=wdCollapseEnd
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub scet()
If IsNumeric(TextBox1.Text) = True And
IsNumeric(TextBox2.Text) = True And
IsNumeric(TextBox3.Text) = True And
IsNumeric(TextBox4.Text) = True And
IsNumeric(TextBox5.Text) = True And Not Val(TextBox4.Text) = 0 And Not Val(TextBox5.Text) = 0 Then rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) * Val(TextBox3.Text)) / (Val(TextBox4.Text) * Val(TextBox5.Text))
TextBox6.Text = Str$(rez)
CommandButton1.Enabled = True
Else
TextBox6.Text = «»
CommandButton1.Enabled = False
End If
End Sub

При работе с текстом на рабочем листе Word необходимо знать следующие коды:

определение цвета
Selection.Font.Color =
wdColorRed – красный
wdColorDarkRed – бордовый
wdColorDarkTeal – бирюзовый
wdColorBlue – синий
wdColorGreen – зеленый
wdColorBlack – черный
wdColorOrange – оранжевый

определение жирности
Selection.Font.Bold =
wdToggle – жирность

определение начертания
Selection.Font.Italic=
wdToggle – курсив

определение выравнивания
Selection.ParagraphFormat.Alignment=
wdAlignParagraphRight – выравнивание по правому краю
wdAlignParagraphCenter – выравнивание по центру
wdAlignParagraphJustify – выравнивание по левому краю

вставка в текст конкретного предложения
Selection.TypeText Text:=»Пример работы с текстом»
вставка новой пустой строки
Selection.TypeParagraph
установка размера букв
Selection.Font.Size = 14

Одним из элементов оформления диалоговых окон является элемент управления Image (рисунок). Его основные свойства:

Autosize – изменяет размер рисунка на форме (автоматически или нет);

Picture – отображает графический файл, выводимый на форму;

pictureSizeMode – устанавливает масштабирование рисунка (не весь рисунок, вся поверхность объекта, целиком внутри объекта);

PictureAligment – устанавливает расположение рисунка внутри объекта (слева, справа, вверху, внизу);
pictureTilling – покрывает объект мозаикой из рисунка.

Данные свойства либо устанавливаются в окне свойств объекта, либо прописываются в листинге.

Примечание. При работе данного приложения все значения полей ввода должны быть числовыми. В VBA есть специальная функция для проверки того, является или нет введенная строка записью числа – IsNumeric. Для проверки отличия от нуля значений в последних двух полях ввода используется функция Val, которая переводит строковое выражение в числовое, если это строковое выражение содержит в своем начале цифры (или все состоит из них).

Функция Str делает преобразование, обратное тому, что производит Val, – конвертирует числовое значение выражения в строковое, что позволяет этому значению в дальнейшем обрабатываться как строке.

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

Создание кнопки или панели в Word

Назначить форме кнопку или пункт меню для непосредственного вызова приложения из Word нельзя – это можно сделать только для модулей. Поэтому нужно применить следующий способ. Создайте макрос (Меню + Insert + Module) в открытом проекте:

Переименуйте этот макрос по своему усмотрению, например Teplo. И выполните следующие действия:

1. Щелкните правой кнопкой мыши в любом месте панели инструментов.

2. В этом меню выберите команду Настройка (или Сервис + Настройка).

3. В диалоговом окне Настройка щелкните на ярлыке вкладки Команды.

4. Прокрутите список Категории вниз и найдите пункт Макросы. Выберите этот пункт. В списке «Сохранить в» выберите имя вашего документа, в котором создан макрос.

Читать еще:  Доступность и безопасность iphone 7

5. В правом окне найдите необходимый макрос (либо VBA-программу).

6. Перетащите имя этого макроса или программы на панель инструментов.

7. Создайте соответствующую надпись кнопки и, если нужно, рисунок (при помощи правой кнопки мыши).

8. Закройте диалоговое окно Настройка, чтобы завершить работу.

9. В результате будет создана кнопка запуска приложения.

Что такое макрос в ворде и как им пользоваться?

Приветствую на Fast-Wolker.ru!! В сегодняшнем выпуске продолжим знакомство с созданием макросов уже в приложении Microsoft Office Word. Все знакомы с ним; многим приходится набирать документы в этой программе. Документы чаще всего имеют одну и ту же структуру — мы берем шаблон правим его так как нам надо в одних и тех же местах — меняем даты, имена, форматируем текст.

То есть мы каждый раз делаем одни и те же операции с текстом, и чтобы их не делать каждый раз — можно заставить компьютер совершать их автоматически. Для этого в МS Word можно применять макрокоманды (или макросы) которые вы самостоятельно записываете в виде программы на языке VBA, который встроен в Word.

Что такое включенные макросы в Ворд?

А сейчас разберемся подробно, что за «макросы», как их включать. Начнем изучение на примере Office Word 2007, так как для многих он по прежнему остается самым привычным пакетом. Включать макросы нужно через меню «Файл» -«Параметры Word».

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

Включаем первую настройку на ленте. Она сделает видимой вкладку «Разработчик» и позволит работать с макрокомандами и запускать редактор VBA:

Следующая настройка отвечает за безопасность. Здесь же, переходим в «Центр управления безопасностью»..

…»Парамеры центра» отвечает за запуск наших будущих программ. Вы можете настроить так как нужно вам. Настройка «Доверять доступ к объектной модели VBA» позволит пользоваться уже готовыми проектами VBA, например скачанными из Интернет.

Сторонние макрокоманды и проекты VBA перед запуском всегда проверяйте на вирусы!

Стабильный MS Office 2007 морально устарел и поддержка его прекращена. Нужно уметь включать режим разработчика и в поздних версиях. Они более функциональны и для серьезной работы лучше использовать их. В Word 2016 включаем вкладку «Разработчик». Для этого так же в меню «Файл» переходим в «Параметры» и затем «Настройки Ленты»:

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

Что такое макросы в Ворде и как с ними работать?

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

Но Вы получаете возможность изучать язык, если вас это дело увлечет. Создание макросов — это введение в программирование. VBA позволяет создавать для себя мощные инструменты при работе с текстовыми и табличными документами для решения многих задач в привычном виде . Тем, кто после прочтения статьи заинтересуется и захочет начать изучать язык VBA самостоятельно в помощь книга.

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

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

Но чаще всего мы используем макросы на работе при составлении документов. Нужно форматировать текст, менять его размер, менять даты, имена на другие. Это ответственно и занимает время. И здесь наши знания могут очень пригодится. Для начала покажу демонстрационный пример — как работает макрос. У нас есть шаблон договора, который нужно подготовить для заполнения. Задача: открыть документ, убрать ненужные нам элементы из текста автоматически:

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

Указываем имя нашего макроса (без пробелов), доступ делаю из шаблона Normal.doth. Такой выбор позволит запускать выполнение нашей макрокоманды из любого документа Word. Назначать макрос можно кнопке на панели инструментов или вызвать нажатием сочетания определенный клавиш, но мы этого делать пока не будем. Просто нажмем на «OK» и начнется запись наших действий. Предлагаю посмотреть на видео, что получилось, это будет нагляднее.

Мы сделали самую простую операцию — замену текста во всем документе. Но, поизучав язык можно пойти и далее — отформатировать текст, сделать форму, в которой указываются все необходимые данные договора (даты, номер, ФИО директора, должности, наименование организации, реквизиты и т .д.). При выполнении макроса все эти данные заполнялись бы автоматически после указания в форме в нужных местах. По опыту знаю ошибок будет меньше при таком заполнении и времени уходит меньше.

Читать еще:  Что такое прикладное программирование

Что такое макрос в ворде 2007? Формула из Excel таблицы

Многие интересуются — как вставить формулы Excel в таблицу Word? Excel хорош при вычислениях но не удобен для работы с текстом, а таблицы Word не так привычны после работы с Excel. Туда нельзя вставить формулы как в Excel, но можно вставлять таблицу Excel путем копирования или создания таблицы прямо в документе Word. Для этого переходим в меню «Вставка»:

Далее, «рисуем» таблицу так, как мы делаем это в Excel:

Создавать Excel таблицу в Word с помощью макроса вышеописанным способом не получится — нужны дополнительные усилия. А что касается обычной Word таблицы — можно записывать макросы в случае создания сложных макетов таблиц.

Можно попробовать записать создание таблицы в макрос любым из этих способов и посмотреть что получится. Лично я таблицы копирую прямо из Excel, а макросы записываю в Office 2016 — там мне удобнее работать со стилями и оформлением. Удачи в освоении программы!

Программирование в ворд

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

Каркас документа Word

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

увеличить изображение: увеличить изображение,
Рис. 1.1. Каркас по умолчанию документа Word

Как можно видеть, в каркас входят кроме библиотеки Word еще три библиотеки и два проекта:

  • Word — библиотека, задающая основу документов Word. Здесь хранится класс, задающий корневой объект Word.Application , и все классы объектов, вложенных в корневой объект.
  • Office — библиотека объектов, общих для всех приложений Office 2000. Здесь находятся классы, определяющие инструментальные панели — CommandBar и классы других общих объектов. Здесь же находятся классы, задающие Помощника (объект Assistant и все классы, связанные с ним). В частности, появился новый объект, которого не было в предыдущей версии — Мастер Ответов (Answer Wizard).
  • Stdole — библиотека классов, позволяющая работать с OLE — объектами и реализовать Автоматизацию.
  • VBA — библиотека классов, связанных с языком VBA. Здесь хранятся все стандартные функции и константы, встроенные в язык, классы Collection и ErrObject .
  • Project — проект по умолчанию, связанный с документом. Классы, которые могут программистом создаваться в этом проекте, методы, свойства, — все это доступно для просмотра, так же, как и объекты классов, встроенных в стандартные библиотеки.
  • Normal — проект, доступный для всех документов Word. Здесь могут храниться функции и классы, используемые всеми документами.

До сих пор речь шла о каркасе, создаваемом по умолчанию. Но при работе с документом этот каркас можно существенно изменить, добавив в документ новые классы, а значит и новые свойства. Для этого достаточно включить в состав каркаса другие библиотеки классов из той совокупности, что входит в Office 2000. Заметим, набор дополнительно поставляемых библиотек в Office 2000 существенно вырос по сравнению с предыдущей версией.

А теперь о том, как это делается. Прежде всего, заметим, что расширение каркаса делается обычно руками, но можно делать это и программно. Для того чтобы вручную добавить в документ новые возможности, необходимо вначале войти в режим редактора программного проекта, для чего достаточно в меню Tools | Macro выбрать пункт Visual Basic Editor или нажать комбинацию клавиш Alt + F11. Затем уже в Редакторе из меню Tools следует выбрать пункт References и в появившемся списке возможных библиотек включить те, которые отвечают Вашим потребностям. На рис. 1.2 показан процесс подключения к документу Word новых библиотек.


Рис. 1.2. Расширение возможностей каркаса документа

В данном примере я подключил библиотеки объектов трех приложений — Outlook, Access и Excel, библиотеку с WEB — классами и загрузчик объявлений, необходимых для вызова API — функций. В результате каркас документа существенно обновился, и документ теперь обладает потенциально большими возможностями, чем документ, создаваемый по умолчанию. В этом документе можно организовать совместную работу четырех приложений Office 2000, работать с WEB — компонентами. Конечно, каркас обеспечивает только потенциальную возможность, чтобы все заработало, нужно многое сделать, наполняя каркас плотью. Например, необходимо описать и создать соответствующие объекты Application для каждого из совместно работающих приложений, прежде чем начать с ними работать.

На рис. 1.2 можно увидеть лишь небольшую часть всей совокупности библиотек (их несколько десятков), доступных в Office 2000. Завершая разговор о каркасе документа, нам остается сделать два важных замечания. Во-первых, заметим, что включение ссылок на новые библиотеки и соответствующее расширение каркаса документа немедленно отражается при просмотре объектов документа. Взгляните на рис. 1.3, где показано, что теперь все объекты, потенциально включенные в состав документа, стали доступными для просмотра и получения справки:


Рис. 1.3. Окно просмотра объектов каркаса документа

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

Ссылка на основную публикацию
Adblock
detector