ПРИМЕР ВЗАИМОДЕЙСТВИЯ EXCEL И VISUAL BASIC




 

Начиная, с версии 5.0 в программу Excel включен, специальный язык программирования, который получил название Visual Basic for Applications (VBA).

Введение достаточно мощного языка программирования в Excel делает эту программную платформу весьма привлекательной для профессионалов, которые занимаются разработкой специализированных прикладных систем.

Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word for Windows, Power Point и ряд других. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость.

 

Программирование табличных функций

 

Чтобы создать отдельный рабочий лист для программного модуля, щелкните по пиктограмме Insert Module из пиктографического меню Visual Basic (1-я пиктограмма) или вызовите директиву Module из меню Insert Macro. После этого появится новый рабочий лист "Modele1". В программном модуле нужно описать функцию на языке VBA. В окне программного модуля можно работать, как в окне небольшого текстового редактора, но при этом необходимо помнить, что Вы пишите текст программы. Описание функции должно начинаться оператором Function, за которым через пробел следуют название функции и ее аргументы, заключенные в скобки и разделенные запятыми. Затем идет собственно текст программного кода функции, а заканчиваться описание должно оператором End Function.

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

Function NDS(Value)

NDS=Value*0.15

End Function

 

Встраивание функций

 

Щелкните по 3-й пиктограмме Object Browser из пиктографического меню VBA или вызовите одноименную директиву из меню View.

Функции, определенные пользователем, рассматриваются в программе Excel как самостоятельные объекты. В поле списка Methods/Properties: будет находиться имя новой функции. Щелкните мышью сначала по имени, а затем по командной кнопке Options, тогда откроется диалоговое окно Macro Options. В поле Description: введите поясняющий текст, который позднее будет использован Конструктором функций. В списке Function Category укажите категорию, в которую Вы хотите записать свою функцию. Например, функцию, вычисляющую налог на добавленную стоимость, следует поместить в категорию Financial. В дальнейшем Конструктор функций поместит Вашу функцию в указанную Вами категорию. Закройте окно Macro Options щелчком по командной кнопке OK, а окно Object Browser - кнопкой Close.


Применение функций

 

Перейдите на рабочий лист, где будет расположена таблица. Переместите указатель ячеек в ячейку, в которой будет находиться формула, и введите в нее знак равенства. Затем щелкните по 14-й пиктограмме Конструктора функций на основной пиктографической панели.

Появится диалоговое окно Конструктора функций. На первом шаге выберите категорию Financial и в правом поле найдите свою функцию NDS. Щелкните по названию этой функции, после чего перейдите к следующему шагу, щелкнув по командной кнопке Next.

Откроется второе диалоговое окно Конструктора функций. Здесь можно будет увидеть Ваш комментарий к функции, который был введен ранее в окне макроопций. Укажите единственный аргумент для этой функции Value и закройте диалоговое окно Конструктора щелчком по кнопке Finish.

В таблице появится значение, составляющее 15% величины аргумента. В таблице с этой функцией можно работать как с обычной функцией программы Excel.

 

Переменные и операторы

Visual Basic позволяет резервировать переменные, с указанием размера и без оного, работать с различными типами данных, использовать константы, работать с математическими операторами и функциями, использовать дополнительные операторы. Предусмотрено использование операторов циклов For Next, Do, объектов типа “ таймер” (невидимый секундомер в программе). Точность установления времени в программе составляет 1 миллисекунду, или 1/1000 сек. Запущенный таймер постоянно работает - т.е. выполняется соответствующая процедура обработки прерывания через заданный интервал времени - до тех пор, пока пользователь не остановит таймер или не отключит программу.


Типы данных
Тип Размер (байт) Диапазон значений Пример использования
Integer (Целое)   от - 32768 до 32767 Dim Birds% Birds%=37
Long Integer (Длинное целое)   от - 2147483648 до 2147483647 Dim Loan& Loan&=350,000
Single-precision Floating paint (Одинарной точности с плавающей десятичной точкой)   от - 3,402823Е38 до 3,4402823Е38 Dim Price! Price!=899.99
Double-precision Floating paint (Двойной точности с плавающей десятичной точкой)   от -1,79769313486232D308 до 1,79769313486232 D308 Dim pi# pi#=3.1415926535
Currency (денежные единицы)   от -922337203685477,5808 до 922337203685477,5807 Dim Debt@ Debt@=7600300,50
String (Строка) 1 на символ от 0 до 65535 символов Dim Dog$ Dog$=’pointer’
Boolean (Логическое)   True(истина) или False(ложь) Dim Flag as boolean Flag=True
Date (Дата)   от January(Январь) 1,100, до December(Декабрь) 31,9999 Dim Birthday as Date Birthday=#3-1-63#
Variant (Вариант) 16 (для чисел); 22+1 на символ (для строк) для всех типов данных Dim Total Total=289.13

 

Функция Действие
abs(n) Возвращает абсолютное значение n
atn(n) Возвращает арктангенс n в радианах
cos(n) Возвращает косинус угла n в радианах
Exp(n) Возвращает константу е в степени n
Sgn(n) Генерирует случайное число между 0 и 1
Rnd(n) возвращает -1, если n<0; 0, если n=0; +1если n>0
Sin(n) Возвращает синус угла n в радианах
Sqr(n) квадратный корень из n
Str(n) Преобразует числовое значение в строку
Tan(n) Возвращает тангенс угла n в радианах
Val(n) Преобразует строку в числовое значение


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: