Выводит на экран диалоговое окно содержащее сообщение и поле ввода

Обновлено: 02.07.2024

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

InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])

default — строковое выражение, Отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, поле ввода изображается пустым

xpos — числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана. Если этот аргумент опущен, диалоговое окно выравнивается по центру экрана по горизонтали

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

helpfile — строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот аргумент указан, необходимо наличие также аргумента context

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

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

MsgBox (prompt [, buttons] [, title] [, helpfile, context])

title — строковое выражение, отображаемое в строке , заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения

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

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

Таблица 11.1. Значения аргумента buttons процедуры MsgBox, определяющие отображаемые кнопки в диалоговом окне

Константа Значение Отображаются кнопки
vbOKOnly 0
VbOKCancel 1
VbAbortRetrylgnore 2
VbYesNoCancel 3
VbYesNo 4
VbRetryCancel 5

Таблица 11.2. Значения аргумента buttons процедуры м$двох, определяющие отображаемые информационные значки в диалоговом окне

Таблица 11.3. Значения аргумента buttons процедуры MsgBox, определяющие

основную кнопку в диалоговом окне

Номер основной кнопки

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

Нажатая кнопка

Рис. 11.1. Диалоговое окно Пример окна ввода

Рис. 11.2. Диалоговое окно

Private Sub ТестОкон()

Dim ИмяКлиента As String

' Ввод имени пользователя

ИмяКлиента = InputBox("Введите ваше имя", "Пример окна ввода")

' Реакция программы на ввод имени пользователя

If, ИмяКлиента <> "" Then

MsgBox "Привет, " & ИмяКлиента, vbInformation,

MsgBox "Невежа, ты забыл ввести свое имя " & ИмяКлиента,

Dim Кнопка As Integer

' В переменную Кнопка вводится целое число, возвращаемое MsgBox

' при нажатии кнопки

' В зависимости от значения переменной Кнопка,

Select Case Кнопка Case vbYes

MsgBox "Выбрали Да", vblnformation, "Еще пример" Case vbNo

MsgBox "Выбрали Нет", vblnformation, "Еще пример" Case vbCancel

MsgBox "Выбрали Отмена", vblnformation, "Еще пример"

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

  • Инструкции описания
  • Инструкции присвоения
  • Исполняемые инструкции

Оператор присвоения присваивает значение выражения переменной, константе или свойству объекта. Оператор присвоения всегда включает знак равенства (=).

[Let] Переменная (или Постоянная или Свойство Объекта) = Выражение

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

переменной х будет присвоено 4.

Для присвоения переменной ссылки на объект применяется инструкция Set. В следующем примере инструкция Set присваивает переменной Область диапазон А1:B3:

Set Область = Range("Al:B3")

В общем случае инструкция set имеет следующий синтаксис:

  • ключевое слово New используется при создании нового экземпляра класса;
  • ключевое слово Nothing позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (вольно говоря, она удаляет объект из памяти).

Перенос строки

Расположение символов (пробел) + (Знак подчеркивания) в конце строки обеспечивает то, что последующая строка является продолжением предыдущей. При этом надо помнить, что:

  • Нельзя разбивать переносом строковые константы
  • Допустимо не более семи продолжений одной и той же строки
  • Сама строка не может состоять более, чем из 1024 символов

В следующем примере первая из конструкций является разбиением второй на две строки:

у = sin(Application.Pi()*х) + (1 + х)^(1/2)/ (1 + х^2)

у = Sin (Application. Pi ()*x) + (1 + х)^(1/2)/(1 + х^2)

