Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

учебник информатика

.pdf
Скачиваний:
542
Добавлен:
13.02.2015
Размер:
16.29 Mб
Скачать
Рисунок 5.40. Простейший скрипт

Глава 5. Основы разработки программного обеспечения

Сценарий на странице должен располагаться внутри пары тэгов <SCRIPT> и </SCRIPT>. По умолчанию языком сценария считается JavaScript, при использовании языка VBScript следует использовать указа-

ние в тэге <SCRIPT LANGUAGE="VBSCRIPT">.

Любая программа на языке приведенная выше, может исполняться и вызовом ее через Интернет-браузер, если файл программы сохранять не с расширением *.vbs, а как *.htm или *.html.

Простейший пример скрипта, который будет выполнен программой Internet Explorer, если его написать в Блокноте и сохранить с именем

My_script1.html:

<SCRIPT LANGUAGE="VBScript">

MsgBox ("Привет, WWW!")

</SCRIPT>

Открыв файл My_script1.html двойным щелчком мыши (можно также открыть его, как и файлы *.vbs, из текстовых редакторов EmEditor и Aditor), мы увидим пустую web-страницу и созданную ей Windows-форму, показанную на рисунке 5.40. При этом необходимо разрешить исполнение скриптов на web-странице.

Сценарий может быть расположен в любом

месте HTML-документа, но обычно он располагается в начале или в конце документа.

Пример HTML-страницы с математическими вычислениями на ней, выполняемыми скриптом (результат работы программы показан на рисун-

ке 5.41):

<HTML>

<HEAD>

<TITLE>Работа с VBScript</TITLE>

<SCRIPT LANGUAGE="VBScript"> Sub Calc_OnClick()

document.frm.stoimost.value = _

Round(document.frm.Kolich.value _ * Document.frm.cena.value,2)

End Sub

</SCRIPT>

</HEAD>

<BODY>

<H3>Пример использования VBScript на HTML-cтранице</H3>

<P>Задайте количество и цену

и нажмите кнопку "Расчет стоимости" </P>

<FORM NAME="frm">

411

Глава 5. Основы разработки программного обеспечения

<TABLE>

<TR>

<TD> Количество</TD> <TD> Цена</TD>

<TD> Стоимость</TD>

</TR>

<TR>

<TD><INPUT TYPE="Text" NAME="Kolich" SIZE=12></TD> <TD><INPUT TYPE="Text" NAME="cena" SIZE=12></TD>

<TD><INPUT TYPE="Text" NAME="stoimost" SIZE=12></TD> </TR>

</TABLE>

<BR>

<INPUT TYPE="Button" NAME="Calc" VALUE="Расчет стоимости">

</FORM>

</BODY>

</HTML>

Рисунок 5.41. Использование VBScript на HTML-странице

412

Рисунок 5.42. Оглавление справки по языку VBA Microsoft Office Word

Глава 5. Основы разработки программного обеспечения

5.3.2 Язык Microsoft Visual Basic for Applications

Microsoft Visual Basic for Applications (VBA) является встроенным языком программирования для системы Microsoft Office (может использоваться в

Word, Excel, Access, PowerPoint,

Outlook, FrontPage, InfoPath), а

также и в некоторых других си-

стемах (Microsoft Visio и Project, CorelDRAW, CorelWordPerfect Office 2000, AutoCAD).

VBA имеет очень много общего с VBScript. Различия можно найти в файле документа-

ции …\Microsoft Office\Office12\1049\ Vbscrip5.chm, раздел «Visual Basic for Applications Features not in VBScript» – особенности VBA,

которых нет в VBScript. Текст этого раздела в переводе на русский язык показан в таблице 5.6.

Существенные отличия

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

1) В именах (идентификаторах) в языке VBA в рус-

ской версии Microsoft Office могут использоваться русские буквы. Нельзя использовать пробел, точку,

символы !, @, &, $, #. Первый символ в имени – обязательно буква. 2) Переменные и массивы могут быть объявлены с указанием их типа,

