Системные программирования ms word

11.5. Программирование в среде приложений ms Office. Макропрограммирование. Программирование в среде vba.

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

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

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

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

Осуществить запуск макроса можно следующими способами:

— выполнить команду Сервис/Макрос/Макросы, выбрать в диалоговом окне Макрос из списка макросов нужный и щелкнуть на кнопке [Выполнить];

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

Читайте также:  Язык программирование для математиков

Приложения MSOffice2003 по умолчанию настроены так, что не позволяют запускать макросы в документах. Поэтому перед тем, как приступать к созданию макросов, необходимо открыть приложение, выполнить команду Сервис/Макрос/Безопасность, на вкладке Уровень безопасности установить переключатель Средняя, потом закрыть и снова открыть данное приложение. Это потребуется сделать только один раз в начале работы. Впоследствии при открытии документа, содержащего макросы, будет выдаваться сообщение, в окне которого необходимо выполнить щелчок на кнопке [Не отключать макросы]» [1, с.3–4].

Программирование в среде VBA[1, с.24–25]:

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

Язык VBA встроен во все главнее приложения MS Office – Word, Excel, Access, Power Point, Outlook, FrontPage, InfoPath. Код на языкеVBAможно хранить внутри документов приложенийMSOffice: в документахWord, книгахExcel, презентациях РowerPointи т.п. Этот код можно запускать на выполнение только из документов, поскольку среда выполнения кодаVBA(на программистском сленге – хост) встроена внутрь этих приложений.

Для разработки и написания программ на языке VBAнеобходимо знать его синтаксис и владеть основными приемами работы с редакторомMicrosoftVisualBasic.

Тексты программ на языке VBAсохраняются и создаются в модулях, которые являются составной частью документовMSOffice. Первоначально документы не содержат модулей и создаются либо пользователями самостоятельно, либо автоматически при записи макроса. Один модуль может содержать одну или несколько программ, называемых в терминах языкаVBAпроцедурами. Каждая процедура начинается строкойSubимя_процедуры(параметры) и заканчивается строкойEndSub. Несколько модулей, сохраняемых в одном документе, имеют общее название проект (project). Проект – это группа модулей, процедур и связанных с приложением объектов, относящихся к некоторому документу, вместе с самим документом. С каждым документом связан свой проект – без документа нет проекта (исключением является шаблонNormal.dotвMSWord, с которым тоже связан проект). Т.е. для написания программы на языкеVBAнеобходимо создать модуль, в который поместить одну или несколько процедур. Для этой цели необходимо вызвать в приложенииMSOfficeвстроенный редакторVisualBasic.

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

Редактор VisualBasicсодержит одни и те же возможности вMSWord,MSExcelиMSPowerPoint».

Программирование в MS Excel. Создание пользовательских функций[1, с.33-34]:

«Несмотря на то, что MSExcelсодержит множество встроенных функций, часто возникает необходимость в вычислениях, для которых нет подходящей функции. В этом случае можно создать пользовательскую функцию, или функцию, определенную пользователем. Для ее создания необходимо написать специальную процедуру, называемую процедурой-функцией, которая получает информацию из рабочего листа, выполняет вычисления и затем возвращает результат в рабочий лист. Возвращаемое функцией значение может быть числовым, текстовым, логическим или массивом значений. Пользовательские функции работают аналогично встроенным функциямMSExcelи могут использоваться только в формулах ячеек рабочего листа. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова. Пользовательские функцииExcel– это обычныеVBAпроцедуры-функции. Процедура функции начинается с оператораFunctionимя(аргументы) и заканчивается операторомEndFunction. Внутри должен находиться оператор, присваивающий значение имени функции, которая возвращает данное значение. Для того, чтобы вставить в рабочий лист возвращаемое функцией значение, следует использовать функцию таким же образом, как используется любая из встроенных функций: внести имя функции в ячейку после знака равенства. После имени печатаются круглые скобки с любым аргументом внутри. Скобки необходимы даже в случае, когда аргументы отсутствуют. Каждое имя функции должно быть уникальным.

В общем случае функция пользователя имеет вид:

Function Имя­_функции (список параметров)

Программирование в MS Word[1, с.42]:

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

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

Третье программное применение MSWord– форматирование документов, например, программное применение стилей, поиск и замена участков текста сразу во многих документах, работа со структурой документа и т.п.

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

Основными объектами и коллекциями MSWordявляются:

— Documents– коллекция содержит все объектыDocument, каждый из которых представляет собой открытый документ;

— ActiveDocument– объект, представляющий активный документ;

— Paragraphs– коллекция абзацев документа;

— Sentences– коллекция предложений документа;

— Words– коллекция слов документа;

— Characters– коллекция символов документа;

— Selection– объект, представляющий собой выделенный фрагмент в документе».

Программирование в MS PowerPoint[1, с.46]:

«Основными объектами и коллекциями MSPowerРointявляются:

— Presentations– коллекция содержит все объектыPresentation, каждый из которых представляет собой открытую презентацию;

— ActivePresentation– объект, представляющий активную презентацию;

— Slides– коллекция всех объектовSlide, представляющих собой слайды презентации;

— Shapes– коллекция всех объектовShape, представляющих собой графические объекты слайдов».

1[] Информация / Новейший философский словарь / Сост. А.А. Грицанов. – Мн. : Изд-во В.М. Скакун, 1998. – С.274–276.

2[] Колмогоров, А.Н. Теория информации и теория алгоритмов / А.Н. Колмогоров. – М. : Наука, 1987. – 304 с.

3[] Фано, Р. Передача информации. Статистическая теория связи / Под общ ред. Р.Л. Добрушина; пер. с англ. И.А. Овсеевича и М.С. Пинскера. – М. : Изд-во «Мир», 1965. – 439 с.

4[] Хэмминг, Р.В. Теория кодирования и теория информации / Под ред. Б.С. Цыбакова; пер. с англ. С.И. Гульфанда. – М. : Радио и связь, 1983. – 176 с.

5[] Новыш, Б.В. Теория информации : практикум / Б.В. Новыш, Л.А. Овсянко. – Мн. : Акад упр. при Президенте Респ. Беларусь, 2009. – 92 с.

6[] Лугачев, М.И. Экономическая информатика: Введение в экономический анализ информационных систем: учебник / М.И. Лугачев [и др.]. – М. : ИНФРА-М, 2005 – С.50–62.

7[] Информация / Новейший философский словарь / Сост. А.А. Грицанов. – Мн. : Изд-во В.М. Скакун, 1998. – С.274–276.

8[] Лугачев, М.И. Экономическая информатика: Введение в экономический анализ информационных систем: учебник / М.И. Лугачев [и др.]. – М. : ИНФРА-М, 2005 – С.62–66.

9[] Экономическая информатика : учебник для вузов / В.В. Евдокимов [и др.]. – СПб. : Питер, 1997. – С.14.

10[] Соколов, А.В. Философия информации : проф.-мировоззр. учеб. пособие / А.В. Соколов ; С.-Петерб. гос. ун-т культуры и искусств. – СПб. : СПбГУКИ, 2010. – С.139–279.

11[] Экономическая информатика / Под ред. П.В. Конюховского и Д.Н. Колесова. – СПб. : Питер, 2000. – С.23

12[]Морозевич, А.Н. Основы экономической информатики : учеб. пособие / А.Н. Морозевич [и др.] ; под общ. Ред. А.Н. Морозевича. – Мн. : ООО «Мисанта», 1998. – С.28–29.

Источник

Оцените статью