Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
26
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Именование аргументов

В предыдущем примере мы применили оператор

iResult = Application.InputBox (“Введите число:” , , , , , , , 1)

Если в этом операторе вы пропустите хоть одну запятую, то, вероятно, получите сообщение об ошибке при его выполнении. Идентификация аргументов путем их местоположения в списке аргументов - большой недостаток подобных операторов. Для исправления этого недостатка VBA поддерживает именование аргументов. Использование имен аргументов позволяет задавать их в любом порядке. Например, в нашем случае оператор с заданным аргументом mun (type) можно записать так:

iResult = Application.InputBox (“Введите число:”, Type:=1)

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

Если экранная подсказка не отображается, выполните команду Tools > Options (Сервис > Параметры) и в открывшемся диалоговом окне Options (Параметры) на вкладке Editor (Редактор) установите флажок опции Auto Quick Info (Автоматическая экранная подсказка)/

Объединение текстовых строк

Если надо объединить несколько текстовых строк в одну, используется символ конкатенации (&) (в листинге 5.1 показано использование этого символа).

Листинг 5.1. Объединение строк

1: Sub ОбъединениеСтрок()

2:  Dim sName As String

3:  Dim sLongText As String

4:

5:  sName = InputBox (“Введите ваше имя: ”)

6:

7:  ‘Следующая строка для окна сообщения объединяет

8:  ‘слово “Привет” со значением переменной sName

9:  MsgBox “Привет” @ sName

10:

11:  sLongText = “Это пример объединения нескольких”

12:  sLongText = sLongText @ “строк в одну большую”

13:  sLongText = sLongText @ “строку.” @ vbNewLine

14:  sLongText = sLongText @ “vbNewLine - константа, позволяющая”

15:  sLongText = sLongText @ “начинать новую строку”

16:  MsgBox sLongText

17: End Sub

На рис. 5.6 показано второе окно сообщения, заданное в строке 16 листинга. С помощью символа конкатенации можно составлять строки, содержащие текст, значения переменных, числа и т.д.

Рис. 5.6. Объединение строк - полезное для создания текста сообщений

Резюме

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

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

Вопросы и ответы

Вопрос. Что лучше использовать: функцию InputBox или метод InputBox?

Ответ. Лучшим выбором будет метод InputBox, так как функция InputBox не обладает встроенными средствами обработки ошибок.

Вопрос. Что делать со значением, возвращаемым функцией или методом InputBox?

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

Вопрос. Где можно применить окна сообщений?

Ответ. Окна сообщений можно использовать как элементы интерфейса, позволяющиеся пользователю обмениваться информацией с приложением.