- Язык программирования Visual Basic for Applications (VBA): Управляющие конструкции языка. Встроенные функции. Функции ввода-вывода данных и сообщений
- Язык программирования Visual Basic for Applications (VBA): Обработка событий. Использование списков и полей со списками. Функции для работы со строками. Функции пользователя. Массивы данных
- Программное обеспечение ЭВМ и технологии программирования
- 3.9. Встроенные функции языка VBA
- 3.9.2. Функции преобразования и проверки типов данных
- 3.9.3. Строковые функции
Язык программирования Visual Basic for Applications (VBA): Управляющие конструкции языка. Встроенные функции. Функции ввода-вывода данных и сообщений
1. Msg Box — позволяет вывести диалоговое окно, содержащие сообщение пользователей в поле ввода значений переменной.
Msg Box (сообщение [кнопки] [заголовок] [справка, контекст])
2. Imput Box — выводит диалогов. окно сообщения пользователя для ввода Imput Box (, сообщение [, заголовок] [, по умолчанию] [,x-post] [,ypos] [, справка, контекст])
Язык программирования Visual Basic for Applications (VBA): Обработка событий. Использование списков и полей со списками. Функции для работы со строками. Функции пользователя. Массивы данных
При разработке способов и во время удаления программы.
1. во время разработки List Box — список, ComboBox — поле со списками.
2. Выделить этот элемент в форме.
3. В окне свойств/свойстве Лист набрать нужную строку линий добавления программ.
Функции для работы со строками.
1. Lenl () — позволяет определить длину или количество символов строки. Целая переменная =Len (строка).
2. Left () — целая переменная (строка, число-символов-слева).
3. Right () — целая переменная (строка, число _символов_справа).
4. mid () — целая переменная = Mid (строка, начало, длина_подстроки).
5. ihstr () — целая перемен. = In Str ()
6. val () — преобразов. цифр в число
Программное обеспечение ЭВМ и технологии программирования
Без программ (совокупности, команд, которые должен выполнять процессор) компьютер — не более чем простое переплетение бесполезных электронных схем.
Программное обеспечение (softwаrе) на данный момент составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информация с самыми различными целями. В зависимости от того, какие задачи выполняет то или иное программное обеспечение можно разделять все программное обеспечение на несколько групп:
1. Базовое программное обеспечение.
4. Инструментальные средства.
5. Прикладное программное обеспечение.
К Базовому программному обеспечению относят операционные системы и оболочки операционных систем.
Операционной системой называют совокупность программ, которая координирует работу компьютера и управляет размещением программ и данных в оперативной памяти компьютера, интерпретирует команды, управляет периферийными устройствами, распределяет аппаратные ресурсы.
Оболочки операционных систем обеспечивают удобный интерфейс (способ общения) для пользователя, программиста и компьютера.
Оболочки операционных систем дают возможность вводить команды операционных систем в более удобном для человека виде, с помощью выбора команд в предложенном оболочкой меню. Из наиболее распространенных оболочек можно назвать оболочки Norton Commander, DOS Shell, Windows2, 3.0, 3.11 и др.
К трансляторам относят программы, которые преобразуют команды программ, написанных на языках высокого уровня, таких как Qbasic, Pascal, С, Prolog, Ada и других, в команды записанные в машинных кодах, использующих двоичный алфавит. Эти программы можно назвать программами-переводчиками с языков программирования высокого уровня на машинный язык.
Трансляторы бывают двух видов: интерпретаторы и компиляторы. Интерпретаторы, преобразуя команду, записанную на каком либо языке программирования, в команду на машинном языке, сразу же дают указание машине выполнить ее, не записывая перевод. Компилятор же не выполняет команды, а просто переводит всю программу на машинный язык и записывает свой перевод в специальную, так называемую, исполнимую программу, программу, записанную в двоичном коде, которую ЭВМ поймет уже без переводчика.
Языки программирования, это программы, которые позволяют записывать алгоритмы решения каких-либо задач на том или ином языке программирования.
Инструментальные средства, которые называют еще утилитами (от англ. utility — полезность, удобство), включают в себя набор небольших вспомогательных специализированных обслуживающих программ, каждая из которых выполняет какую-либо одну рутинную, но необходимую операцию.
Прикладные программы предназначены для обработки самой разнообразной информации: текстовой, числовой, звуковой, графической.
Вопреки внешним различиям все программы должны выполнять некоторые общие основополагающие функции:
1. хранить информацию в ОЗУ;
2. помнить, где она находится;
3. извлекать ее определенным образом;
4. записывать информацию на внешние носители;
5. предъявлять ее для непосредственного восприятия и др.
3.9. Встроенные функции языка VBA
В языке программирования VBA предусмотрено несколько десятков встроенных функций . Они доступны в любой программе на языке VBA, при этом безразлично, в среде какого программного продукта мы находимся — Excel, Word, Access или, к примеру, AutoCAD. Используются они очень активно, и во многих ситуациях без них не обойтись. Профессиональные программисты применяют их совершенно автоматически, а обычным пользователям хочется посоветовать потратить несколько часов на знакомство с ними, потому что без знания этих функций эффективно работать в VBA не получится. Дополнительным аргументом в пользу их изучения является то, что практически идентичный набор функций есть в обычном Visual Basic и VBScript, а многие из этих функций с теми же названиями и синтаксисом встречаются и в других языках программирования — C++, Delphi, Java, JavaScript и т. п. В справке по VBA встроенные функции сгруппированы по буквам (рис. 3.2). Многие слушатели на курсах задавали вопрос: а нет ли справки по этим функциям на русском языке? К сожалению, такой справки мне найти не удалось, поэтому попытаюсь привести краткую справку в этой книге. Далее будет рассказано про большинство активно используемых функций языка VBA (математические функции, такие как косинус или тангенс, которые в практической работе почти не используются, и финансовые функции мы рассматривать не будем). Полный синтаксис функций для экономии места приводиться не будет: главное — понимание, что делает каждая функция и в каких ситуациях ее можно использовать. Функции в следующих разделах сгруппированы по своей функциональности. Если нужно найти информацию просто по имени функции, можно воспользоваться предметным указателем в конце книги.
3.9.2. Функции преобразования и проверки типов данных
В программах на VBA очень часто приходится преобразовывать значения из одного типа данных в другой. Приведу несколько типичных ситуаций, когда этим приходится заниматься: преобразование из строкового значения в числовое при приеме значения от пользователя через InputBox() ; преобразование значения даты/времени в строковое, когда нам нужно отобразить дату или время единообразно вне зависимости от региональных настроек на компьютерах пользователей; преобразование значения из строкового в дату/время для применения специальных функций даты/времени. Чаще всего для конвертации типов данных используются функции, имя которых складывается из префикса ‘C’ (от слова Convert ) и имени типа данных. Перечень этих функций следующий: CBool() , CByte() , CCur() , CDate() , CDbl() , CDec() , CInt() , CLng() , CSng() , CStr() , CVar() , CVDate() , CVErr() . Просмотреть, что в итоге получилось, можно при помощи функции TypeName() , которая возвращает имя используемого типа данных, например:
76 | Глава 3 |
nVar1 = CInt(InputBox(«Введите значение»)) MsgBox TypeName(nVar1) В данном случае эта функция вернет «Integer» . Кроме того, существует еще несколько полезных для конвертации функций. Str() — позволяет перевести числовое значение в строковое. Делает почти то же самое, что и CStr() , но при этом вставляет пробел перед положительными числами. Val() — «вытаскивает» из смеси цифр и букв только числовое значение. При этом функция читает данные слева направо и останавливается на первом нечисловом значении (допускается единственное нечисловое значение — точка, которая будет отделять целую часть от дробной). Очень удобно, когда у нас вперемежку с числовыми данными прописываются единицы измерения или валюта. IsNumeric() и IsDate() — проверяют значения на соответствие, чтобы не возникло ошибок при конвертации. Для проверки на соответствие специальным значениям можно использовать функции IsArray() , IsEmpty() , IsError() , IsMissing() , IsNull() и IsObject() . Все эти функции возвраща- ют True или False в зависимости от результатов проверки переданного им значения. Hex() и Oct() — преобразовывают десятичные данные в строковое представление шестнадцатеричных и восьмеричных значений.
3.9.3. Строковые функции
Это наиболее часто используемые функции. Требуются они постоянно, и необходимо знать их очень хорошо. Asc() — эта функция позволяет вернуть числовой код для переданного символа. Например, Asc(«D») вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr() , которая производит обратную операцию — возвращает символ по переданному его числовому коду. Например, такой код в Excel позволяет написать в ячейки с A1 по A20 последовательно буквы русского алфавита от A до У: Dim n, nCharCode As Integer n = 1 nCharCode = Asc(«А») Do While n
n = n + 1 nCharCode = nCharCode + 1 Loop Варианты этой функции — AscB() и AscW() . AscB() возвращает только первый байт числового кода для символа, а AscW() возвращает код для символа в кодировке Unicode. Chr() — возвращает символ по его числовому коду. Помимо того, что используется в паре с функцией Asc() (см. предыдущий пример), без нее не обойтись еще в одной ситуации: когда нужно вывести служебный символ. Например, нам нужно напечатать в Word значение «Газпром» (в кавычках). Кавычка — это служебный символ, и попытка использовать строку вида: Selection.Text = «»Газпром»» приведет к синтаксической ошибке. А вот так все будет в порядке: Selection.Text = Chr(34) & «Газпром» & Chr(34) Есть варианты этой функции — ChrB() и ChrW() . Работают аналогично таким же вариантам для функции Asc() . InStr() и InStrRev() — одни из самых популярных функций. Позволяют обнаружить в теле строковой переменной последовательность символов и вернуть ее позицию. Если последовательность не обнаружена, то возвращается 0. Функция InStr() ищет с начала строки, а InStrRev() — с конца. Left() , Right() , Mid() — позволяют взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно. Len() — возвращает число символов в строке (длину строки). Часто используется с циклами, операциями замены и т. п. LCase() и UCase() — переводят строку в нижний и верхний регистры соответственно. Часто используются для подготовки значения к сравнению, когда регистр не важен (фамилии, названия фирм, городов и т. п.). LSet() и RSet() — заполняют одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы. LTrim() , RTrim() , Trim() — убирают пробелы соответственно слева, справа или и слева, и справа. Replace() — заменяет в строке одну последовательность символов на другую. Space() и String() — возвращают строку из указанного вами количества пробелов или символов соответственно. Обычно используются для форма-