Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛАБ_информатика_5_A5

.pdf
Скачиваний:
9
Добавлен:
12.03.2015
Размер:
953.75 Кб
Скачать

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]