Работая с.программой, удобно использовать комментарии, т. е. фрагменты текста программы, не являющиеся программными кодами и игнорируемые компилятором. Комментарии выполняют две важные функции:

  1. Делают программу легко читаемой, поясняя смысл программных кодов и алгоритма.
  2. Временно отключают фрагменты программы при ее отладке. В языке VBA существуют два способа ввода комментариев:
  • Применение апострофа (')• Его можно ставить в любом месте строки. При этом все символы, начиная от апострофа до конца строки, будут восприниматься компилятором как комментарий.
  • Применение зарезервированного слова Rem вместо апострофа.

Ниже приведен пример использования комментариев в тексте программы:

Dim a As Integer

' а — целая переменная

Dim b As String

b — строковая переменная

Расположение нескольких операторов на одной строке

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

2. х = х + 1:у = х + 2

Операторы перехода и выбора

Перечислим операторы перехода и выбора VBA.

Оператор безусловного перехода.

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

If Условие Then [Инструкции] [Else Инструкции else]

Если Условие принимает значение True, то выполняется инструкция (или инструкции) после Then, если False, то выполняется инструкция (или инструкции) после Else. Ветвь Else является необязательной.

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

If Условие Then [Инструкции]

[Elself Условие-n Then [Инструкции

elseif ] . . . [Else [Инструкции else] ] End If Оператор выбора. Синтаксис: Select Case выражение [Case списокВыражений-1 [ инструкции- 1] ]

[Case списокВыражений-n [инструкции-п] ] [Case Else [инструкции else] ]

инструкции-n (необязательная часть) - одна или несколько инструкций, выполняемых в том случае, если выражение совпадает с любым компонентом списка список-Выражений-n инструкции else (необязательная часть) - одна или несколько инструкций, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case

On Error GoTo строка

Активизирует подпрограмму обработки ошибок, начало которой определяется обязательным аргументом строка, значением последнего может быть любая метка строки или номер строки. Для того чтобы предотвратить выполнение программы обработки ошибок в тех случаях, когда ошибка не возникла, необходимо помещать соответствующую инструкцию Exit Sub, Exit Function или Exit Property сразу после подпрограммы обработки ошибки, как в следующем примере:

Sub InitializeMatrix (Varl, Var2, Var3, Var4) On Error GoTo ОбработкаОшибок

Exit Sub ОбработкаОшибок :

В этом примере программа обработки ошибок помещена между инструкциями Exit Sub и End Sub, что позволяет отделить ее от части программы, соответствующей нормальному ходу выполнения

On Error Resume Next

Указывает, что при возникновении ошибки происходит передача управления на инструкцию, непосредственно следующую за инструкцией, вызвавшей ошибку

On Error GoTo 0

Отключает любой активизированный обработчик ошибок в текущей процедуре

Операторы повтора

Перечислим операторы повтора VBA.

For Счетчик = Начало То Конец [Step Шаг] [Инструкции]

For Each - Next Do Until — Loop

Do — Loop While Do While — Loop

[Exit For] [Инструкции] Next [Счетчик] Повторяет выполнение группы инструкций, пока Счетчик изменяется от начального значения до конечного с указанным шагом. Если Шаг не указан, то он полагается равным 1.

Альтернативный способ выхода из цикла предоставляет инструкция Exit For

For Each Элемент

In Группа [Инструкции] [Exit For] [Инструкции]

Повторяет выполнение группы инструкций для каждого элемента массива или семейства. Альтернативный способ выхода из цикла предоставляет инструкция Exit For

Do [While Условие] [Инструкции] [Exit Do] [Инструкции] Loop

Повторяет выполнение набора инструкций, пока условие имеет значение True. Условие проверяется после выполнения инструкции по крайней мере один раз. Альтернативный способ выхода из цикла предоставляет инструкция Exit Do

D o [Инструкции] [Exit Do] [Инструкции] Loop [While Условие]

Повторяет выполнение набора инструкций, пока условие имеет значение True. Сначала выполняется инструкция, а потом проверяется условие. Альтернативный способ выхода из цикла предоставляет инструкция Exit Do

Do [While Условие] [Инструкции] [Exit Do]

Do — Loop Until While — Wend

[Инструкции] Loop Повторяет выполнение набора инструкций, пока условие не примет значение True. Условие проверяется после выполнения инструкции по крайней мере один раз. Альтернативный способ выхода из цикла предоставляет инструкция Exit Do

Do [Инструкции] [Exit Do] [Инструкции] Loop [While Условие]

Повторяет выполнение набора инструкций, пока условие не примет значение True. Сначала выполняется инструкция, а потом проверяется условие. Альтернативный способ выхода из цикла предоставляет инструкция Exit Do

While Условие [Инструкции] Wend

Выполняет последовательность инструкций, пока заданное условие имеет значение True

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

Имя константы; должно соответствовать стандартным соглашениям об именах переменных

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

Чтобы указать компилятору, какие фрагменты кода компилировать при разных условиях, используется инструкция lif. Оператор if является объектом компилирования в отличие от инструкции lif, которая является служебной пометкой в тексте, принимаемой компилятором к сведению.

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

IConst WinPl = 1

' если Windows95, то Const WinPl = 1

' если Windows NT, то Const WinPl = 2

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

[Private | Public] [Static] Sub Имя [(СписокАргументов)] [Инструкции]

[Exit Sub] [Инструкции]

Указывает, что процедура Sub доступна для всех других процедур во всех модулях

Указывает, что процедура sub доступна для других процедур только того модуля, в котором она описана

Указывает, что локальные переменные процедуры sub сохраняются в промежутках времени между вызовами этой процедуры

Имя процедуры Sub, удовлетворяющее стандартным правилам именования переменных

Список переменных, представляющий аргументы, которые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой

Любая группа инструкций, выполняемых в процедуре

Инструкция Exit sub приводит к немедленному выходу из процедуры sub.

Синтаксис элемента СписокАргументов:

[Optional] [ByVal | ByRef] [ParamArray] имяПеременной[( )]

[As тип] [= поУмолчанию]

Ключевое слово, указывающее, что аргумент не является обязательным. При использовании этого элемента все последующие аргументы, которые содержатся в списке СписокАргументов, также должны быть необязательными и описаны с помощью ключевого слова optional. Все аргументы, описанные как Optional, должны иметь тип variant. He допускается использование ключевого слова Optional для любого из аргументов, если используется ключевое слово ParamArray

Указывает, что этот аргумент передается по значению

Указывает, что этот аргумент передается по ссылке. Описание ByRef используется в VBA по умолчанию

Используется только в качестве последнего элемента в списке СписокАргументов для указания, что конечным аргументом является описанный как Optional массив значений типа variant. Ключевое слово paramArray позволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами Byval, ByRef или Optional

Имя переменной, удовлетворяющее стандартным правилам именования переменных

Тип данных аргумента, переданного в процедуру; поддерживаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только строки

переменной длины), object, variant. Если отсутствует ключевое слово Optional, могут быть также указаны определяемый пользователем тип или объектный тип

Любая константа или выражение, дающее константу. Используется только вместе с параметром optional. Если указан тип object, единственным значением по умолчанию может быть значение Nothing

Приведенный ниже синтаксис описывает имя, аргументы и текст программы, составляющие тело процедуры Function.

[Public I Private] [Static] Function Имя [(СписокАргументов)]

[Имя = Выражение] End Function

Синтаксис инструкции Function содержит те же элементы, что и sub. Инструкция Exit Function приводит к немедленному выходу из процедуры Function.

Подобно процедуре Sub, процедура Function является самостоятельной процедурой, которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Однако в отличие от процедуры sub, когда требуется использовать возвращаемое функцией значение, .процедура Function может применяться в правой части выражения, как и любая другая встроенная функция, например, cos.

Процедура Function вызывается в выражении по своему имени, за которым следует список аргументов в скобках.

Для возврата значения из функции следует присвоить значение имени функции. Любое число таких инструкций присвоения может находиться в любом месте процедуры.

Переход в подпрограмму и возвращение из подпрограммы

В VBA от первоначальных версий BASIC сохранилась конструкция подпрограммы GoSub- Return, которая в настоящее время редко используется. Для полноты изложения вкратце напомним синтаксис этой инструкции.

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

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

Вызов процедуры sub из другой процедуры можно произвести несколькими способами.

Первый способ вызова процедуры Sub: ИмяПроцедуры СписокФактическихПараметров

Упрощенный синтаксис обращения к функции:

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

Заголовок – выражение типа String , отображаемое в строке заголовка диалогового окна;

Позиция_Х, Позиция Y – координаты левого верхнего угла диалогового окна. Начало координат находится в левом верхнем углу экрана, ось X направлена вправо, ось Y – направлена вниз. Эти два аргумента позволяют управлять положением диалогового окна на экране.

6.1. Ввод данных с помощью функции InputBox

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

2. Запустите Visual Basic и сохраните проект в рабочей папке. При этом сохраните форму под именем Form1, проект - под именем Project1.

3. Разместите на форме Form1 восемь объектов, как это изображено на рис. 6.1.


Здесь предполагается следующее назначение объектов:

- надпись Label1 предназначена для размещения информации об исполнителях задания;

- Label2 , Label3, Label4 – отображают результаты;

- щелчок на кнопках Command1, Command2, Command3 приведет к выполнению соответствующих событийных процедур;

- щелчок на кнопке Command4 будет означать прекращение выполнения проекта.

4. Задайте значения свойств такими, чтобы форма приобрела вид, показанный на рис. 6.2.


5. Сохраните проект.

6. Дважды щелкните на кнопке Выход. В появившемся окне кода будет отображена процедура Command4_Click . Введите инструкцию End для прекращения выполнения программы. После этого программный код процедуры должен выглядеть так:

Private Sub Command4_Click()

7. Дважды щелкните на кнопке InputBox . В появившемся окне кода будет отображена процедура Command1_Click .

8. Введите операторы для описания двух переменных и вызова функции InputBox :

Dim Подсказка, ПолноеИмя

Подсказка = ”Пожалуйста, введите Ваше имя”

Вы объявили с помощью инструкции Dim две переменных
Подсказка и ПолноеИмя (тип переменных явно не указан, следовательно, объявлен по умолчанию, а по умолчанию Visual Basic назначает тип Variant ). Во второй строке переменной Подсказка присваивается текстовая константа. В следующей строке вызывается функция InputBox . При выполнении эта функция выводит диалоговое окно с запросом-подсказкой на ввод данных пользователем (рис. 6.3).


Значение аргумента функции InputBox (в данном случае – переменной Подсказка ) выведено в виде запроса-подсказки в окне функции InputBox . Значением функции InputBox будет строка символов, которую пользователь наберет в поле окна функции InputBox . Это возвращаемое значение функцией InputBox в третьей строке кода присваивается переменной ПолноеИмя . Четвертый оператор значение переменной ПолноеИмя присваивает свойству Caption надписи Label2.

9. Сохраните проект.

10. Щелкните на кнопке Start (Пуск) на панели инструментов для запуска программы. Программа будет запущена.

11. Щелкните на кнопке InputBox. Visual Basic начнет выполнять процедуру Command1_Click , и на экране появится диалоговое окно изображенного выше запроса-подсказки.

12. Введите Ваше имя и отчество, затем щелкните на кнопке ОК. Функция InputBox возвращает программе набранную Вами строку символов, значение которой присваивается переменной ПолноеИмя . Затем программа отображает значение переменной ПолноеИмя в поле надписи Label2.

13. Щелкните на кнопке Выход для остановки программы.

14. С помощью функции InputBox могут быть заданы значения числовым переменным. Дополните код процедуры Command1_Click :

Private Sub Command1_Click()

Dim Приглашение , ПолноеИмя

Dim i As Integer, s As Single

Приглашение = "Пожалуйста, введите Ваше имя!"

i = InputBox("Задайте значение i")

‘В этой инструкции

‘выполняется преобразование возвращаемой

‘функцией InputBox строки символов

Label3.Caption = "i Courier New";mso-ansi-language:EN-US'> s = InputBox("Задайте значение s")

‘В этой инструкции

‘выполняется преобразование возвращаемой

‘функцией InputBox строки символов в число

‘ c плавающей точкой обычной точности

Label4.Caption = "s Courier New"'>End Sub

Теперь в процедуре Command1_Click дополнительно объявлены переменная i целого типа и переменная s с плавающей точкой обычной точности. Этим переменным также задаются значения с помощью обращений к функции InputBox . Полученные переменными i и s значения затем отображаются в полях надписей Label3 и Label4 соответственно.

15. Сохраните проект.

16. Щелкните на кнопке Start (Пуск) на панели инструментов для запуска программы.

17. Щелкните на кнопке InputBox . Visual Basic начнет выполнять процедуру Command1_Click . Теперь диалоговое окно запроса-подсказки функции InputBox последовательно появится на экране три раза.

19. Щелкните на кнопке Выход для остановки программы.

6.2. Вывод данных с помощью метода Print

При помощи метода Print можно печатать тексты на форме, а также на изображении. Текст должен при этом стоять в кавычках (").

Print "Эй, студент! Привет!"

Эй, студент! Привет!

В методе Print можно выполнять вычисления, например:

выдаст на форме:

Всё, что стоит после слова Print в кавычках, при выполнении компьютером, будет символ за символом выведено на форме. А всё, что стоит справа от Print не в кавычках, будет вычислено компьютером и выведено на форме.

Так, к примеру, 2*3 для компьютера означает результат умножения 2 на 3 .

Синтаксис метода Print :

[объект.] Print [СписокВывода]

Form1.Print “ Это форма Form1”

Если же форма Form1 является текущей, то имя объекта в команде может быть опущено и команда будет записана короче:

Print “Это форма Form1”

Если список вывода не заканчивается точкой с запятой (;) или запятой (,), то каждое обращение к методу Print начинает вывод в следующей строке. Если список вывода заканчивается точкой с запятой (;), то следующее обращение к методу Print приведет к продолжению печати в той же строке без перерыва. Если же список вывода заканчивается запятой (,), то следующее обращение к методу Print приведет к продолжению печати в той же строке с некоторым отступом.

Если нужно распечатать значения нескольких данных в одной строке, то все их нужно перечислить после команды Print в
СпискеВывода, например, в результате выполнения пары команд:

Print "2*2 всё ещё равно "; 2*2;”,”

Print " а 59 умножить на ноль равно "; 59 * 0;”.”

2*2 всё ещё равно 4,

а 59 умножить на ноль равно 0.

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

Например, следующая команда очистит форму Form1:

Если форма Form1 является текущей, то имя формы можно не указывать.

Координаты вывода установливаются в форме командами:

[объект.] CurrentX = координата

[объект.] CurrentY = координата

Например, выполнение вывода текста в текущей форме, начиная с левого верхнего угла, устанавливается командами:

Следует иметь в виду, что начало координат находится в левом верхнем углу объекта, ось координат Х направлена вправо, ось координат Y направлена вниз, значения координат задаются в твипах
(1 сантиметр равен примерно 567 твипам).

Для форматирования чисел, дат и времени применяется функция Format , которая преобразует их в строку символов. Она позволяет задать, сколько десятичных разрядов отведено на запись числа, нужны или нет лидирующие нули, замыкающие нули, обозначения валюты, разделители тысяч.

Вот упрощенный синтаксис функции Format :

Format (Выражение, Формат).

Ниже приводятся примеры преобразования чисел функцией Format :

Обращение к функции Результат

Format (315.4,”00000.00”) 00315.40

Теперь надо опробовать работу метода Print . Продолжайте работу с проектом Project1 .

20. Создайте вторую форму, на которой будут выводиться результаты печати. Для этого щелкните на кнопке Add Form панели инструментов, выберите Form на вкладке New и щелкните на кнопке
Открыть. В окне конструктора форм появится форма Form2, а в окне проекта видно, что теперь проект содержит две формы.

21. Если окна макета форм на экране нет, то откройте его щелчком на кнопке Form Layout Window панели инструментов. Методом перетаскивания разместите обе формы в окне макета форм так, чтобы они не перекрывали друг друга. Тогда при выполнении проекта Вы их сможете видеть на экране одновременно.

22. Откройте окно кода процедуры Command2_Click и введите приведенный далее код.

Private Sub Command2_Click()

Dim i As Integer, s As Single, d As Date

i = InputBox("Задайте целое число")

s = Rnd 'Функция Rnd возвращает случайное число

'из диапазона [0,1], т.е. 0

d = InputBox("Задайте дату в формате дд.мм.гг")

Form2.Show 'Метод Show делает форму видимой

Form2.Print "i Courier New";mso-ansi-language:EN-US'> Form2.Print "s Courier New";mso-ansi-language:EN-US'> Form2.Print "d Courier New"; mso-ansi-language:EN-US'> End Sub

23. Сохраните проект.

24. Щелкните на кнопке Start (Пуск) на панели инструментов для запуска программы.

25. Щелкните на кнопке Print. Visual Basic начнет выполнять процедуру Command2_Click .

26. Введите данные и проанализируйте полученные результаты.

27. Остановите выполнение приложения.

28. Повторите несколько раз предыдущие четыре пункта задания, варьируя вводимые данные.

Замените две последние инструкции процедуры Form2.Print

Form2.Print "s Courier New";mso-ansi-language:EN-US'> Form2.Print "d Times New Roman"; mso-ansi-language:EN-US'>

на следующие инструкции

Form2.Print "d mso-spacerun: yes"> _

"dddd, dd mmmm, yyyy год ")

29. Сохраните проект.

30. Щелкните на кнопке Start (Пуск) на панели инструментов для запуска программы.

31. Щелкните на кнопке Print. Введите данные. В качестве значения переменной d задайте дату своего рождения. Проанализируйте полученные результаты. Если Вы не знали раньше, в какой день недели Вы родились, то теперь Вам это известно.

32. Остановите выполнение приложения.

6.3. Вывод данных с помощью функции MsgBox

Для вывода значения некоторого выражения может быть применена функция MsgBox . Для этого следует обратиться к функции MsgBox , пользуясь, например, упрощенным синтаксисом:

33. Дважды щелкните на кнопке Command3 в Form1 проекта Project1 . В окне Code отобразится процедура Command3_Click .

34. Скопируйте в эту процедуру код инструкций процедуры Command2_Click .

34.1. Для этого откройте окно кода процедуры Command2_Click .

34.2. Выделите все инструкции процедуры, кроме первой и последней строки, щелкните на кнопке Copy (Копировать) панели инструментов и закройте окно процедуры Command2_Click .

34.3. В открывшемся окне процедуры Command3_Click установите курсор в начало первой после заголовка процедуры строки и щелкните на кнопке Paste (Вставить) панели инструментов.

35. Удалите строку с инструкцией:
Form2.Show 'Метод Show делает форму видимой

36. Замените три указанные ниже инструкции кода

Form2.Print "d mso-spacerun: yes"> _

"dddd, dd mmmm, yyyy год ")

