Операторы конкатенации строк
Конкатенация – объединение двух или более строк. Конкатенация строк осуществляется с помощью оператора «&» - амперсенд или «+». Синтаксис:
Строка1 & Строка2
Результат: Строка1Строка2.
Операндами могут быть любые выражения строкового или числового типа. Результат всегда string.
Операнд со значением Null и Empty считается пустой строкой.
Для оператора «+» синтаксис такой же, но если операндами являются числа или строки, одну из которых можно преобразовать в число, то сложение будет арифметическим и результат будет иметь численный тип данных.
Примеры:
«А» + «В» = «АВ»
«1» + «2» = «12»
«1» + 2 = 3
Старшинство операторов при вычислении сложных выражений
Сложным называется выражение, состоящее из нескольких выражений.
· Первыми вычисляются части выражения, взятые в скобки.
· Вычисления выполняются в порядке старшинства операций (далее).
· Операции с одинаковым приоритетом выполняются слева направо.
Общий порядок операторов:
· Арифметические операции.
· Конкатенация строк.
· Операторы сравнения.
· Логические операторы.
Таблица приоритетов операций
Таблица 10
Операция
| Пояснения
| ^
| Возведение в степень
| -
| Унарный минус
| *, /
|
| \
|
| Mod
|
| +, -
|
| &
|
| <, >, <=, >=, <>, =, Is, Like
| Для группирования операций сравнения применяются скобки
| Not
|
| And
|
| Or
|
| Xor
|
| Eqv
|
| Imp
|
|
Инструкции ввода и вывода данных
MsgBox и InputBox
Инструкции ввода и вывода используются для ввода данных в программу из внешних источников и вывода данных на экран или в табличную часть файла MS Excel.
Инструкция MsgBox – встроенная процедура VBA, которая служит для вывода текста на экран. Эта инструкция имеет пять аргументов, но только один из них обязательный. Синтаксис:
MsgBox (Prompt [, Buttons, Title, HelpFile, Context])
Prompt - “текст”
Buttons – числовое выражение, определяющее сколько и каких кнопок будет содержаться в окне. По умолчанию окно содержит только одну кнопку «Ок» или «Да». Аргумент Buttons также определяет кнопку, активную по умолчанию, и наличие в окне стандартных значков вроде знака информации, восклицательного или вопросительного знаков (Critical, Information, Exclamation, Question). Более подробно о кнопках – позже.
Title - Заголовок окна – поименованная или непоименованная константа или переменная, содержащая текст, по умолчанию “Microsoft Excel”.
HelpFile – имя файла помощи, создаваемый пользователем, строка (создается в специальной программе).
Context – числовое выражение, определяющее тематический раздел файла помощи.
Пример:
MsgBox ”Hello World!”, , “Окно приветствия”
Инструкция MsgBox может работать как процедура и как функция. Процедура – последовательность заданных действий, результатом работы которой является преобразование данных. Функция – то же что и процедура, но она всегда имеет возвращаемое значение. В том случае, когда MsgBox используется только для вывода информации на экран, нужно использовать процедуру, т.к. ни какого значения после вывода информации в программу возвращать не нужно. Синтаксис функции и процедуры отличается наличием круглых скобок, в которые заключаются аргументы. Аргументы процедуры не заключаются в скобки, а записываются через пробел после имени процедуры, как в примере. Аргументы функции записываются в круглых скобках и тогда синтаксис использования MsgBox выглядит по другому:
Переменная = MsgBox(“Вы прилежный студент?”, vbYesNo, “Самоанализ”)
В данном примере на экране появится окно с вопросом, окно будет иметь имя “Самоанализ” и после строки вопроса в окне будут находиться кнопки Yes и No. Возвращаемым значением функции MsgBox является код нажатой пользователем кнопки, оно присваивается переменной. Подробно использование инструкции MsgBox в качестве функции будет рассмотрено позже.
Инструкция InputBox – функция, с помощью которой можно получать данные от пользователя, сохранять их в переменной, обрабатывать и использовать их.
Функция InputBox выводит на экран окно с текстом, предлагающим ввести некоторое значение, и полем ввода для этого значения. В окне присутствуют кнопки ОК и Cancel. Задается текст приглашения и заголовок окна, синтаксис:
Строка = InputBox (Prompt [,Title, Default, XPos, YPos, HelpFile, Context])
Строка – любая переменная, в которой может храниться строковое выражение (String или Variant),
Prompt - Приглашение (обязательный аргумент) – поименованная или непоименованная константа или переменная, содержащая текст.
Title - Заголовок окна (необязательный аргумент) -поименованная или непоименованная константа или переменная, содержащая текст, по умолчанию “Microsoft Excel”.
Default – значение по умолчанию (необязательный аргумент) - строка, которое размещается в поле ввода.
XPos, YPos – координаты положения (необязательный аргумент) – любые числовые выражения, позиция окна функции InputBox, задаются координаты левого верхнего угла окна.
HelpFile – имя файла помощи, создаваемый пользователем(необязатедльный аргумент), строка (создается в специальной программе).
Context – числовое выражение, оперделяющее тематический раздел файла помощи (необязательный аргумент).
При написании программы на любом языке программирования, в том числе и на VBА, неизбежно возникают ошибки. Ошибки бывают разного рода.
Синтаксические ошибки
Синтаксис определяет специфический порядок слов и символов, составляющих правильную инструкцию VBA. Синтаксические ошибки – самый распространенный вид ошибок. К ним относятся пропущенные запятые, недостающие кавычки, отсутствующие обязательные аргументы и т.д.
При написании или изменении строки программного кода, VBA делает синтаксический анализ строки в тот момент, когда курсор покидает эту строку. После этого происходит интерпретация этой строки, и при успешном ее завершении разные части строки раскрашиваются в специальные цвета: ключевые (служебные) слова выделяются голубым, комментарии - зеленым, остальное – черным цветом (такие цвета используются по умолчанию, их можно изменить в настройках).
Если VBA находит в строке ошибку, то вся строка окрашивается красным цветом и выводится сообщение об ошибке.
Рассмотрим пример возникновения синтаксической ошибки на примере процедуры MsgBox.
MsgBox ”Hello World!”, , Окно приветствия
Пропущены кавычки. VBA считает слово ОКНО переменной (с переменными мы познакомимся позже) и ждет конца строки после него, однако далее он встречает еще одну «переменую» в его понимании, что противоречит синтаксису операции MsgBox. Поэтому в данном случае будет выделено красным слово ПРИВЕТСТВИЯ, т.к. оно считается ошибочным.
Ошибки синтаксиса обозначается предложением Compile error. Окно сообщения об ошибке содержит две кнопки: «Ок» и «Справка» или «Help».
«Ок» - сообщение об ошибке исчезает, можно исправлять ошибки в редакторе VBA.
«Справка» - получение справки по этой ошибке, после чего так же можно исправлять ошибку.
После редактирования строки, содержащей ошибку и удаления с нее курсора, VBA вновь производит синтаксический анализ и интерпретацию строки.
Бывают случаи, когда VBA не может определить тип ошибки, в таком случае окно сообщения об ошибке будет оповещать лишь о наличии ошибки, не сообщая о ее характере.
Если ошибка возникла при использовании какого-либо служебного слова языка VBA, и вы не знаете, как ее исправить, следует установить курсор в начале этого слова и нажать клавишу <F1>. VBA откроет окно справки, в котором будет описано использование данного оператора и процедуры.
Ошибки при выполнении
Возможны случаи, когда правильно написанный в синтаксическом отношении текст программы невозможно выполнить, например, могут быть пропущены аргументы процедуры, или не соответствовать определенному типу данных, доступ к несуществующим файлам, папкам и т.д., ошибка в логике программы и др.
Ошибки, выявляемые при выполнении программы, называются ошибками времени выполнения (run time error).
Пример:
MsgBox ”Hello World!”, ”Окно приветствия”
VBA не видит ошибки, но при выполнении, обнаруживается несовпадение типа второго аргумента. Ошибка – несовпадение типов (type mismatch).
Окно сообщений об ошибке времени выполнения содержит четыре кнопки:
Continue – позволяет продолжить выполнение макроса не смотря на ошибку. Не все ошибки позволяют продолжить выполнение макроса, в этом случае кнопка заблокирована.
End – завершение выполнение макроса.
Debug – перевод VBA в режим останова и позволяет воспользоваться средствами отладки, чтобы отследить и устранить ошибку. При этом автоматически производится переключение в редактор VBA.
Help – вызов справки по возникшей ошибке.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2025 stydopedia.ru Все материалы защищены законодательством РФ.
|