Letysite.ru

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

Vba 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. Прокрутите список Категории вниз и найдите пункт Макросы. Выберите этот пункт. В списке «Сохранить в» выберите имя вашего документа, в котором создан макрос.

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

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

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

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

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

VBA для чайников (80 стр.)

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

Два остальных возможных решения для сохранения данных на диске сработают в любом приложении, поддерживающем VBA. Вы можете сохранять значения в реестре Window (и даже считывать их оттуда), используя инструкции Save Setting и Get Setting, а также сохранять данные в отдельном файле. Оба эти способа рассмотрены в главе 20.

Глава 15. Программирование на VBA в Word.

Объектная модель Word

Ключевые объекты Word: окна, выделения, диапазоны и объект Find

Диапазоны или выделения: что использовать при работе с текстом

Методы и свойства для манипуляции с текстом

Поиск и замена текста с помощью VBA в Word

Изо всего набора приложений Office Word предлагает наиболее богатый набор средств программирования. Знакомство с объектами Word, такими как Range и Find, иногда оказывается рискованным, но это очень важно, если вы действительно хотите создавать VBA-процедуры, раскрывающие всю мощь Word. Именно об этом мы и поговорим в настоящей главе.

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

Читать еще:  Атрибуты стиля текста ms word

Знакомство с объектом Application

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

Между прочим, метод List Commands создает новый документ и помещает в него таблицу, содержащую комбинации клавиш и команды меню Word. Если вы передаете методу List Commands значение True, новый документ содержит комбинации клавиш и команды меню Word. Передайте ему значение False, чтобы в нем перечислялись только команды.

Доступ к документам Word с помощью VBA

Если написанная вами VBA-процедура функционирует прямо в документе, вы должны указать объект этого документа непосредственно в коде, Часто вы сможете сделать это неявным образом, используя объект Selection, о котором я расскажу дальше в настоящей главе. Однако в остальных ситуациях вам придется явно идентифицировать целевой объект.

Работа с активным документом

Типичная VBA-процедура в Word выполняет все свои магические действия в том документе, который в данный момент открыт для редактирования. Для указания активного документа используется объект ActiveDocument. Например, приведенная выше инструкция просто закрывает активный документ:

Как видите, вам не нужно писать код для определения того, какой же документ редактируется в данный момент: достаточно просто использовать объект ActiveDocument.

Если вам необходимо работать с определенным документом, который сейчас не активен, вы должны указать его как члена коллекции Documents, состоящей изо всех документов, открытых в настоящее время в Word. Как и в случае с любой другой коллекцией объектов в VBA, вы можете обратиться к отдельному документу в коллекции, используя его заголовок, который в данном случае совпадает с именем файла (только именем файла, а не с полным путем к нему). Вот соответствующий пример;

Documents(«Toy Store News letter.doc»)

Поскольку вы не знаете точно имя файла целевого документа заранее, а пользователь может в любой момент его изменить, вам следует создать переменную, которая будет содержать имя файла. После этого вы можете использовать эту переменную для указания объекта документа, например, так: Documents (strDocName).

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

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

Для создания нового документа используйте метод Add коллекции объектов Documents. Используемый без каких-либо документов, метод Add создает новый документ, базирующийся на шаблоне Normal (Обычный). Для указания другого шаблона укажите путь к нему в качестве аргумента, как показано ниже:

Documents.Add template:= _

«C:WindowsApplication DataXMicrosoftHidden templates»

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

Documents.Open FileName:= _

«С:ToysToys for infants.doc»

Для активизации уже открытого документа используйте метод Activate коллекции объектов Documents. Предположим, что вам необходимо, чтобы ваша VBA-программа активизировала определенный документ, который в момент запуска программы может быть и открыт, и закрыт. Используйте код, подобный показанному ниже, для активизации открытого документа или открытия документа, если он еще не открыт:

Dim docFileName As String, docPath as String

docFileName = «Старые игрушки.doc»

For Each target Doc In Documents

If targetDoc.Name = docFileName Then

If targetDocIsOpen = True Then

Documents.Open FileName := docPath & docFileName

Поскольку каждый документ Word состоит из одного или нескольких разделов, вы можете ожидать, что Word VBA содержит коллекцию Sections и отдельные объекты Section для работы с этими элементами. Так оно и есть. Наиболее важное применение объектов Section — организация доступа к верхним и нижним колонтитулам (через объект Header Footer ). Вы можете добавлять новые разделы в документ, используя метод Add коллекции Sections или метод Insert Break объекта Range или Selection.