на три инструкции:

MsgBox ("i= " & i), , "Вывод переменной i"

"Вывод переменной s"

MsgBox ("d Courier New"; color:windowtext;mso-ansi-language:EN-US'>"dddd, dd mmmm, yyyy год ")), , _

"Вывод переменной d"

После всех выполненных изменений программный код процедуры Command3_Click должен выглядеть так:

Private Sub Command3_Click()

Dim i As Integer, s As Single, d As Date

i = InputBox("Задайте целое число")

s = Rnd 'Функция Rnd возвращает случайное число

'из диапазона [0,1 ) , т.е. 0

d = InputBox("Задайте дату в формате дд.мм.гг")

MsgBox ("i= " & i), , "Вывод переменной i"

"Вывод переменной s "

MsgBox ("d Courier New"; color:windowtext;mso-ansi-language:EN-US'> "dddd, dd mmmm, yyyy год ")), , _

"Вывод переменной d"

37. Щелкните на кнопке Start (Пуск) на панели инструментов для запуска программы.

38. Щелкните на кнопке MsgBox, введите данные и проанализируйте полученные результаты. Первое из трех окон функции MsgBox будет выглядеть примерно так, как показано на
рис. 6.4.


40. Щелкните на кнопке Выход для остановки программы.

41. Продемонстрируйте работу Вашего проекта преподавателю.

42. Закройте Visual Basic.

43. Удалите Вашу рабочую папку на диске d.

6.4. Вопросы для контроля

1. Каково назначение функции InputBox?

2. Какой символ применяется во входном потоке для отделения целой части числа от дробной части?

3. В чем заключается действие метода Print?

4. Как выполнить очистку формы?

5. Как сделать форму видимой?

6. В чем состоит назначение функции Format?

7. Каково назначение функции MsgBox?

8. Можно ли управлять положением на экране диалогового окна функции InputBox ?

Стандартное диалоговое окно InputBox используется для ввода небольших фрагментов текста. Окно InputBox состоит из четырех элементов:

приглашение к вводу;

поле ввода со значением, предлагаемым по умолчанию;

две кнопки (ОК и Cancel).

Функция имеет следующий синтаксис:

InputBox(приглашение[, заголовок] [, умолчание] [, Хпоз][Yпоз][,файл справки, контекст]).

Заголовок — строковое выражение, отображаемое в заголовке диалогового окна. Если заголовок опущен, в строку заголовка помещается имя приложения.

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

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

Yпоз — числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и краем экрана. Если параметр опущен, то диалоговое окно помещается по вертикали примерно на 1/3 высоты экрана.

Возвращаемым значением данной функции является информация, вводимая пользователем. Visual Basic автоматически присваивает этой информации тип String. Если вместо ввода информации пользователь просто нажимает кнопку ОК или клавишу Enter, функция возвращает пустую строку (""). Функцию InputBox с двумя и большим числом аргументов можно использовать только в выражении. Наличие запятых, соответствующих отсутствующим аргументам, обязательно.

MsgBox текст[, опция] [, заголовок] [, файл справки, контекст].

переменная = MsgBox(TeKcr[, опция] [, заголовок] [, файл справки, контекст]).

Опция — дополнительная информация. Эта опция представляет собой числовое значение, составленное как сумма значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку. Таким образом, опция = Button + Icon + Default. Каждому из параметров соответствует числовое значение, узнать которое можно, вызвав справочную систему Visual Basic. Редактор программного кода позволяет сформировать значение опции, выбирая нужные значения из предлагаемого списка.

Заголовок — строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, то в строку заголовка помещается имя приложения.

Функцию MsgBox с двумя и более аргументами можно использовать только в выражении (присваивать переменной). Наличие запятых, соответствующих отсутствующим аргументам, является обязательным.

Операторы условного перехода в языке VBS

К управляющим структурам относятся операторы условного перехода и цикла. Оператор условного перехода позволяет выполнить те или иные строки программы в зависимости от логических условий. В языке VBScript он может использоваться в двух различных видах (строчный и блочный синтаксисы). Строчный синтаксис:If Then [Else ] Строчный синтаксис следует использовать для коротких, простых условных операторов. Пример строчного синтаксиса: If A Then [операторы]

[ElseIf Then [операторы-n]].

где: условие – логическое выражение, результатом вычисления которого может быть истина (True), ложь (False) или Null которое приравнивается к False (правила написания приведены далее в подразделе 5.3.1.11); операторы – один оператор или более (разделенных двоеточиями для строкового синтаксиса); выполняются, если условие истинно (True); условие-n – то же, что и условие; операторы-n – выполняются, если условие-n является истиной (True); else-операторы – один оператор или более, выполняющиеся, если предшествующие условия не были истинны. Когда выполняется блочный If, проверяется условие, и, если оно истинно (True), выполняются операторы, следующие за Then. Если условие не является истинным (False), каждое условие-n, идущее за ElseIf (если они есть) проверяется. Когда истинное значение найдено, выполняются операторы-n, следующие за Then после истинного условия, после чего программа выходит за End If (т. е. последующие ElseIf, если они есть, не проверяются). Если истинных условий для ElseIf не найдено, выполняются else-операторы, следующие за Else. Пример блочного синтаксиса:

a = 1 If a > 10 Then

MsgBox "a > 10" ElseIf a > 0 Then MsgBox "a > 0" 'будет выполнено только это!

ElseIf a = 1 Then MsgBox "a = 1"

Else MsgBox "Нет данных для заданного значения a "

Оператор выбора Case позволяет выполнить те или иные операторы в зависимости от множества значений заданного выражения или переменной. Синтаксис оператора выбора:

где: тест-выражение –любое числовое или строковое выражение; список_выр-n – список из одного или более выражений для соответствующего Case; операторы-n – один оператор или несколько, выполняющихся, если тест-выражение имеет то же значение, что и значение одного из выражений списка-n;

else-операторы-n – один оператор или несколько, выполняющихся, если тест-выражение не совпадает ни с одним из значений Case-структур.

Операторы цикла в языке VBS

Оператор циклапозволяет выполнить группу операторов несколько раз в соответствии с заданными условиями повтора. Существует несколько видов операторов цикла:

Do. Loop While. Wend For. Next For Each. Next.

Синтаксис оператора Do. Loopследующий (здесь и далее в фигурных скобках <> приведены два возможных варианта, разделенных вертикальной чертой |, один из которых необходимо использовать):

1) первый вариант – проверка условия в начале цикла

2) второй вариант – проверка условия в конце цикла

