9.3. Редактор Visual Basic
После записи рассмотренного выше макроса к шаблону Normal добавился следующий текст макроса:
Sub Arial_10_bold()
“ Arial_10_bold Macro
“ Arial 10 Полужирный
With Selection.Font
Underline = wdUnderlineNone
UnderlineColor = wdColorAutomatic
StrikeThrough = False
DoubleStrikeThrough = False
Outline = False
SmallCaps = False
AllCaps = False
Color = wdColorAutomatic
Engrave = False
Superscript = False
Subscript = False
Animation = wdAnimationNone
Наверняка пользователям, незнакомым с программированием, такой текст покажется очень сложным, однако при ближайшем рассмотрении оказывается, что это простой набор параметров, которые установлены или не установлены. Установленный параметр обозначается словом True, а неустановленный – False.
Для записи макросов, как и для других команд, в Microsoft Word используется язык Visual Basic for Applications (VBA, Visual Basic для приложений). Макрос представляет собой набор команд и операторов на VBA. Каждая команда и действие в Microsoft Word представлены в виде строк формата VBA, процесс записи макроса тоже представляет собой формирование таких строк. Таким образом, пользователь имеет возможность изменить или создать макрос без повторного выполнения всей процедуры. Хотя макрос VBA можно создать в любом текстовом редакторе, не стоит пренебрегать возможностью записи макроса в Word. Макросу, созданному при помощи Microsoft Word, можно добавлять новые команды и функции, а также на таких макросах можно изучать язык VBA.
Макросы можно редактировать, используя специальную утилиту, которая входит в поставку Microsoft Office, – редактор Visual Basic (рис. 9.10).
Рис. 9.10. Окно редактора Visual Basic
Данная программа содержит возможности, которые позволяют работать с макросом: тестировать, отлаживать, запускать на выполнение. Используя этот редактор, можно добавлять, изменять и удалять объекты в макросах, создавать пользовательские диалоговые окна, отлаживать код программных процедур, просматривать и выбирать компоненты текущих проектов и библиотек, определять вид и поведение объектов макроса во время выполнения и выполнять многое другое.
Окно редактора Visual Basic можно открыть несколькими способами, например нажав кнопку Visual Basic на панели Разработчик.
Из книги Программирование автора Козлова Ирина Сергеевна3. Переменные Visual Basic В Visual Basic переменные накапливают информацию (значения). При их применении Visual Basic занимают область в памяти компьютера, которая предназначена для сохранения этой информации. Имена переменных, составленные из символов, могут иметь длину в 255 символов.
Из книги Реестр Windows автора Климов АлександрVisual Basic Регистрация dll- и ocx-файловДанная заметка будет полезна разработчикам. Если вам часто приходится работать с ocx-файлами (а также с dll-файлами), которые требуют регистрации в реестре с помощью REGSVR.EXE, то будет гораздо удобнее внести соответствующую запись в реестр, чем
Из книги Язык программирования С# 2005 и платформа.NET 2.0. автора Троелсен ЭндрюПодход Visual Basic 6.0 Благодаря искреннему желанию насладиться более простой жизнью, многие программисты ушли от "мира каркасов" приложений на базе C(++) к более дружественным языкам, таким, как, например, Visual Basic 6.0 (VB6). Язык VB6 стал популярным благодаря тому, что он дает
Из книги Реестр Windows автора Климов А Из книги BPwin и Erwin. CASE-средства для разработки информационных систем автора Маклаков Сергей ВладимировичVisual Basic 6.0 В Visual Basic 6.0 в отличие от пятой версии окна Code и Object появляются в нормальном, не в раскрытом виде. И приходится при каждом запуске VB6 раскрывать эти окна. Можно заставить автоматически раскрывать эти окна при каждом запуске. Создайте в соответствующем разделе
Из книги VBA для чайников автора Каммингс Стив2.4.2. Генерация кода в Visual Basic ERwin поддерживает генерацию кода для MS Visual Basic версий 4.0 и 5.0. В качестве источника информации при генерации форм служит модель ERwin. Использование ERwin позволяет одновременно описывать как клиентскую часть (объекты, отображающие данные на экране),
Из книги Программирование для карманных компьютеров автора Волков Владимир БорисовичЧто визуального в Visual Basic для приложений? К счастью, VBA во многом избавляет от необходимости нудного печатания программного кода. В одних случаях вы записываете команды, которые нужны в приложении, и используете их в качестве отправной точки при создании новой программы.В
Из книги Виртуальная библиотека Delphi автораVBA против Visual Basic Помимо того, что VBA не позволяет вам создавать отдельные приложения, одно из основных отличий состоит в том, что программы, написанные на VBA, работают медленнее, чем программы, написанные на Visual
Из книги автораРазличия между VBA и Visual Basic VBA имеет очень много общего с Visual Basic, своим старшим братом, предназначенным для создания независимых приложений. А раз языки похожи, вы можете перенести большую часть своих навыков в программировании на VBA в Visual Basic. Однако вам следует помнить о
Из книги автораВызов редактора Visual Basic Редактор Visual Basic служит командным центром для работы в VBA. В нем вы должны находиться при разработке VBA-форм, создании VBA-кода, тестировании и отладке VBA программ. Экспертом по использованию редактора Visual Basic вы станете после прочтения главы 5, а пока
Из книги автораКраткое знакомство с редактором Visual Basic Первые обращения к редактору Visual Basic могут вас озадачить. Наверное, присутствие меню и панелей инструментов вверху экрана покажется вам привычным, но вот что означает это обилие окон? Предсказать их взаимное расположение
Из книги автораГлава 5. Редактор Visual Basic к вашим услугам. В этой главе...~ Поиск команд в системе меню редактора Visual Basic~ Отображение, перемещение и настройка панелей инструментов~ Понимание и использование закрепления панелей инструментов и окон~ Сражение с толпами окон редактора Visual Basic~
Из книги автораПользовательский интерфейс редактора Visual Basic Редактор Visual Basic является стандартным блюдом Microsoft- меню, панели инструментов и комбинации клавиш выглядят и работают очень похоже на Microsoft Office. Вы будете чувствовать себя как дома, если используете VBA с приложениями из Office.С
Из книги автораСреда разработки eMbedded Visual Basic 3.0 Для краткости в этой главе для обозначения среды eMbedded Visual Basic 3.0 будет использовано сокращение eVB.Запустить eVB можно либо при помощи команды меню Пуск (Пуск? Программы? Microsoft eMbedded Visual Tools ? eMbedded Visual Basic 3.0), либо найти в папке установки
Из книги автораОтличия eVB и Visual Basic для. NET В основном отличия VB.NET от eVB связаны с интеграцией языка VB с Compact Framework и определяются именно внутренней структурой самой CF.Типы данныхВ eVB был один-единственный тип данных на все случаи жизни, Variant, который достался eVB по наследству от VB Script. Visual
Из книги автораDelphi и Visual Basic 1. Есть ли в Delphi эквивалент массива элементов управления из Visual Basic? Hет. Компоненты Delphi не имеют свойства Index, подобное VB. Однако, имеются три основные причины, почему вы хотите использовать их в VB, и для каждой из них есть решение в Delphi. Причина 1. Вы хотите
Цель лабораторной работы
Лабораторная работа служит для получения практических навыков по использованию возможностей языка Visual Basic for Applications при создании процедур обработки текста с помощью свойств и методов объектов Microsoft Word.
Основные сведения об объектах Word , их свойствах и методах
Visual Basic for Applications поддерживает набор объектов, соответствующих элементам 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 <0) выступ или отступ абзаца от края листа на заданное количество позиций;
Space 1, Space 2, Space 15 - устанавливают межстрочный интервал (одинарный, двойной, полуторный).
ОбъектыRange (диапазон) иSelection (выделение), представляющие части документа.
Объект Range позволяет задать произвольный диапазон, представляющий собой последовательность индексированных элементов и может быть получен через метод Range или свойство Range других объектов.
Свойствами объекта Range являются:
Start - начальная символьная позиция диапазона.
End - конечная символьная позиция диапазона.
Text - позволяет получить или изменить содержимое объекта.
Объект Selection задает выделенную в документе область (фрагмент). Выделенный в документе фрагмент задает непрерывную область элементов, но не является диапазоном, заданным своим началом и концом. Выделить можно только один фрагмент, поэтому один объект Selection может быть активен в данный момент времени. Объект Selection может быть получен с помощью свойства Selection или метода Select других объектов.
Ниже приведены некоторые методы присущие объектам Selection и Range :
Move - метод перемещения точки вставки;
MoveStart , MoveEND - методы изменения значения свойств Start и End;
Collapse - сворачивает диапазон к его началу или концу.
Next - метод получения ссылки на очередной элемент коллекции объектов в диапазоне или выделенном фрагменте;
Delete - удаляет текст входящий в диапазон.
InsertAfter , InsertBefore вставляет текст до или после текста, входящего в диапазон. После вставки текста диапазон расширяется, включая в себя вставленный текст.
Copy - копирует объект в буфер обмена;
Cut - перемещает объект в буфер обмена;
Paste - позволяет поместить содержимое буфера в область, заданную объектом Range или Selection.
Занятие № 9. VBA в приложении к Word
Пакет Word в сочетании с VBA предоставляет широкие возможности для работы с текстом или фрагментами текста. Можно вызвать для обработки какой-либо абзац, предложение и т.д.
Для доступа к тем или иным фрагментам документа используют такие объекты, как Sections (разделы), Paragraphs (абзацы), Sentences (предложения), Words (слова) и др.
Words(6) дает возможность перейти к
шестому
слову в документе
Sentences(11) переход к одиннадцатому предложению
После перехода к определенной части документа можно использовать объект Font , позволяющий изменять свойства шрифта. Этот объект содержит методы, находящиеся в панели меню “Формат | Шрифт”.
Объект Range является базовым в операции редактирования. Его можно рассматривать как непрерывный фрагмент текста (никак не связанный с выделенной областью), который не зависит от положения курсора. Range включает в себя такие объекты, как Words (слова) или Sentences (предложения); при обращении к ним сам объект Range указывать не нужно, тогда как для Sections (разделы) или Paragraphs (абзацы) это делать необходимо.
Объект Range поддерживает основные методы, которыми пользуются при форматировании текста (такие, как “Копировать”, “Вставить”, “Вырезать”, команды меню “Формат”).
Для выполнения заданий потребуется применение функций, работающих с символьными переменными.
Для знакомства с примерами кодов целесообразно воспользоваться приемом, когда вы форматируете часть документа в режиме записи макроса, а потом анализируете код макроса и редактируете его.
Для записи макроса необходимо:
1. Выбрать в меню “Сервис | Макрос | Начать запись”.
2. Ввести в окне “Запись макроса” в поле “Имя макроса” имя нового макроса.
3. Выбрать в списке “Макрос доступен для” шаблон или документ, в котором будет храниться макрос.
5. Ввести в поле “Назначить макрос” кнопку “Панели” (для назначения макросу кнопки панели инструментов или команды меню); кнопку “Клавишам”(для назначения макросу сочетания клавиш); если макросу назначение не требуется, нажмите кнопку “OK”. Если в процессе работы вы часто используете какой-либо макрос, то целесообразно назначить ему кнопку или сочетание клавиш.
Следует помнить, что для записи действий надо использовать клавиатуру, поскольку действия, произведенные с помощью мыши, не записываются.
Существует одна особенность при сохранении готового документа Word, в котором находятся макросы и процедуры. Если вы вспомните работу с макросами в Excel, то при открытии готового документа там всегда задается вопрос: “Отключать макросы при открытии или нет?”. И если вы укажете, что макросы надо отключить, то подготовленные кнопки работать не будут.
В редакторе Word, в отличие от Excel, установлена сильная защита от макросов (макросы рассматриваются как вирусы), и при повторном открытии одного и того же документа, в котором все программы и макросы работали, запроса на включение или отключение макросов не будет, и работать также ничего не будет.
Поэтому при сохранении документа в Word вы должны выполнить следующую последовательность действий:
2. Выбрать в меню “Сервис” пункт “Параметры безопасности”. Появится диалоговое окно “Безопасность”.
3. Щелкнуть по кнопке “Защита от макросов”, чтобы изменить уровень безопасности файла (по умолчанию установлен Высокий уровень безопасности, поэтому при повторном открытии файла ваши программы выполняться не будут).
4. Выбрать в появившемся диалоговом окне на закладке “Уровень безопасности” Средний или Низкий уровень безопасности. При выборе Среднего уровня безопасности при открытии документа будет появляться запрос на включение или отключение макросов. Для того чтобы программы и макросы в документе работали, надо выбрать “Не отключать макросы”.
При выборе Низкого уровня безопасности диалоговое окно появляться не будет, и макросы будут подключаться автоматически.
5. Перейти на закладку “Надежные источники” и включить флажок “Доверять доступ к Visual Basic Project”.
6. Сохраните документ.
Практическая работа № 9–1 “Работа в Wоrd”
Спроектировать кнопки, при помощи которых можно провести разбор предложения. При установке курсора на найденное слово и нажатии на соответствующую клавишу слово должно окрашиваться в определенный цвет и подчеркиваться.
Порядок работы.
1. Набрать текст в редакторе WORD.
2. Выбрать в меню “Сервис | Макрос | Начать запись”.
3. Дать макросу имя (например, “Имя_Существительное”).
4. Ввести описание макроса в поле “Описание”.
5. Определить в поле “Назначить макрос” способ, с помощью которого будет вызываться макрос (кнопка или сочетание клавиш).
6. Выполнить действия, которые нужно включить в макрос.
В нашем случае последовательность действий будет такая: установить курсор перед любым словом; выделить это слово; установить цвет шрифта - красный, одинарное подчеркивание.
Не забывайте, что для записи действий надо использовать клавиатуру!
7. Нажать после записи макроса кнопку “Остановить запись”.
8. Выполнить те же действия для определения сказуемого (только цвет шрифта установить зеленый и задать двойное подчеркивание).
9. Подготовить кнопку “CommandButton1” на рабочем листе выше текста, назвать ее “Подлежащее”.
10. Просмотреть записанную программу, скопировать ее и переписать через режим написания программы Исходный текст в кнопку “Подлежащее”.
11. Проделать те же действия и для кнопки “Сказуемое”.
12. Задать уровень безопасности документа.
Практическая работа № 9–2 “Количество абзацев в документе”
Рассмотреть документ, который состоит из нескольких абзацев. Задача заключается в том, чтобы программно определить количество абзацев в документе; озаглавить текст; в конце документа вывести сообщение о количестве абзацев.
Мы знаем, что в программе Word количество абзацев определяется по символу ¶, который появляется каждый раз после нажатия на клавишу . Но проверять и подсчитывать количество этих символов нецелесообразно, поскольку существуют стандартные методы. Вспомним, что документ, с которым мы работаем, называется активным документом, и в программе к нему будем обращаться ActiveDocument .
Возьмем для примера текст об Интернете, а именно - о передаче информации и протоколах. Текст содержит 6 абзацев, судя по количеству специальных символов.
Порядок работы.
1. Вызвать панель элементов управления (“Вид | Панели инструментов | Элементы управления”).
2. Подготовить кнопку “CommandButton1” на рабочем листе ниже текста.
3. Переименовать кнопку в “Количество абзацев”. Для этого на панели элементов управления вызовите “Свойства”. Появится панель “Properties”. Выберите свойство “Caption” и в правой колонке наберите название.
4. Придать кнопке свойство обтекания по контуру, чтобы кнопку можно было перемещать по листу. Для этого на объекте кнопка следует вызвать контекстно-зависимое меню и выбрать “Формат объекта”. Появится диалоговое окно “Формат элемента управления”. На вкладке “Положение” выбрать вариант “По контуру”.
5. Выбрать в контекстно-зависимом меню этого объекта команду “Исходный текст” или два раза щелкнуть по кнопке. Откроется редактор режима написания программы.
Алгоритм выполнения задания:
1. Объявить переменные:
a) k - переменная для подсчета количества абзацев в документе;
b) Text - переменная для формирования текста-ответа о количестве абзацев;
c) ZAGOLOVOK - переменная, которая определит область для вывода заголовка.
2. Определить количество абзацев с помощью метода Count объекта Paragraphs.
3. Сформировать текст вывода сообщения.
4. Вставить дополнительный абзац после последнего абзаца документа для вывода сообщения.
5. Вывести текст-сообщение в подготовленный абзац.
6. Сформировать область для вывода заголовка “Протоколы”.
7. Вывести название “Протоколы”.
8. Установить шрифт и размер заголовка.
9. Вставить символ конца абзаца для того, чтобы название и начало текста были на разных строках.
Можно дополнить эту задачу. Например, сообщение о количестве абзацев пусть выводится красным цветом и 14-м размером шрифта. Этот фрагмент учащиеся могут выполнить самостоятельно. Обратите внимание, что место этого фрагмента программы очень важно: он должен располагаться только в этой части программы, а не после работы с заголовком.
Результат выполнения программы представлен на рисунке.
Строка программы |
Пункт алгоритма |
Public Sub CommandButton1_Click() |
Начало |
Dim k As Integer | 1a |
Dim Text As String | 1b |
Dim ZAGOLOVOK As Range | 1c |
Dim REZULTAT As Range | Эта часть для выполнения дополнительного задания |
2 | |
Text = "Количество абзацев в этом документе - " & k & "." | 3 |
4 | |
ActiveDocument.Paragraphs(k + 1).Range.InsertBefore Text | 5 |
Set REZULTAT = ActiveDocument.Paragraphs(k + 1).Range With REZULTAT .Font.Name = "Arial" .Font.Size = 14 Font.ColorIndex = wdDarkRed End With |
Эта часть для выполнения дополнительного задания |
Set ZAGOLOVOK = ActiveDocument.Range(Start:=0, End:=0) | 6 |
With ZAGOLOVOK | Начало структуры With |
.InsertBefore "Протоколы" | 7 |
.Font.Name = "Arial" | 8 |
.Font.Size = 24 | 8 |
.InsertParagraphAfter | 9 |
End With | Конец структуры With |
End Sub | Конец |
Практическая работа № 9–3 “Количество букв а (русских) в абзаце”
Эта практическая работа выполняется с тем же документом, что и работа № 9–2 (с документом, который состоит из нескольких абзацев). Задача заключается в том, чтобы программно определить номер абзаца, в котором будет происходить подсчет букв а ; подсчитать их количество; в конце документа (или после абзаца, в котором происходил подсчет) вывести сообщение о количестве букв.
Порядок работы.
2. Подготовить кнопку на рабочем листе ниже текста “CommandButton2”.
3. Переименовать кнопку в “Количество букв а в абзаце”.
4. Придать кнопке формат обтекания по контуру, чтобы ее можно было перемещать по листу.
текст” или два раза щелкнуть по кнопке (мы попадем в редактор в режим написания программы).
1. Объявить переменные:
a) b - строковая переменная для размещения в ней выбранного абзаца в документе;
b) k - переменная для хранения количества абзацев в документе;
c) dl - переменная для хранения длины абзаца;
d) Text - переменная для формирования текста-ответа о количестве символов а в абзаце;
e) Nab - переменная для ввода номера абзаца, в котором будет происходить подсчет;
f) I - переменная для организации цикла;
g) kol - переменная для подсчета символов а ;
h) REZULTAT - переменная, которая определит область для вывода заголовка.
2. Ввести номер абзаца, используя диалоговое окно.
3. Определить количество абзацев в документе.
4. Проверить существование введенного номера абзаца и выдать сообщение об ошибке, если такого нет.
5. В переменную b занести текст всего абзаца.
6. Определить длину абзаца.
7. Организовать цикл по нахождению символа а .
8. Сформировать текст вывода сообщения.
9. Вставить дополнительный абзац после последнего абзаца документа для вывода сообщения.
10. Вывести текст-сообщение в подготовленный абзац.
11. Установить определенный шрифт, размер и цвет текста-сообщения.
Строка программы |
Пункт алгоритма |
Private Sub CommandButton2_Click() Начало программы |
Начало |
Dim b As String | 1a |
Dim k As Integer | 1b |
Dim dl As Long | 1c |
Dim Text As String | 1d |
Dim Nab As Integer | 1e |
Dim i As Long | 1f |
Dim REZULTAT As Range | 1g |
kol = 0 | |
Nab = InputBox("Введите номер абзаца", "Подсчитаем буквы а") | 2 |
k = ActiveDocument.Paragraphs.Count | 3 |
If Nab > k Then | 4 |
MsgBox "В тексте нет такого абзаца", 48, "Предупреждение" | 4 |
End | 4 |
End If | 4 |
b = ActiveDocument.Paragraphs(Nab).Range | 5 |
dl = Len(b) | 6 |
For i = 1 To dl | 7 |
If Mid(b, i, 1) = "а" Or Mid(b, i, 1) = "А" Then kol = kol + 1 | 7 |
Next i | 7 |
MsgBox kol | Отладочная печеть |
Text = "Количество букв а в абзаце с номером "& Nab & " - " & kol & "." | 8 |
ActiveDocument.Paragraphs(k).Range.InsertParagraphAfter | 9 |
Set REZULTAT = ActiveDocument.Paragraphs(k + 1).Range | |
With REZULTAT | |
.InsertBefore Text | 10 |
.Font.Name = "Arial" | 11 |
.Font.Size = 14 | 11 |
.Font.ColorIndex = wdDarkRed | 11 |
End With | |
End Sub | Конец программы |
Результат выполнения представлен на рисунке.
Практическая работа № 9–4 “Предложения в абзаце”
Эта практическая работа выполняется с тем же документом, что и работа № 9–2 и 9–3 (или с любым текстом, который состоит из нескольких абзацев). Задача заключается в том, чтобы программно определить номер абзаца, в котором наибольшее количество предложений; выделить сообщение о номере абзаца и о количестве предложений, используя диалоговое окно; выделить этот абзац другим цветом.
Порядок работы.
1. Вызвать панель элементов управления “Вид | Панели инструментов | Элементы управления”.
2. Подготовить кнопку “CommandButton3” на рабочем листе ниже текста.
3. Переименовать кнопку в “Предложения в абзаце”.
4. Придать ей формат обтекания по контуру, чтобы кнопку можно было перемещать по листу.
5. Выбрать в контекстно-зависимом меню этого объекта пункт “Исходный текст” или два раза щелкнуть по кнопке (попадаем в редактор в режим написания программы).
Алгоритм выполнения задания следующий:
1. Объявить переменные:
a) k - переменная для хранения количества абзацев в документе;
b) kol - переменная для хранения количества предложений в абзаце;
c) i - переменная для организации цикла;
d) Mas() - массив для занесения количества предложений в абзацах;
e) Otvet - переменная для формирования текста-ответа с результатами;
f) Max - переменная для хранения максимального количества предложений в абзаце;
g) ind - переменная для хранения номера абзаца с максимальным количеством предложений;
h) REZULTAT - переменная, которая определит область абзаца, к которому надо применить элементы форматирования.
При объявлении массива нам неизвестно количество абзацев в документе. Поэтому объявление массива производим в два этапа: 1-й этап - объявление без размера Dim Mas() As Integer; 2-й этап - после определения количества абзацев в документе переопределяем размерность массива ReDim Mas(k) As Integer. Такие массивы называются динамическими.
Кроме этого, чтобы индекс массива начинался с 1, а не с 0 (для удобства работы), в редакторе в начале листа с процедурой укажите команду “Option Base 1”.
3. Переопределить размерность массива.
4. Организовать цикл по определению количества предложений в абзацах с занесением их размерности в массив и сохранением порядкового номера в массиве, что соответствует номеру абзаца.
5. Организовать цикл по нахождению наибольшего количества предложений в абзаце (работа со сформированным массивом) по стандартному алгоритму.
6. Сформировать текст вывода сообщения.
7. Вывести в диалоговом окне сообщений результат.
8. Определить область абзаца для форматирования.
9. Установить определенный шрифт, размер и цвет текста-абзаца с максимальным количеством предложений.
Строка программы |
Пункт алгоритма |
Private Sub CommandButton3_Click() |
Начало программы |
Dim k As Integer | 1a |
Dim kol As Integer | 1b |
Dim i As Integer | 1c |
Dim Mas() As Integer | 1d |
Dim otvet As String | 1e |
Dim Max As Integer | 1f |
Dim ind As Byte | 1g |
Dim REZULTAT As Range | 1h |
kol = 0: k = 0 | Обнуление переменных |
k = ActiveDocument.Paragraphs.Count | 2 |
ReDim Mas(k) As Integer | 3 |
Rem Начало программы | Комментарий |
For i = 1 To k | 4 |
kol = ActiveDocument.Paragraphs(i).Range.Sentences.Count | 4 |
Mas(i) = kol | 4 |
Next i | 4 |
Max = Mas(1) | Подготовительная часть перед циклом |
ind = 1 | |
For i = 2 To k | Начало цикла |
If Mas(i) > Max Then | 5 |
Max = Mas(i) | 5 |
ind = i | 5 |
End If | 5 |
Next i | Конец цикла |
Rem Вывод результатов | Комментарий |
otvet = "Самое большое количество предложений в " & ind & " абзаце - " & Max |
6 |
MsgBox otvet | 7 |
Set REZULTAT = ActiveDocument.Paragraphs(ind).Range | 8 |
With REZULTAT | Начало структуры With |
.Font.Name = "Arial" | 9 |
.Font.Size = 12 | 9 |
.Font.ColorIndex = wdDarkRed | 9 |
End With | |
End Sub | Конец программы |
Диалоговое окно с результативным сообщением будет выглядеть так:
Результат выполнения задания представлен на рисунке.
Практическая работа № 9–5
“Слова-палиндромы”
Задача заключается в том, чтобы программно определить, есть ли в тексте слова-палиндромы и выделить эти слова другим цветом.
Порядок работы.
1. Подготовить текст (можно придумать рассказ или стихотворение со словами-палиндромами ШАЛАШ, КАЗАК, НАГАН, МАДАМ и т.д.).
2. Вызвать панель элементов управления “Вид | Панели инструментов | Элементы управления”.
3. Подготовить кнопку “CommandButton1” на рабочем листе ниже текста.
4. Переименовать кнопку в “Палиндромы”.
5. Придать созданной кнопке формат обтекания по контуру, чтобы ее можно было перемещать по листу.
6. Выбрать в контекстно-зависимом меню этого объекта пункт “Исходный текст” или два раза щелкнуть по кнопке.
Алгоритм выполнения задания следующий:
1. Объявить переменные:
a) Slovo - переменная для последовательного хранения выделенных слов;
b) L - переменная для хранения длины слова;
c) M - переменная, определяющая половину длины выделенного слова;
d) K - переменная для формирования 1-й половины слова;
e) D - переменная для формирования 2-й половины слова;
f) Kol - переменная для хранения количества абзацев в документе.
2. Определить количество абзацев в документе.
3. Определить область, в которой надо искать слова-палиндромы, - это все абзацы текста.
4. Организовать цикл по выделению слов в области определения.
5. Присвоить выделенное слово строковой переменой.
6. Определить длину выделенного слова.
7. Проверить длину слова. Если она равна 1, то слово проверять нет смысла.
8. Организовать цикл, чтобы определить, является ли слово палиндромом.
9. Изменить цвет букв у слова-палиндрома.
Строка программы |
Пункт алгоритма |
Private Sub CommandButton1_Click() |
Начало программы |
Dim slovo As String | 1a |
Dim L As Byte | 1b |
Dim M As Byte | 1c |
1d | |
Dim D As String | 1e |
Dim kol as byte | 1f |
kol = ActiveDocument.Paragraphs.Count | 2 |
Set myRange = ActiveDocument.Range (ActiveDocument.Paragraphs(1).Range.Start, ActiveDocument.Paragraphs(kol).Range.End) |
3 |
For Each aword In myRange.Words | 4 (Начало внешнего цикла) |
slovo = aword.Text | 5 |
L = Len(slovo) | 6 |
If L <= 1 Then GoTo M1 | 7 |
M = Int(L / 2) | Подготовка к проверке на палиндром |
For I = 1 To M | 8 (Начало вложенного цикла) |
K = Mid$(slovo, I, 1) | 8 |
D = Mid$(slovo, L - I + 1, 1) | 8 |
If K <> D Then GoTo M1 | 8 |
Next I | 8 (Конец вложенного цикла) |
aword.Font.Size = 14 | 9 |
aword.Font.ColorIndex = wdDarkBlue | 9 |
M1: Next aword | 4 (Конец внешнего цикла) |
End Sub | Конец программы |
В результате ыполнения программы слова-пасиндромы будут ыделены синим цветом.
Занятие № 10. VBA в приложении Power Point
В приложении Power Point с помощью VBA можно автоматизировать множество задач. Рассмотрим применение пользовательских форм для проектирования тестов и различных задач в PowerPoint. Кроме того, имеется возможность не только ввести информацию, но и использовать элементы управления. Для этого требуется следовать двум простым правилам:
1. Макросы необходимо назначить кнопкам панелей инструментов.
2. Элементы управления необходимо разместить в диалоговых окнах.
Практическая работа № 10–1 “Умеешь ли ты считать”
Создайте презентацию, с помощью которой можно проверить и оценить навыки устного счета.
Порядок работы:
1. Открыть Power Point и создать титульный слайд; оформить на нем пять кнопок:
2. Записать программы вызова пользовательских форм (через контекстное меню “Исходный текст”, выделив тематические кнопки).
Тексты программ кнопок:
UserForm1.Show
UserForm4.Show
Private Sub CommandButton3_Click()
UserForm3.Show
Private Sub CommandButton4_Click()
UserForm2.Show
3. Настроить кнопку “Выход” на завершение показа.
4. Спроектировать в редакторе Visual Basic пользовательскую форму UserForm1 “Сложение и вычитание от 1 до 10”.
При проектировании формы Свойство Caption для меток Label сделать пустым; отформатировать все элементы.
Объявление глобальных переменных
Public a As Integer
Public b As Integer
Public R As Integer
Public v As Integer
Public n As Integer
Public f As Integer
Private Sub CommandButton1_Click()
" a - переменная для первого числа
" b - переменная для второго числа
" R - переменная для получения результата
" v, n - переменные для подсчета верных
" и неверных ответов
" f - переменная оператора выбора
f = f + 1
Select Case f
" Присваиваем значения переменным
" a и b через RND в интервале (0;9)
b = Int(10 * Rnd())
a = Int(10 * Rnd())
" Формируем в надписях – или + и =
Label3.Caption = "-"
Label5.Caption = "="
Определяем большее из чисел, и это - первое число, меньшее - второе число:
If a > b Then
Label2.Caption = a
Label4.Caption = b
Label2.Caption = b
Label4.Caption = a
" Вычисляем результат
R = Abs(a - b)
Сравниваем результат и вводимый ответ, подсчитываем количество
v = v + 1
Label12.Caption = "Верно"
n = n + 1
Label12.Caption = "Неверно"
Label12.Caption = ""
b = Int(10 * Rnd())
a = Int(10 * Rnd())
Label2.Caption = a
Label4.Caption = b
Label3.Caption = "+"
Label5.Caption = "="
R = a + b
Написать аналогичные программы для следующих 9 примеров.
" Проверка результата в примере 10
If Val(R) = Val(TextBox1) Then
v = v + 1
Label12.Caption = "Верно"
n = n + 1
Label12.Caption = "Неверно"
" Вводим в надписи количество верных и неверных ответов, даем напутствия
Label7.Caption = "Ваш результат"
Label8.Caption = "Верно"
Label10.Caption = Str(v)
Label9.Caption = "Неверно"
Label11.Caption = Str(n)
If v = 10 Then Label12.Caption =
" Молодец!!!" Else Label12.Caption =
"Еще поработай над счетом!!!"
UserForm1.Hide
End Select
Программа кнопки “Снова”
Private Sub CommandButton2_Click()
Набираем программный код для кнопки снова (для этого щелкнем по кнопке)
"Обнуляем переменные, подсчитывающие
результат
"В надписях стираем информацию
Label10.Caption = ""
Label11.Caption = ""
Label12.Caption = ""
Label2.Caption = ""
Label4.Caption = ""
Label3.Caption = ""
Label5.Caption = ""
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
Sub CLS()
TextBox1.Text = ""
В рабочем состоянии форма выглядит так:
5. Спроектировать пользовательские формы UserForm2, UserForm3, UserForm4.
6. Записать программы в кнопках.
Вид формы UserForm2 “Сложение и вычитание от 1 до 200” может быть таким:
Примерный вид формы UserForm3 “Таблица умножения”:
А вот такой может быть форма UserForm4 “Посчитай”:
7. Проверить работоспособность проекта и сохранить работу.
Практическая работа № 10–2 “Тест на Визуальный Интеллект”
Создайте презентацию, с помощью которой можно проверить и оценить визуальный интеллект.
Порядок работы:
1. Открыть Power Point, создать титульный слайд.
2. Создать посредством панели элементов кнопку “Определи свой Визуальный Интеллект” и записать (через контекстное меню “Исходный текст”) программу вызова пользовательской формы UserForm1:
Private Sub CommandButton1_Click()
UserForm1.Show
3. Создать через панель рисования кнопку “Выход”и настроить ее на завершение показа.
4. Спроектировать в редакторе Visual Basic пользовательскую форму со следующими элементами управления:
Public i As Integer
Public x As Integer
" Переменная х подсчитывает количество правильных ответов
Private Sub CommandButton1_Click()
i = i + 1
Select Case i
Label1.Caption = "Какая из фигур не соответствует общему ряду?"
UserForm1.Image1.Picture =
LoadPicture("C:\тест1.JPG")
If OptionButton4.Value = True
Then x = x + 1
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
UserForm1.Image1.Picture =
LoadPicture("C:\тест2.jpg")
If OptionButton1.Value = True Then x = x + 1
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
UserForm1.Image1.Picture =
LoadPicture("C:\тест3.jpg")
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
UserForm1.Image1.Picture =
LoadPicture("C:\тест4.jpg")
If OptionButton3.Value = True Then x = x + 1
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
UserForm1.Image1.Picture =
LoadPicture("C:\тест5.jpg")
If OptionButton4.Value = True Then x = x + 1
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
Label1.Caption = "Ваша оценка " & x
UserForm1.Hide
End Select
Программа кнопки “Выход”
Private Sub CommandButton2_Click()
UserForm1.Hide
5. Выбрать рисунки-тесты.
6. Вывести результат после прохождения всех пяти вопросов.
Практическая работа № 10–3 “Твой соционический тип”
Создайте презентацию, с помощью которой можно определить соционический тип.
Порядок работы:
1. Спроектировать титульный слайд; предусмотреть кнопки вызова пользовательских форм для определения соционического типа: “экстраверт - интраверт”; “сенсорик - интуит”; “логик - этик”; “иррационал - рационал”; “выход”; “узнай свой социотип” (определяются все типы).
2. Спроектировать пользовательские формы для определения социотипа:
· разработать программы для кнопок перехода на пользователькие формы описания социотипов (справочные);
· создать “OptionButton” для выбора варианта ответа;
· предусмотреть переход на формы, которые содержат справочный материал;
· создать форму для определения социотипа;
· создать форму (вызываемую при нажатии на клавишу “Кто такой экстраверт?”), которая будет содержать справочный материал;
· предусмотреть подсчет ответов при нажатии на кнопку “Далее”; при последнем нажатии должен выдаваться результат: “Вы - ЛОГИК” и т.д.;
· предусмотреть после прохождения всех вопросов и ответов вызов формы, из которой, в свою очередь, можно попасть в таблицу отношений социотипов или совсем выйти из вопросника.
Дополнительные задания
Подберите материал для создания теста-вопросника. Это может быть:
· Тест по предмету:
· Тест для определения IQ:
· Тест для определения темперамента:
· Тест ШТУР (школьный тест умственного развития):
· Тест профессий и т.д.
Надеемся, что вам был полезен изложенный материал. Желаем успеха!
ГЛАВА 10
Программирование в Word
10.1. Зачем программировать в 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.
Еще одно программное применение Word - умение работать с разными форматами документов. Эту возможность Word вполне можно использовать для массовой обработки документов.
Приведу случай из практики: в каталоге на диске у нас собралось несколько сотен "разнокалиберных" документов разных пользователей. Часть из них создана в Word разных версий, часть - просто текстовые файлы, некоторые документы в форматах HTML, XML или EML (сообщения электронной почты). На предприятии внедрена система документооборота на основе SharePoint Portal Server и нам необходимо привести все эти документы к еди-
ному формату (Word 2003) и загрузить их на SharePoint Portal Server. Конечно же, без автоматизации в такой ситуации возиться придется очень долго.
Третье программное применение Word - форматирование документов, например: программное применение стилей, поиск и замена участков текста сразу во многих документах, работа со структурой документа и т. п. Обычно такие задачи ставятся в издательствах, например, при подготовке рукописей.
10.2. Введение в программирование в Word. Объектная модель
Общая структура объектов Word выглядит так, как показано на рис. 10.1.
Но пугаться не стоит - большая часть из этих сотен объектов никогда вам не понадобится. На практике для решения большинства программных задач достаточно знать всего лишь пять объектов (с сопутствующими коллекциями):
объект Application;
объект Document (с коллекциейDocuments );
объект Selection;
объект Range ;
объект Bookmark (с коллекциейBookmarks ).
Глава 15. Программирование на VBA в Word.
В этой главе...
~ Объектная модель Word
~ Ключевые объекты Word: окна, выделения, диапазоны и объект Find
~ Диапазоны или выделения: что использовать при работе с текстом
~ Методы и свойства для манипуляции с текстом
~ Поиск и замена текста с помощью VBA в Word
Изо всего набора приложений Office Word предлагает наиболее богатый набор средств программирования. Знакомство с объектами Word, такими как Range и Find, иногда оказывается рискованным, но это очень важно, если вы действительно хотите создавать VBA-процедуры, раскрывающие всю мощь Word. Именно об этом мы и поговорим в настоящей главе.
Объектная модель Word содержит так много объектов и их коллекций, что вам потребуется огромный лист бумаги, если вы захотите построить на нем иерархию всех этих объектов в графическом виде. Очевидно, что я смогу рассмотреть лишь малую толику от того колоссального количества объектов, свойств и методов, которые вы сможете использовать в своих программах. В настоящей главе освещены только наиболее важные приемы работы с Word VBA. Если вы хотите получить более подробные сведения, вам придется неоднократно обращаться к справочной системе.
Знакомство с объектом Application
Как и во всех других VBA-приложениях, ключевым в объектной модели Word является объект Application. Другими словами, этот объект содержит все остальные объекты Word. Поскольку объект Application занимает центральное место в программировании на VBA в Word, вам даже не придется явно указывать его имя при работе со многими важными объектами. Однако вам не следует забывать о роли, которую играет этот объект, поскольку он вам потребуется при работе со свойствами и методами самого приложения, а также при обращении к некоторым другим объектам. Например, приведенная ниже инструкция использует метод List Commands объекта Application:
Application.ListCommands (True)
Между прочим, метод List Commands создает новый документ и помещает в него таблицу, содержащую комбинации клавиш и команды меню Word. Если вы передаете методу List Commands значение True, новый документ содержит комбинации клавиш и команды меню Word. Передайте ему значение False, чтобы в нем перечислялись только команды.
Из книги Офисное программирование автора Фризен Ирина ГригорьевнаЧасть II Программирование на VBA в Word
Из книги Эффективное делопроизводство автора Пташинский Владимир СергеевичГлава 12 Word: все, что вы хотели сказать Word – одна из первых прикладных программ, разработанных Microsoft вслед за системными. Первые версии появились больше 10 лет назад, и все это время происходило их совершенствование. Самые первые выпуски программы уже назывались текстовым
Из книги Word 2007.Популярный самоучитель автора Краинский ИГлава 1 Основы работы в Microsoft Word
Из книги Основы информатики: Учебник для вузов автора Малинина Лариса АлександровнаГлава 5 Текстовый редактор Microsoft Word 5.1. Запуск редактора, создание, открытие и сохранение документов Текстовый редактор Microsoft Word предназначен для создания и обработки любых текстовых документов от простой записки до оригинал-макета сложного издания. Работа с текстовым
Из книги Технологии программирования автора Камаев В АГлава 9 ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ 9.1. ОБЩЕЕ ПОНЯТИЕ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ Визуальное программирование является в настоящее. время одной из наиболее популярных парадигм программирования. Визуальное программирование состоит в автоматизированной разработке
Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон ХэлГлава 18. Сетевое программирование Если торговец в разговоре с вами произносит слово «сеть», скорее всего, он желает всучить свою визитную карточку. Но в устах программиста это слово обозначает электронное взаимодействие физически удаленных машин - неважно, находятся
Из книги VBA для чайников автора Каммингс СтивГлава 16. VBA-программирование в Excel. В этой главе...~ Что такое объектная модель Excel~ Управление ячейками с использованием объектов диапазонов~ Создание собственных функций для использования в формулах рабочих листов~ Использование встроенных функций Excel в VBA-коле~ Работа с
Из книги Программирование КПК и смартфонов на.NET Compact Framework автора Климов Александр П.Глава 17. Программирование баз данных. В этой главе...~ Знакомство с терминологией~ Написание кода баз данных с помощью объектов данных ActiveX~ Программирование с помощью DAO~ Ускорение с помощью SQLНесмотря на то, что Access - официальное приложение для работы с базами данных,
Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.Глава 9 Программирование для смартфонов Особенности программирования для смартфонов В этой главе мы научимся создавать приложения для смартфонов под управлением системы Windows Mobile 5.0. Так получилось, что в России смартфоны под управлением Smartphone 2003 поначалу не получили
Из книги Linux: Полное руководство автора Колисниченко Денис НиколаевичГлава 4 Microsoft Word 4.1. Возможности Microsoft Word Microsoft Word - один из самых лучших и мощных текстовых редакторов на сегодняшний день. Word, в отличие от Блокнота и WordPad, не входит в состав Windows, а распространяется в составе программного пакета Microsoft Office. Программа обладает огромным
Из книги Компьютер для бухгалтера автора Филатова ВиолеттаГлава 28 Программирование ядра Из главы 7 вы узнали, что драйверы устройств в Linux выполнены в виде модулей ядра, и познакомились с пакетом module-init-tools (он же modutils для ядер 2.4), содержащим утилиты для выполнения основных операций над модулями ядра. В этой главе я покажу, как
Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри ХеленГлава 6 Работа с программой Word Обычно работа с редактором Word не вызывает трудностей: текст набирается в нем так же, как и в редакторе Блокнот. Трудности начинаются тогда, когда приходится вносить в созданный документ исправления и добавления. К удивлению пользователя,
Из книги Access 2002: Самоучитель автора Дубнов Павел ЮрьевичГЛАВА 27. Программирование с транзакциями. Транзакция является начальной точкой для всех взаимодействий клиентского приложения с сервером. В этой главе мы с точки зрения различных интерфейсов клиента рассмотрим запуск, управление и завершение транзакций.Многие языки и
Из книги Офисный компьютер для женщин автора Пастернак ЕвгенияГлава 11 Программирование на языке SQL Как уже говорилось в главе 9, главной «специальностью» языка SQL является конструирование запросов пользователя к базе данных. Поэтому программирование на языке SQL – это в основном формирование таких
Из книги Компьютер – это просто! автора Алиев ВалерийГлава 1 Текстовый редактор Microsoft Word
Из книги автораГлава 3 Microsoft Word, или Как печатать на компьютере Для чего нужен текстовый процессор? Начало работы Настройки Microsoft Word Панели инструментов Создание документа Форматирование документа Выделение Редактирование документа Таблицы и границы WordArt.