как показано в описании синтаксиса массивов в таблице 5.6.

413

Глава 5. Основы разработки программного обеспечения

Типы данных – те же, что и подтипы для VBScript (см. таблицу 5.4). Кроме того, добавлен тип Decimal (14 байт в памяти, целое число в диапа-

зоне +/-79 228 162 514 264 337 593 543 950 335, или действительное число в диапазоне +/-7.9228162514264337593543950335 (28 знаков в дробной части), или наименьшее ненулевое число +/-0.0000000000000000000000000001. Осо-

бенность этого типа – его нельзя использовать в описании данных, в этот тип можно преобразовать тип Variant с использованием функции Cdec().

Полную справку по языку VBA (на английском языке даже в русских версиях Office) можно получить, открыв окно редактора Visual Basic из приложений Microsoft Office (например, работая в системе Word, нажать клавиши Alt+F11, или, найдя эту команду на вкладке ленты Разработчик), и нажав клавишу F1. Раздел справки по VBA показан на рисунке 5.42.

Эта же справочная система содержит описание общих объектов са-

мой системы – Object Model Reference for the 2007 Microsoft Office System и

специфичных объектов той системы, в которой используется редактор Visual Basic.

Так, для редактора Word присутствует раздел Word Object Model Reference (справочник по объектам Word), для Excel – Excel Object Model Reference, для Access – Access Object Model Reference, Microsoft Data Access Objects (DAO) Reference, Microsoft ActiveX Data Objects (ADO) Reference и Microsoft Access SQL Reference, для PowerPoint – PowerPoint Object Model Reference и т. д.

Таблица 5.6. Отличия языка VBA от VBScript

 

 

 

Категория

Ключевые отличия

 

 

 

 

Select Case

Выражения могут использовать ключевой слово Is

 

 

Выражения могут использовать ключевой слово To

 

 

для задания диапазона значений

 

 

 

 

Традиционный фай-

Открыть файл: Open <pathname> For mode [Ac-

 

ловый ввод/вывод

cess access] [lock] As [#]filenumber

 

[Len=reclength], где mode - Append, Binary, In-

 

Basic

 

put, Output, or Random; access - Read, Write,

 

 

 

 

or Read Write;

 

 

Чтение из файла: Input #filenumber, varlist

 

 

Запись в файл: Print #filenumber, [outputlist]

 

Date и Time

Задают текущую системную дату и время

 

 

 

 

Динамический обмен

LinkExecute, LinkPoke, LinkRequest, LinkSend

 

 

 

данными (DDE)

 

 

 

 

 

414

 

Глава 5. Основы разработки программного обеспечения

Продолжение таблицы 5.6

 

 

Категория

Ключевые отличия

 

 

Доступ к элементам

Например, MyCollection!Count

объектов с !

 

 

 

Перечисления Enum, в

[Public | Private] Enum <name>

<membername> [= <constantexpression>]

отличии от коллекций

 

...

каждый элемент пе-

End Enum

речисления имеет имя

Имеют методы Add, Remove и свойства Count, Item.

 

Обращение к методам и свойствам с использованием

 

символа !: <name>!<membername>

Массивы

Индекс с любой заданной нижней границей:

 

Dim [WithEvents] <varname>[([subscripts])]

 

[As [New] <type>] [, [WithEvents] <var-

 

name>[([subscripts])][As [New] <type>]]...

 

Где subscripts имеет синтаксис:

 

[<lower> To] <upper> [, [<lower> To] <up-

 

per>]...

 

 

Обработка ошибок

Erl, Error, Resume, Resume Next

 

Объекты

Clipboard, Collection

 

 

Объявления

Declare (для библиотек DLL)

 

Optional

 

ParamArray

 

Static

Операции

Like

 

 

Отладка

Debug.Print

End, Stop

 

Параметры

Option Base, Option Compare, Option Private

 

Module

 

 

Задание типов для

Deftype

Например, DefStr P-T

имен, начинающихся

с заданных букв

DefInt I-N

DefDec A-F

 

TypeOf для

If TypeOf MyControl Is CommandButton Then

сравнения типов

 

объектов

 

 

 

Type используется

[Private | Public] Type <varname>

для описания типа

<elementname> [([subscripts])] As <type1>

[<elementname> [([subscripts])] As <type2>]

пользователя

...

 

 

End Type

 

415

Глава 5. Основы разработки программного обеспечения

Продолжение таблицы 5.6

 

 

 

Категория

Ключевые отличия

 

 

 

 

Строки

Фиксированной длины

 

 

LSet, Rset, StrConv

 

 

Оператор Mid

 

 

 

 

Управление потоками

DoEvents

 

 

GoSub...Return, GoTo

 

 

 

 

 

On Error GoTo

 

 

On...GoSub, On...GoTo

 

 

Line numbers, Line labels

 

Условная компиляция

#Const

 

 

#If...Then...#Else

 

 

 

 

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

личных компонентах Microsoft Office System.

Для понимания смысла свойств и методов объектов необходимо знание английского языка.

5.3.2.1 Программирование на языке VBA в Microsoft Office Word

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

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

VBA.

Некоторые принципы работы с объектами Word можно освоить, если записать некоторую последовательность своих действий с помощью средства Word Запись макроса, которое присутствует на вкладке ленты Разработчик. Данная вкладка присутствует, если в Параметрах Word на стра-

нице Основные стоит галочка у пункта Показывать вкладку Разработчик на ленте.

Выполним следующие действия:

416

Глава 5. Основы разработки программного обеспечения

1)нажмем на кнопку Запись макроса, ни кнопку, ни клавиши макросу можно не назначать, зададим, где будет сохраняться текст макроса: Макрос доступен для текущего документа;

2)переместимся в конец документа с текущей позиции (была не в конце), нажав клавиши Ctrl+End;