где: условие – логическое выражение, которое имеет значение истина (True) или ложь (False); значение условия Nullто же, что и False; для While (англ. пока) выполнение цикла продолжается, пока условие истинно, для Until (англ. до) – выход из цикла, когда условие истинно;

операторы – один или несколько операторов, выполнение которых повторяется, пока условие после While истинно (True)или условие после Until ложно (False);

Exit Do – может использоваться, как альтернативный выход из цикла (на следующую строку программы после Loop); любое количество Exit Do может быть помещено внутри цикла. Обычно эта команда используется с вычисляемым логическим выражением оператора If. Then.

Синтаксис оператора цикла While. Wend следующий: While [ ] Wend

Выполнение операторов цикла повторяется, пока истинно (True).

Синтаксис оператора цикла For. Next следующий:

For = To [Step ]
[ ]
[Exit For]
[ ]
Next

где: счетчик – числовая переменная, используемая как счетчик цикла; может быть положительной или отрицательной величиной; нач.знач. – начальное значение счетчика; кон.знач. – конечное значение счетчика; шаг – шаг изменения счетчика; на данную величину автоматически изменяется счетчик после каждого выполнения операторов цикла; если шаг не указан, значит он равен 1; операторы– выполняются повторно столько раз, сколько определено значениями, заданными для счетчика: один раз, много раз или ни одного;