Открытие окон с помощью VBA

Каждый открытый документ содержит как минимум одно окно, а пользователь Word может открыть столько окон, сколько нужно для работы с любым документом. Каждое из подобных окон- объект с его собственными правами. В объектной модели Word объект Application содержит коллекцию Windows, содержащее все окна для всех открытых документов. Кроме того, каждый объект Document содержит свою собственную коллекцию объектов Windows.

Две основные причины работы с объектами Window в Word- контроль над внешним видом окна, а также манипулирование содержимым документа с помощью объекта Selection. Объект Selection я подробно рассмотрю в следующем разделе настоящей главы; здесь же я остановлюсь на приеме, позволяющем определить конкретное окно, а также познакомлю со свойствами, которые вы сможете использовать для определения внешнего вида окна.

Обращение к окнам из программного кода

Прямо из программного кода проще всего обращаться к тому окну, в котором открыт редактируемый документ во время запуска процедуры. Для указания окна используется объект ActiveWindow.

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

Ниже приведены типичные ссылки для объектов Window.

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

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

12.1.1. Условие

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

Читать еще:  Password does not meet security requirements

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.), который имеет смысл хранить в глобальном шаблоне. Этот макрос будет работать с активным документом.

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

Макросы в Microsoft Word

Нередко простановка HTML тегов в статье занимает почти столько же времени, сколько ее написание. Особенно часто такая проблема возникает со статьями со сложной версткой, включающей множество заголовков, списков, цитат и стилей.

Заметно облегчить работу по подготовке текстов к публикации на web-сайте помогут макросы Word, которые могут автоматизировать любую задачу. Для написания такого макроса требуется знание языка программирования Visual Basic for Applications (VBA), встроенного не только в линейку программных пакетов от MicroSoft, но и многие другие приложения. Однако, благодаря тому, что VBA представляет собой упрощенную версию Visual Basic, начать писать простейшие скрипты может любой пользователь.

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

    выбрать пункт меню Вид –> Макросы –> Запись макроса;

