ЛАБ_информатика_5_A5
.pdfДля испо льзования именованных аргументов введите имя аргумента, двоеточие, знак равенства и значение аргумента. Синтаксис оп е- ратора (и, следовательно, имена аргументов) показаны в экранной по д- сказке, ко торая появляется после ввода оператора.
21. Использование других функций VBA
Встроенные функции VBA делятся на несколько категорий на основе общего назначения функций (математические, преобразования данных, даты и времени, строковые и работы с диском).
22. Математические функции
VBA предоставляет стандар тный набор математических ф ункций. В таблице приведены математические функции, имеющиеся в VBA. В этой таблице N означает любое численное выражение; все аргументы функций являю тся обязательными, если только не указано иначе.
Функции |
Возвращает/ действие |
|
(аргументы) |
||
|
||
Abs(N) |
Возвращает абсолютное значение N. |
|
Atn(N) |
Возвращает арктангенс N как угол в радианах. |
|
Cos(N) |
Косинус угла N, где N — это угол, измеренный в радианах. |
|
Exp(N) |
Возвращает константу е, возведенную в степень N. (е — это |
|
|
основание натуральных логарифмов и она (приблизительно) |
|
|
равна 2,718282). |
|
Fix(N) |
Возвращает целую часть N. Fix не округляет число, а отбрасы- |
|
|
вает любую дробную часть. Если N является отрицательным. |
|
|
Fix возвращает ближайшее отрицательное целое большее, чем |
|
|
или равное N. |
|
|
|
|
Int(N) |
Возвращает целую часть N. Int не округляет число, а отбрасы- |
|
|
вает любую дробную часть. Если N является отрицательным, |
|
|
Int возвращает ближайшее отрицательное целое меньшее, чем |
|
|
или равное N. |
|
|
|
|
Log(N) |
Возвращает натуральный логарифм N. |
|
|
|
|
Rnd(N) |
Возвращает случайное число; аргумент является необязатель- |
|
|
ным. Используйте функцию Rnd только после инициализации |
|
|
VBA-генератора случайных чисел оператором Randomize. |
|
|
|
|
Sgn(N) |
Возвращает знак числа: -1, если N — отрицательное; 1, если N |
|
|
— положительное; 0, если N равно 0. |
|
|
|
|
Sin(N) |
Возвращает синус угла; N — это угол, измеренный в радианах. |
|
Sqr(N) |
Возвращает корень квадратный из N. VBA отображает ошибку |
|
|
времени исполнения, если N — отрицательное. |
|
|
|
|
Tan(N) |
Возвращает тангенс угла; N — угол в радианах. |
|
|
|
Функции Fix и Int укорачивают целые , то есть, они отбрасывают дробную часть числа без округления. Единственное различие между
31
функциями Fix и Int — э то то, как они обрабатывают отрицательные числа.
Можно также писать собственные функции для создания производных математических функций.
23. Функции преобразования данных
Visual Basic предоставляет несколько функций для преобразования о д- ного типа данных в другой. Э ти функции испо льзуются для устранения ошибок несовпадения типов и обеспечения явного контроля за типами данных в выражениях.
В таблице приведены функции преобразования данных в VBA . В э той таблице N — э то любое численное, S — любое строковое, а Е — выражение любого типа . Аргументы каждой функции являю тся обязательными, если не указано иначе.
Функция |
Возвращает/действие |
(аргументы) |
|
Asc(S) |
Возвращает число кода символа, соответствующее первой |
|
букве строки S. Буква «А», например, имеет код символа 65. |
Chr (N) |
Возвращает строку из одного символа, соответствующего коду |
|
символа N, который должен быть числом между 0 и 255, |
|
включительно. Код символа 65, например, возвращает букву |
|
«А»,перевод строки – число 13 |
Format(Е, |
Возвращает строку, содержащую значение, представленное |
S) |
выражением Е, в формате в соответствии с инструкциями, |
|
содержащимися в S. |
|
|
Hex(N) |
Возвращает строку, содержащую шестнадцатиричное пред- |
|
ставление N. |
|
|
Oct(N) |
Возвращает строку, содержащую восьмеричное представление |
|
N. |
|
|
RGB (N, N, |
Возвращает целое типа Long, представляющее значение ос- |
N) |
новных цветов изображения. N в каждом аргументе должно |
|
быть целым в диапазоне 0-255, включительно. Аргументы |
|
(слева направо) — это значения для красного, зеленого и сине- |
|
го цвета. |
|
|
Str (N) |
Возвращает строку, эквивалентную численному выражению N. |
|
|
Val(S) |
Возвращает численное значение, соответствующее числу, |
|
представленному строкой S, которая должна содержать только |
|
цифры и одну десятичную точку, иначе VBA не может преоб- |
|
разовать ее в число. Если VBA не может преобразовать строку |
|
в S, то функция Val возвращает 0. |
|
|
CBool (N) |
Возвращает Boolean-эквивалент численного выражения N. |
|
|
CByte(E) |
Возвращает численное значение типа Byte (от 0 до 255); Е — |
|
любое допустимое численное или строковое выражение, кото- |
|
рое может быть преобразовано в число. |
|
|
32
CCur(E) |
Возвращает численное значение типа Currency; Е — любое |
|
допустимое численное или строковое выражение, которое |
|
может быть преобразовано в число. |
CDate(Е) |
Возвращает значение типа Date. Е может быть любым допу с- |
|
тимым выражением (строкой или числом), представляющим |
|
дату в диапазоне 1/1/100 — 12/31/9999, включительно. |
CDbl(Е) |
Возвращает численное значение типа Double; Е — любое до- |
|
пустимое численное или строковое выражение, которое может |
|
быть преобразовано в число. |
Cint(E) |
Возвращает численное значение типа Integer; Е — любое до- |
|
пустимое численное или строковое выражение, которое может |
|
быть преобразовано в число. |
CLng(Е) |
Возвращает численное значение типа Long; Е — любое допус- |
|
тимое численное или строковое выражение, которое может |
|
быть преобразовано в число. |
CSng(E) |
Возвращает численное значение типа Single; Е — любое до- |
|
пустимое численное или строковое выражение, которое может |
|
быть преобразовано в число. |
CStr(E) |
Возвращает значение типа String; Е — любое допустимое чис- |
|
ленное или строковое выражение. |
CVar(E) |
Возвращает значение типа Variant; Е — любое допустимое |
|
численное или строковое выражение. |
Наиболее часто используемые функции — это функции (объединенные в конце таб лицы в группу), начинающиеся с буквы С (от слова conversion) , за которыми следует сокращение имени типа: CStr, CSng, CDbl и так далее .
24. Функции даты и времени
VBA -функции даты и времени обычно используются для получения текущей даты и времени, разбиения значения даты на ее составляющие части или для преобразования строк и чисел в значения типа Date.
В таблице приведены VBA -функции даты и времени и их действие . В этой таблице N — любое допустимое численное выражение, a D — любое допустимое выражения типа Date (включая значения типа Date, числа или строки, которые VBA может преобразовать в дату). Все аргументы функций в э той таб лице являются обязательными, если не указано иначе.
Функции |
Возвращает / действие |
(аргументы) |
|
|
|
Date |
Возвращает системную дату. М ожно также использовать эту |
|
функцию как процедуру для установки системных часов ко м- |
|
пьютера. Более подробно можно узнать из справочной систе- |
|
мы VBA. |
|
|
Time |
Возвращает системное время компьютера как значение типа |
|
|
33
|
Date. М ожно также использовать эту функцию как процедуру |
|
для установки системных часов. Более подробно можно узнать |
|
из справочной системы VBA. |
Now |
Возвращает системную дату и время. |
Year(D) |
Возвращает целое, являющееся частью выражения типа Date |
|
и содержащее год. Год возвращается как число между 100 и |
|
9999. |
Month(D) |
Возвращает целое, являющееся частью выражения типа Date, |
|
содержащее месяц. М есяц возвращается как число между 1 и |
|
12, включительно. . |
Day(D) |
Возвращает целое, являющееся частью выражения типа Date |
|
и содержащее день. День возвращается как число между 1 и |
|
31, включительно. |
Week- |
Возвращает целое, содержащее день недели для выражения |
day(D) |
типа Date. День недели возвращается как число между 1 и 7, |
|
включительно; 1 — это воскресенье, 2 — понедельник и так |
|
далее. |
Weekday- |
Возвращает строку с наименованием дня недели, номер кото- |
Name(N1, |
рого задается параметром N1. |
В, N) |
|
Hour(D) |
Возвращает целое, содержащее часы как часть времени, со- |
|
держащегося в выражении типа Date. Часы возвращаются как |
|
число между 0 и 23, включительно. Если выражение D не со- |
|
держит значения времени, то Hour возвращает 0. |
Minute(D) |
Возвращает целое, содержащее минуты как часть времени в |
|
выражении типа Date. М инуты возвращаются как число ме- |
|
жду 0 и 59, включительно. Если выражение D не содержит |
|
значения времени, Minute возвращает 0. |
|
|
Second(D) |
Возвращает целое, содержащее секунды как часть времени в |
|
выражении типа Date. Секунды возвращаются как число ме- |
|
жду 0 и 59, включительно. Если выражение D не содержит |
|
значения времени. Second возвращает 0. |
|
|
DateAdd |
Возвращает значение (тип Variant (Date)), содержащее дату, к |
(S, N, D) |
которой добавлен заданный интервал времени. |
DateDiff |
Возвращает значение (тип Variant (Long)) числа временных |
(S. D1, |
интервалов между двумя определенными датами. |
D2(, N1 |
|
(, N2))) |
|
|
|
DatePart |
Возвращает определенную часть (тип Variant (Integer)) задан- |
(S. D,(, |
ной даты. |
N1 (, |
|
N2))) |
|
DateSeri- |
Возвращает значение последовательной даты для заданной |
al (N, N, |
даты. Слева направо аргументы представляют год, месяц и |
N) |
день. Аргумент года должен быть целым числом между 100 и |
|
9999, месяца — между 1 и 12, дня — между 1 и 31 (все диапа- |
34
|
зоны являются включающими). |
TimeSeri- |
Возвращает значение последовательного времени. Слева на- |
al (N, N, |
право аргументы представляют часы, минуты и секунды. Ар- |
N) |
гумент часов должен быть целым числом между 0 и 23, аргу- |
|
менты минут и секунд должны оба быть числами 0 и 59 (все |
|
диапазоны являются включающими). |
DateValue |
Возвращает значение типа Date, эквивалентное дате, задан- |
(E) |
ной аргументом Е, который должен быть строкой, числом или |
|
константой, представляющей дату. |
TimeValue |
Возвращает значение типа Date, содержащее время, заданное |
(E) |
аргументом Е, который может быть строкой, числом или кон- |
|
стантой, представляющей время. |
Timer |
Возвращает число, представляющее количество секунд от по- |
|
луночи в соответствии с системным временем компьютера. |
25. Строковые функции
Строковые функции VBA часто применяю тся для нахо ждения заданных строк вну три других строк, для сравнения одной строки с другой и копирования выбранных частей строк. Строковые функции VBA используются довольно часто, по тому что строковые данные очень важны и встречаются в каждом приложении VBA — Word, Excel, Access или другом host-приложении VBA.
В таблице, где приведены основные строковые функции VBA, N — э то любое допустимое численное выражение, a S — э то любое допустимое строковое выражение. Все аргументы функций являются обязательны - ми, если не указано иначе.
Функция |
Возвращает/действие |
(аргумент) |
|
lnStr((N1,) |
Возвращает положение S2 в S1. N1 — начальное положение |
S1,S2(, |
для поиска; N2 определяет тип сравнения. N1 и N2 необяза- |
N2)) |
тельны. Если N2 опускается, то для поиска используется те- |
|
кущая установка Option Compare. |
|
|
lnStrRev(S1 |
Возвращает позицию появления строки S2 внутри S1, в на- |
. S2 (, |
правлении от конца (или N1) к началу строки. N2 определяет |
N1(, N2))) |
тип сравнения. Если N2 опускается, то для поиска использует- |
|
ся текущая установка Option Compare. |
|
|
LCase(S) |
Возвращает строку (тип String), содержащую копию S со все- |
|
ми символами верхнего регистра, преобразованными в симво- |
|
лы нижнего регистра. |
|
|
Left(S, N) |
Возвращает строку; копирует N символов из S, начиная с ле- |
|
вого крайнего символа S. |
|
|
35
Len(S) |
Возвращает число символов в S, включая начальные и конеч- |
|
ные пробелы. |
|
|
LTrim(S) |
Возвращает копию строки S после удаления символов пробела |
|
из левой части строки (начальные пробелы). |
|
|
Mid(S, |
Возвращает строку; копирует N2 символов из S, начиная с |
N1,N2) |
позиции символа в S, заданной аргументом N1. N2 является |
|
необязательным; если N2 опущен, то M id возвращает все сим- |
|
волы в строке S от позиции N1 до конца строки. |
Right(S, N) |
Возвращает значение типа String; копирует N символов из S, |
|
начиная с правого крайнего символа S. Например, |
|
Right(«outright», 5) возвращает строку «right». |
|
|
RTrim(S) |
Возвращает копию строки S после удаления символов пробела |
|
из правой части строки (конечные символы). |
|
|
Space(N) |
Возвращает строку пробелов длиной N символов. |
|
|
StrComp(S1, |
Сравнивает S1 с S2 и возвращает число, обозначающее резуль- |
S2, N) |
тат сравнения: -1 если S1 < S2; 0, если S1 = S2; 1, если S1 > S2. |
|
N является необязательным и указывает, следует ли выполнять |
|
сравнение с учетом регистра. Если N опускается, строки срав- |
|
ниваются с использованием текущей установки Option Com- |
|
pare. |
StrConv(S, |
Возвращает строку, преобразованную в новую форму в зави- |
N) |
симости от числового кода, заданного аргументом N. VBA |
|
предоставляет внутренние константы для использования с |
|
функцией StrConv; наиболее полезными являются: vbProper- |
|
Case (преобразует строку так, что каждая буква, начинающая |
|
слово, становится заглавной), vbLowerCase (преобразует стр о- |
|
ку в буквы нижнего регистра) и vbUpperCase (преобразует |
|
строку в буквы верхнего регистра). |
|
|
String(N, |
Возвращает строку длиной N символов, состоящую из симво- |
S) |
ла, заданного первым символом в S. Например, String (5, «х») |
|
возвращает строку «ххххх». |
|
|
Trim(S) |
Возвращает копию строки S после удаления начальных и ко- |
|
нечных символов пробела из этой строки. |
|
|
UCase(S) |
Возвращает S со всеми символами нижнего регистра, преобр а- |
|
зованными в символы верхнего регистра. |
|
|
Несколько перечисленных в таблице функций преобразования типа данных относятся также к манипулированию строками: Chr, Format, CStr.
26. Объединение текстовых строк
Если надо объединить неско лько текстовых строк в одну, используется символ конкатенации (&).Объединение строк
1: Sub ОбъединениеСтрок()
36
2:Dim sName As String
3:Dim sLongText As String
5:sName = InputBox("Введите ваше имя: ")
7:'Следующая строка для окна сообщения объеди-
няет
8:'слово "Привет" со значением переменной sName
9:MsgBox "Привет, " & sName
10:
11:sLongText = "Это пример объединения несколь-
ких “
12:sLongText = sLongText & "строк в одну боль-
шую "
13:sLongText = sLongText & "строку." & vbNew-
Line
14:sLongText = sLongText & "vbNewLine — кон-
станта, позволяющая”
15:sLongText = sLongText & "начинать новую
строку"
16:MsgBox sLongText
17:End Sub
Объединение строк — по лезное средство для создания текста сообщений. С помощью символа конкатенации можно составлять строки, содержащие текст, значения переменных, числа и т.д.
Еще пример конкатенации строк, в которой процедура запрашивает у по льзователя имя файла рабочей книги, открывает э ту книгу и выбирает определенный рабочий лист (например Отчет о продажах)
1:Sub ОткрытьКнигу()
2:„Демонстрация конкатенации строк
4:Const BoxTitle = “Установка входных данных”
5:Const ShtName = “Отчет о продажах”
6:
7: Dim Fname As String 8:
9:„Получить от пользователя имя рабочей книги
10:Fname = InputBox(“Введите имя рабочей кни-
ги:”, BoxTitle) 11:
12: Workbooks.Open FileName:=Fname „Открыть книгу
13:
37
14: ActiveWorkbook.Sheets(ShtName).Select
„Выбрать рабочий лист
15:
16:„Сообщение пользователю о том что книга
открыта
17:MsgBox “Рабочая книга” & Fname & ”открыта,”
&ShtName & “выбран” , , BoxTitle & “завершена”
19:End Sub
Этот пример предполагает, что вы имеете запрашиваемую книгу в
папке Мом документы и в этой книге есть лист Отчет о продажах.
Задание
Создайте процедуру с именем ВашИнфо. Эта процедура до лжна выполнять следующие задачи.
1.Отобразить три о кна ввода. Первое окно предназначено для ввода имени по льзователя. Во втором окне надо ввести название города, где живет по льзователь, а в третьем — возраст пользователя.
2.Отобразить введенную в трех окнах ввода информацию в одном окне сообщения.
27. Вопросы для самопроверки
1.Язык VBA применяется только в Excel?
2.На чем основывается язык VBA?
3.Истинно или ложно следующее у тверждение: встроенные
функции Excel можно использовать в приложениях VBA?
4.При реда ктировании ко да макроса вы работаете в _________.
5.Назовите два ограничения записанных макросов.
6.Истинно или ложно следующее у тверждение: комбинации кла - виш можно назначать макросам только в процессе записи макросов?
7.Назовите три местоположения, где можно со хранить создавае -
мый макрос.
8.В какой папке на жестком диске компью тера хранится личная книга макросов?
9.Истинно или ложно следующее у тверждение: личная книга макросов автоматически открывается при загрузке программы Excel?
10.Истинно или ложно следующее у тверждение: Excel не позволя-
ет назначать макросам уже используемые комбинации клавиш?
11.Какова последовательность действий при назначении макроса графическому изображению?
12.Назовите два э лемента управления, ко торые позволяю т выбрать одну опцию из множества возможны х опций.
13.Истинно или ложно следующее у тверждение: экранные формы
можно создавать то лько редакторе Visual Basic?
38
14.Как связать э лемент управления с ячейкой рабочего листа?
15._ — это э лемент управления, ко торый отображает статический
текст.
16.Назовите три уровня видимости переменных.
17.Переменную какого типа необ хо димо использовать для хранения целых чисел из диапазона о т 0 до 100?
18.Какое максимальное количество символов можно использовать при задании имен процедур, переменных и констант?
19.Истинно или ложно следующее у тверждение: имя процедуры
может начинаться с числа?
20.Где объявляю тся глобальные переменные?
21.Истинно или ложно следующее у тверждение: константы можно
определить только в процедуре?
22.Какую функциональную клавишу следует нажать для выполнения процедуры в редакторе Visual Basic?
23.Как можно объединить неско лько строк?
24.Какой тип данных возвращаемого значения о кна сообщения?
25.Какой тип данных возвращаемого значения метода InputBo x?
26.Какие установки можно задать для окна сообщений с помощью аргумента кнопки
27.Истинно или ложно следующее у тверждение: в VBA аргументы
операторов и функций идентифицируются то лько своим местополож е - нием в списке ар гументов?
39
Оглавление
1. |
Введение .................................................................................................. |
3 |
2. Запись простого макроса .................................................................... |
4 |
|
3. |
Выпо лнение макросов ......................................................................... |
5 |
4. |
Просмотр кода макроса ....................................................................... |
5 |
5. |
Редактирование ко да макроса ........................................................... |
6 |
6. |
Назначение макросам комбинаций клавиш ................................... |
7 |
7. |
Назначение макросов командным кнопкам ................................... |
7 |
8. |
Назначение макроса графическим изображениям ....................... |
8 |
9. |
Назначение макросов кнопкам панели быстрого доступа ........ |
9 |
Задание .............................................................................................................. |
9 |
|
10. |
Элементы управления в рабочем листе ...................................... |
10 |
11. Редактор Visual Basic ....................................................................... |
13 |
|
12. |
Использование справочной системы .......................................... |
15 |
13. |
Создание процедур ........................................................................... |
18 |
14. |
Выполнение процедуры .................................................................. |
19 |
15. |
Со хранение изменений в модуле ................................................. |
20 |
16. |
Переменные........................................................................................ |
20 |
17. |
Примеры объявления переменных различных типов. ............ |
23 |
Задание ............................................................................................................ |
24 |
|
18. |
Функция MsgBo x.............................................................................. |
24 |
19. |
Функция InputBo x............................................................................. |
28 |
20. |
Метод InputBo x ................................................................................. |
29 |
21. |
Использование других функций VBA ........................................ |
31 |
22. |
Математические функции .............................................................. |
31 |
23. |
Функции преобразования данных................................................ |
32 |
24. |
Функции даты и времени................................................................ |
33 |
25. |
Строковые функции ......................................................................... |
35 |
26. |
Объединение текстовых строк ...................................................... |
36 |
Задание ............................................................................................................ |
38 |
|
27. Вопросы для самопроверки ........................................................... |
38 |
40