Exit For– может использоваться, как альтернативный выход из цикла; обычно используется с проверкой условия выхода в операторе If. Then; выход выполняется на строку программы, следующую за Next.

Синтаксис оператора цикла For Each. Next следующий:

For Each In
[операторы]
[Exit For]
[операторы]
Next [ ]

элемент– переменная, которая используется для перебора всех элементов коллекции или массива;

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

Область видимости переменной задаётся при её декларации одним из ключевых слов:

§ Dim – объявляет локальные переменные, существующие только во время вызова процедур или функций, в которых они объявлены. Если переменная объявляется в разделе глобальных объявлений модуля или формы, то она доступна для всех процедур и функций этого модуля. Для других модулей она будет не видна.

§ Private - не может объявлять переменную внутри процедуры или функции, при объявлении в разделе глобальных объявлений модуля Dim и Private равнозначны.

§ Public – объявленная таким образом переменная является глобальной на уровне приложения и доступна из всех его модулей.

Приоритет операций

К основным арифметическим операциям относятся: сложение (+), вычитание (-), умножение (*), деление (/).

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

Скобки допускается вкладывать друг в друга произвольное число раз. Использование квадратных или фигурных скобок не допускается.

Правила присвоения имен в Visual Basic

При присвоении имен процедурам, константам, переменным и аргументам в модуле Visual Basic необходимо помнить, что