дать ему любое имя;

  • выполнить необходимые действия, которые вы хотите автоматизировать;
  • остановить запись (Вид –> Макросы –>Остановить запись).
  • Кликнув по пункту меню Вид –> Макросы –> Запись макроса, вы откроете окно со список всех имеющихся у вас макросов и сможете запустить их, отредактировать или удалить.

    Расстановка тегов абзаца

    в Word при помощи VBA макроса

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

    в тексте перед его размещением требуется при работе со многими CMS. Далеко не все встроенные в web-движки редакторы могут автоматически опознать абзацы в статье и автоматически вставить туда тексты. Кроме того, нередко разбивку текста HTML-тегами требуют и от копирайтеров, чтобы размещение статьи занимало у заказчика как можно меньше времени.

    Самый простой способ автоматизировать вставку HTML-тега в Word – это использование опции автозамены (окошко «Найти и заменить»), вызываемой сочетанием клавиш Ctrl+H.

    Вставляем в строку «Найти» сочетание ^p, а в строку «Заменить на»

    и жмем на кнопку «Заменить все». Word автоматически проставит необходимые HTML-теги в тексте.

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

    1. Включаем запись макроса.
    2. Выполняем замену абзацев на HTML-теги в тексте при помощи опции «Заменить все».
    3. Останавливаем запись.

    Теперь, чтобы проставить тег

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

    Готовый код (помимо простановки тегов, он изменяет шрифт текста на Times New Roman и устанавливает размер 11):

    Sub P()



    Selection.WholeStory
    Selection.Font.Name=»TimesNewRoman»
    Selection.Font.Size=11
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    WithSelection.Find
    .Text=»^p»
    .Replacement.Text=»

    »
    .Forward=True
    .Wrap=wdFindAsk
    .Format=False
    .MatchCase=False
    .MatchWholeWord=False
    .MatchWildcards=False
    .MatchSoundsLike=False
    .MatchAllWordForms=False
    EndWith
    Selection.Find.ExecuteReplace:=wdReplaceAll
    Selection.HomeKeyUnit:=wdStory
    Selection.TypeTextText:=»

    »
    Application.Browser.Next
    Selection.EndKeyUnit:=wdStory
    Selection.TypeBackspace
    Selection.TypeBackspace
    Selection.TypeBackspace
    Selection.TypeBackspace
    End Sub

    Учтите, что если в конце вашего текста есть много лишних абзацев, то данный VBA скрипт обязательно заменит их на HTML-теги, поэтому обязательно проверяйте то, как выглядит конец статьи, перед ее непосредственной публикацией на сайте.

    Как видите, код интуитивно понятный, и многие команды VBA имеют говорящее название, указывающее на их функцию:

    • Selection.Find.Replacement.ClearFormatting – заменить в выбранном тексте,
    • .Text – текст, который нужно найти;
    • .Replacement.Text – текст для замены.

    Команда Selection.TypeBackspace обозначение удаление одного символа, стоящего впереди курсора. Она необходима, так как в случае выполнения замены абзацев на HTML-теги

    в конце всегда будет находиться лишний открывающий тег

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

    Сделать это при помощи автозамены можно так.

    В поле «Найти» вставляем текст ( ). В пункте «Формат» выбираем Шрифт –> Полужирный. Ставим галочку в пункте «Подстановочные знаки». В поле «Заменить на» пишем 1. Нажимаем «Заменить все».

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

    Чтобы исправить эту ошибку, просто заменим

    Итоговый код (на примере замены на

    Sub B()



    Selection.Find.ClearFormatting
    Selection.Find.Font.Bold=True
    Selection.Find.Replacement.ClearFormatting
    WithSelection.Find
    .Text=»( )»
    1
    .Forward=True
    .Wrap=wdFindContinue
    .Format=True
    .MatchCase=False
    .MatchWholeWord=False
    .MatchAllWordForms=False
    .MatchSoundsLike=False
    .MatchWildcards=True
    EndWith
    Selection.Find.ExecuteReplace:=wdReplaceAll
    WithSelection.Find
    .Text = » »
    .Replacement.Text=»»
    .Forward=True
    .Wrap=wdFindContinue
    .Format=False
    .MatchCase=False
    .MatchWholeWord=False
    .MatchWildcards=False
    .MatchSoundsLike=False
    .MatchAllWordForms=False
    EndWith
    Selection.Find.ExecuteReplace:=wdReplaceAll
    End Sub

    Читать еще:  Почему не печатается документ word

    Двойные кавычки в коде – это не опечатка, так как именно таким образом осуществляется экранирование кавычек в VBA-скриптах.

    Аналогичным способом вы можете дополнить макрос, например, обрамляя курсив тегами &#60i&#62&#60&#47i&#62 или &#60blockquote&#62&#60&#47blockquote&#62.

    Автоматическая простановка тегов заголовков

    Чтобы автоматически расставить заголовки H1, H2, H3, H4, H5 и H6, необходимо задать для них размер шрифта, отличный от остального текста. Например, если вы пишите статью 12 размером, можно выделять заголовки 16 размером. Тогда опция автозамены будет выглядеть так:

    • в поле «Найти» ( ),
    • в поле «Заменить на»

    Затем заменяем лишние «

    Макрос будет выглядеть следующим образом:

    Selection.Find.ClearFormatting
    Selection.Find.Font.Size=18
    Selection.Find.Replacement.ClearFormatting
    WithSelection.Find
    .Text=»( )»
    .Replacement.Text=»

    »
    .Replacement.Text=»»
    .Forward=True
    .Wrap=wdFindContinue
    .Format=True
    .MatchCase=False
    .MatchWholeWord=False
    .MatchWildcards=False
    .MatchSoundsLike=False
    .MatchAllWordForms=False
    EndWith
    Selection.Find.ExecuteReplace:=wdReplaceAll
    EndSub

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

    Создание приложений на языке VBA для MS WORD

    Microsoft Office – одна из самых популярных программных систем, используемых во всем мире.

    Трудно найти компьютер, на котором не был бы установлен текстовый редактор Word. Представляя собой систему приложений, тесно связанных друг с другом, MS Office открывает перед своими пользователями самый широкий спектр возможностей.

    Мощнейшим средством создания приложений в MS Office стал язык Visual Basic for Application (VBA). Он пришел на смену языкам макропрограммирования, которые обычно включались в приложения.

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

    Попробуй обратиться за помощью к преподавателям

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

    Остановимся на вопросах разработки VBA-приложений для MS Word. С помощью VBA вы можете автоматизировать любые операции, выполняемые в Word интерактивно (то есть вручную): создание документов, добавление в них текста или других графических элементов, форматирование, редактирование, сохранение и т.д. VBA выполнит все эти операции быстрее, точнее и с меньшими затратами, чем человек.

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

    Задай вопрос специалистам и получи
    ответ уже через 15 минут!

    Создание текстового документа

    Рассмотрим пример создания справки в MS Word 2007.

    Создадим документ Word и сохраним его с именем spravka.docx.

    В случае отсутствия на ленте вкладки Разработчик создайте её с помощью команды — Параметры Word-Личная настройка. В группе Основные параметры работы с Word установите флажок в пункте Показать вкладку Разработчик на ленте.

    Создать макрос1 с помощью макрорекордера. Макрос1 создает текст документа «СПРАВКА»:

    • выполнить команду Разработка, Макрос, Запись макроса;
    • в поле Имя макроса оставить Макрос1. В поле Макрос доступен для: выбрать имя данного документа spravka.docx. Нажать кнопку ОК;
    • набрать текст документа «СПРАВКА» с нужными параметрами абзаца и шрифта;
    • остановить запись макроса кнопкой Останов в закладке Код-Разработчик.

    Проверить работу макроса запустив его на исполнение командой: Разработчик, Макросы, Макрос1, Выполнить.

    Создадим Макрос2 с помощью макрорекордера. Макрос2 выполняет очистку содержимого документа (Выделить все $$, клавиша Delete).

    Создадим панель быстрого доступа для spravka.docx с кнопками для запуска макросов.

    Для этого необходимо:

    • выбрать пункт меню Параметры Word-Настройка;
    • в окне Настройка панели быстрого доступа и сочетаний клавиш на вкладке Выбрать команду из выбрать пункт Макросы, а на вкладке Настройка панели быстрого доступа выбрать пункт Для Spravka;
    • в том же диалоговом окне команд Макросы выделить команду Макрос1 и добавить в панель быстрого доступа для документа Spravka. Аналогично добавить команду Макрос2;
    • изменить надпись или значок на кнопке, назначенной макросу Изменить…, изменить кнопку и отображаемое имя (например, Справка), выбрать новый значок для кнопки, несколько изменить его и назначить макрос (Макрос1) этой кнопке;
    • аналогично изменить надпись и кнопку для вызова еще одного макроса (Макрос2), например Очистка документа.

    Выполнить макросы, используя кнопки панели быстрого доступа для Spravka.

    Сохранить документ на диске в личной папке в файле с именем spravka.doc с типом файла «Документ Word с поддержкой макросов».

    Для выхода из Word выберите из меню Выход из Word.

    Использование VBA при решении задач в Word

    VBA поддерживает набор объектов, соответствующих элементам Word. Используя свойства и методы этих объектов можно автоматизировать все операции в Word. Однако целесообразно автоматизировать выполнение тех операций, для реализации которых нет стандартных средств в Word или их выполнение стандартными средствами является трудоемкой или рутинной работой. Рассмотрим наиболее важные объекты.

    Объект Document представляет собой новый или созданный ранее открытый документ.

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

    • Count — количество открытых в данный момент документов;
    • ActiveDocument — активный документ.

    Некоторые методы объекта Document и коллекции Documents:

    • Open — открывает файл, содержащий существующий документ и автоматически добавляет его в коллекцию;
    • Add — добавляет новый пустой документ;
    • Save — сохраняет изменения в существующем документе без закрытия;
    • Save As (только для объекта) — сохраняет активный вновь созданный документ в текущей папке;
    • Item — позволяет получить доступ к элементу коллекции;
    • Activate (только для объекта) — активизирует открытый документ;
    • PrintOut (только для объекта) — печать документа;
    • Close — закрывает документ.

    Объекты Character (символ), Word (слово), Sentence (предложение), Paragraph (абзац), Section (раздел документа) задают структуризацию текста документа.

    Все эти объекты имеют свойства:

    • Count — свойство возвращает количество элементов в коллекции;
    • First — свойство возвращает объект, являющийся первым элементом коллекции;
    • Last — свойство возвращает объект, являющийся последним элементом.

    Коллекции Characters, Words, Sentences имеют единственный метод Item(Index).

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

    Формат абзаца может быть определен и с помощью методов. Приведем некоторые методы коллекции Paragraphs:

    • Item — определяет элемент коллекции;
    • Add — добавляет новый пустой абзац (параметр метода указывает точку вставки, задается объектом Range);
    • InsertParagraph, InsertParagraphAfter, InsertParagraphBefore — осуществляют вставку пустого абзаца вместо текста или после, или перед текстом, задаваемым объектом Selection или Range;
    • Reset — удаляет форматирование, сделанное вручную, применяя к абзацу формат, заданный стилем абзаца;
    • Indent, Outdent — увеличивают, уменьшают отступ абзаца от края листа;
    • TabHangingIndent(Count), TabIndent(Count) — увеличивают (Count>0), уменьшают (Count Предыдущая статья

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