3)нажмем клавишу Enter и напишем слово «Привет!»;

4)еще раз повторим операцию пункта 3;

5)выделим последнее слово, нажав Shift+Home и нажмем клавишу Delete;

6)перейдем в начало первой строки «Привет!», нажмем Shift+End и затем клавишу Delete;

7)на вкладке Разработчик сначала нажмем кнопку Остановить запись, затем кнопку Visual Basic;

8)в открывшемся окне редактора Visual Basic слева на панели Project сделаем двойной щелчок мышкой на разделе Progect(<текущий файл>)

Modules NewMacros и увидим справа окно с текстом программы на языке VBA, которое показано на рисунке 5.43.

При сохранении документа, в котором присутствуют программные модули, в системе Microsoft Office 2007 следует выбрать тип файла Документ Word с поддержкой макросов, иначе текст программ не будет сохранен.

В тексте макроса на рисунке 5.43 Selection – один из основных объектов, которые содержит главный объект Application – приложение Word.

Рисунок 5.43. Текст макроса на языке VBA

417

Глава 5. Основы разработки программного обеспечения

При написании текста программ можно использовать всплывающий список свойств и методов, который появляется для стандартных объектов в редакторе Visual Basic после написания имени объекта и нажатия после неё точки (см. рисунок 5.44), полное описание свойств и методов объектов присутствует в справочной системе.

Всплывающий список свойств и методов можно получить также, нажав комбинацию клавиш Ctrl+пробел.

Рисунок 5.44. Использование всплывающих списков свойств и методов объектов (появляются после нажатия точки после имени объекта)

Кроме того, при написании текста программы для стандартный процедур и функций появляются всплывающие подсказки по их синтаксису (см. рисунок 5.45).

Рисунок 5.45. Всплывающая подсказка в редакторе VBA

В тексте Макрос1 используется объект Selection – место, где находится курсор в текущем документе объекта Application или выделенный фрагмент документа. Полный синтаксис обращения к этому объекту: Application.Selection…, но имя родительского объекта можно опустить, так как при работе с документом в системе Word объект Application всегда является текущим активным объектом.