· Имена должны начинаться с буквы;

· Имена не должны содержать более 255 символов;

· Не следует использовать имена, совпадающие с названиями функций, инструкций, методов языка Visual Basic;

· Не допускается использование повторяющихся имен на одном уровне области определения.

Ввод данных

Ввод данных в программе

Ввод данных в программе осуществляется при помощи оператора присваивания. Оператор присваивания определяется знаком присваивания. (=), слева от которого располагается идентификатор переменной, а справа – некоторое выражение.

Ввод данных в диалоговом окне

Пример: х=Val(InputBox(“Введите х”, “Ввод х”))

Функция Val возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа.

Ввод данных в диалоговом окне

Для ввода данных из ячеек таблицы используется следующая инструкция:

ИмяПеременной=Worksheets(“Имя Листа”).Range(“Адрес или имя ячейки”).Value

Пример 1: х= Worksheets(“Лист1”).Range(“А2”).Value

Программы, использующие объектный подход часто содержат повторяющиеся элементы (объекты, свойства, методы). Для сокращения записи используется оператор With. В качестве Элемента_1, Элемента_2, Элемента_3 могут использоваться объекты, свойства и методы. Оператор записывается следующим образом:

With Элемент_1

Элемент_2

Элемент_3

End With

Ввод данных с листа Работа1, из ячеек с именами a, b, c Ввод данных с листа Работа1, из ячеек с адресами А1, А2, А3
With Worksheets(“Работа1”) а=.Range(“a”).Value b=.Range(“b”).Value c=.Range(“c”).Value End With With Worksheets(“Работа1”) а=.Range(“A1”).Value b=.Range(“A2”).Value c=.Range(“A3”).Value End With

Вывод результатов

Вывод результатов с использованием диалоговых окон

Элементарные функции

Табл. 2. Функции в среде Visual Basic и таблице Excel

Значение функции Встроенные функции Visual Basic Функции в таблице Excel
sin x sin(x) sin(x)
cos x cos(x) cos(x)
tg x tan(x) tan(x)
ctg x 1/tan(x) 1/tan(x)
arcsin x asin(x) asin(x)
arccos x acos(x) acos(x)
arctg x atn(x) atan(x)
sh x sinh(x) =(exp(x)-exp(-x))/2 sinh(x)
Значение функции Встроенные функции Visual Basic Функции в таблице Excel
ch x cosh(x) =(exp(x)+exp(-x))/2 cosh(x)
|x| abs(x) abs(x)
sqr(x) корень(x)
e x exp(x) exp(x)
ln x log(x) Ln(x)
lg x log(x)/log(10) Log10(x)
logax log(x)/log(a) log(x;a)

Прокрутить вверх


ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры.


Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор.


Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам.


Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.).

Читайте также: