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

Типы переменных

Тип

объявление, явное

Тип

объявление, неявное

Хранит

Требования

к памяти

Диапазон значений

Byte

Нет

Целые числа

1 байт

от 0 до 255

Integer

%

Целые числа

2 байта

от -32,768 до 32,767

Long

&

Целые числа

4 байта

(приблизительно) +/- 2 миллиарда

Single

!

Числа с точкой

4 байта

+/_ от 1 Е-45 до ЗЕ38

Double

#

Числа с точкой

8 байтов

+/- от 5Е-324

до 1.8Е308

Currency

@

Числа, имеющие 15 позиций (максимум) до десятичной точки и

4 цифры после

8 байтов

+/-9Е14

String

$

Текстовая ин-

формация

1 байт

До 65000 символов

для строк с постоян-

ной длиной и до 2

биллионов символов

для динамических

строк

Boolean

Нет

Логические значения

2 байта

True или False

Date

Нет

Даты и время

8 байтов

1/1/100 до 12/31/9999

Object

Нет

Изображения

и OLE-объекты

4 байта

Нет

Variant

Нет

Любые из перечисленных типов данных

16 бай-

тов+1 байт на

каждый символ

Нет

Объявить переменную можно локально в процедуре или в общей области модуля, в последнем случае переменная доступна всем процедурам (глобально). Если отдельные данные в программе не меняются, то их проще объявить константами:

Const Пуд=16.36

Переменным можно переприсвоить значение, а константам – нет.

Практическое применение.

Предположим, нам нужен набор функций по определению площади круга, длины окружности, объема шара. Аргументом будет радиус. Дополнительной переменной (можно константой) – значение .

Куда поместить функцию?

Конечно в модуль! Так как все макросы для любого листа вызываются именно оттуда. Нам же нужна функция, доступная к вызову из любого места.

Начиная работу в новом файле, придется сначала вставить в проект VBAмодуль, а затем в модуль поместить функцию. Это можно осуществить, используя меню редактораVBAInsert.

Итак функция вставлена. Практически любая функция обрабатывает один или несколько аргументов. Следовательно необходимо в описании функции описать и аргумент. Радиус может быть дробным, следовательно, это число вещественное.

Остается присвоить функции расчетное значение. Значение  можно «добыть» из справочной системы, заглянув в раздел тригонометрических функций VBA.

Итог наших трудов:

Public Function площадь_круга(радиус!)

Dim pi#

pi=3.1415926535897932

площадь_круга=pi* радиус^2

End Function

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

Остальные функции выполняются аналогично.

Функции с текстовыми аргументами.

Функция шутка. Предположим есть две колонки мужских и женских имен. Необходимо составить фразы подобные «Вася+Люба= Любовь». Напомним, что с текстом возможна только операция сложения. Все текстовые символы заключаются в кавычки.

Результат:

Public Function шутка(имя1$, имя2$)

шутка =имя1 + ”+” + имя2 + ” = Любовь“

End Function

Функции со смешанными типами данных

Предположим в одной из колонок есть имена, во второй цифра, показывающая число полных лет. Необходимо составить подобную фразу «Кате 17 лет»

Поскольку текст и число относятся к разным типам данных, необходимо число преобразовать в текст.

Оператор Str(число) преобразует число в текст.

Оператор Val(текст) преобразует текст в число.

Результат:

Public Function возраст(имя$, лет!)

возраст =имя + Str(лет) + ” лет“

End Function

Самостоятельно выполнить следующие задания.

  1. Функция. Длина окружности по радиусу.

  2. Функция. Объем шара по радиусу.

  3. Функция снаряд. По заданным: углу над горизонтом и начальной скорости вылета снаряда из ствола орудия определить дальность полета снаряда без учета сопротивления воздуха.