Selection.EndKey – метод объекта, полный синтаксис которого следующий:

Selection.EndKey(Unit, Extend)

где:

Unit фрагмент документа, в конец которого будет перемещен курсор; по умолчанию имеет значение wdLine (строка документа), могут быть заданы другие значения:

418

Глава 5. Основы разработки программного обеспечения

 

wdCell

 

– ячейка таблицы

 

 

 

 

 

 

 

 

 

 

wdCharacter

 

– символ текста

 

 

 

 

 

 

 

wdCharacterFormatting

 

– символ форматирования

 

 

 

 

 

 

 

wdColumn

 

– колонка таблицы

 

 

 

 

 

 

 

wdItem

 

– выбранный компонент документа

 

 

 

 

 

 

 

wdParagraph

 

– абзац

 

 

 

 

 

 

 

wdParagraphFormatting

 

– форматирование абзаца

 

 

 

 

 

 

 

wdRow

 

– столбец таблицы

 

 

wdScreen

 

– размеры экрана

 

 

 

 

 

 

 

 

wdSection

 

– секция

 

 

 

 

 

 

 

 

wdSentence

 

– предложение

 

 

 

 

 

 

 

 

wdStory

 

– основной текст документа

 

 

 

 

 

 

 

 

wdTable

 

– таблица

 

 

 

 

 

 

 

 

wdWindow

 

– окно

 

 

 

 

 

 

 

 

wdWord

 

– слово

 

 

 

 

 

 

 

 

 

 

 

 

Extend – стиль перемещения курсора, по умолчанию имеет значение wdMove – простое перемещение без выделения фрагмента, может быть задано другое значение wdExtend – перемещение с выделением фрагмента текста.

Текст программы Макрос1 с комментариями:

Selection.EndKey Unit:=wdStory

‘ переместить курсор в конец всего документа

Selection.TypeText Text:="Привет!"

‘ написать текст

Selection.TypeParagraph

‘ перейти к новому абзацу

Selection.TypeText Text:="Привет!"

‘ написать текст

Selection.HomeKey Unit:=wdLine, Extend:=wdExtend

‘ выделить фрагмент текста от текущей позиции до начала строки

Selection.Delete Unit:=wdCharacter, Count:=1

удалить выделенный фрагмент

Selection.MoveUp Unit:=wdLine, Count:=1

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

Selection.EndKey Unit:=wdLine, Extend:=wdExtend

выделить строку

Selection.Delete Unit:=wdCharacter, Count:=1

‘ удалить строку

Выполнить макрос можно, если на вкладке ленты Word Разработчик выбрать команду Макросы, затем в списке выбрать Макрос1 и нажать кнопку Выполнить. Две строки текста очень быстро появятся и исчезнут.

419

Глава 5. Основы разработки программного обеспечения

Работу макросов можно проследить с использованием отладочных режимов в окне Visual Basic (рисунок 5.47).

В пункте меню Debug (см. рисунок 5.46) и на панели инструментов присутствуют команды:

Step Into – выполнить построчно с заходом из текущей процедуры во все вызываемые процедуры;

Step Over – выполнить построчно без захода из текущей процедуры в вызываемые процедуры;

Step Out – выполнить остающиеся строки с заходом из текущей процедуры во все вызываемые процедуры;

Рисунок 5.46. Пункты меню

Debug системы VBA

Run To Cursor – выполнить до позиции курсора в текущей процеду-

ре;

Add Watch – добавить объект или переменную в окно просмотра

Watches.

Toggle Breakpoints – задать точку останова в программе. Точку останова можно также задать щелчком мыши на левой вертикальной рамке окна программы.

Так, задав точку останова на четвертой строке Макроса1 и запустив макрос, после остановки выполнения программы на этой строке в окне Watches можно просмотреть все свойства текущего документа (см. рисунок 5.49). Во время останова можно просмотреть значения свойств и пере-

420