Практическое занятие 11 icon

Практическое занятие 11



НазваниеПрактическое занятие 11
Дата конвертации14.09.2012
Размер76.36 Kb.
ТипПрактикум



Практикум по Excel-2. Занятие 11

Практическое занятие 11.

Использование VBA для создания функций пользователя



Цель работы: изучение возможностей языка программирования Visual Basic for Application для создания функций пользователя
  1. Назначение и возможности VBA





    1. Excel является функционально полным программным средством и позволяет организовать сложные вычисления. На практике возникают ситуации, когда возможностей стандартных программ не хватает для решения задач пользователя. Поэтому все современные программные средства снабжаются встроенными языками программирования, позволяющими пользователям автоматизировать решение своих задач. В Excel встроен язык программирования VBA – Visual Basic for Applications, общий для всех средств Microsoft Office.

    2. VBA используется для написания функций пользователя или методов решения, которые не удается описать с помощью стандартных функций Excel.

    3. Основные элементы синтаксиса VBA.
      Определены следующие основные типы данных:
      числовые (целые - byte, integer, long, и вещественные – single, double);
      строковые (string);
      логические (Boolean);
      дата и время (date);
      объектные (object);
      специальный тип данных Variant, позволяющий хранить данные любых других типов.

Для объявления переменных служат операторы Dim (объявляет переменные доступные только в той процедуре, в которой они объявлены) и Public (объявляет переменные, доступные во всех процедурах модуля). Пример объявления переменных:

Dim КоордХ, КоордY As Double

- в примере объявлены две вещественные переменные двойной точности.
Имена переменных могут записываться латинскими и русскими буквами.
Определены арифметические операции:

сложения и вычитания ( + - );
умножения и деления ( * / );

целочисленного деления - с отбрасыванием остатка ( \ );

вычисления остатка от деления ( mod );

возведение в степень (^).

Определены операции сравнения (результат сравнения имеет логический тип):
равно ( = );

меньше и больше ( < и > );

меньше равно и больше равно ( <= и >= );

не равно ( <> ).

    1. Основные программные конструкции VBA.
      Оператор присваивания:
      переменная = выражение
      Например:
      ДлинаХ = коордХ1 - коордХ2

- в примере переменная ДлинаХ получает значения, равное разнице значений переменных коордХ1 и коордХ2.

Если переменной нужно назначить объект, то для этого используется оператор Set, например:


Dim oSheet As Excel.WorksSheet
Set oSheet = Worksheets.
Item("Лист2")


- в примере переменная oSheet получает значение ссылки на рабочий лист Лист2 в активной рабочей книге.


Управляющие конструкции VBA – ветвление и цикл.

Оператор ветвления

If <У> Then

<Д1>
Else
<Д2>
End If

Д1 и Д2 – любые последовательности операторов, в т.ч. операторы другие If и операторы циклов. Если условие <У> выполняется (выражение, по которому оно вычисляется имеет значение ИСТИНА), то исполняются операторы Д1. Если условие не выполняется - операторы Д2.

Например:
If Длина1 < Длина2 Then

msgBox “Первый отрезок короче”

Else

msgBox “Первый отрезок длиннее”

End If

- в примере проверяется условие Длина1 < Длина2 и в зависимости от результата выводятся различающиеся сообщения.


^ Оператор цикла «Повторить Для каждого»

For <У>
         <Д>
Next


Циклы с предусловием

Do While <У>

           <Д>

Loop

Выполняется, пока условие истинно (True).


Do Until <У>

           <Д>

Loop

Выполняется пока условие ложно (false)


^ Циклы с постусловием

Do

<Д>

Loop While <У>

Выполняется пока условие истинно.


Do

<Д>

Loop Until <У>

Выполняется пока условие ложно.

«Досрочный» выход из цикла – Exit Do.



    1. Одно из достоинств VBA состоит в том, что язык предоставляет доступ к средствам того приложения, в котором используется.

    2. При программировании на VBA в Excel часто бывает необходимо получить доступ к диапазону ячеек рабочего листа. Для этого обычно используется объект Range. Например, следующий оператор присвоит переменной Itog значение из ячейки D10 рабочего листа “Лист3”

Itog = WorkSheets(“Лист3”).Range(“D10”).Value
Для активного рабочего листа запись можно упростить:

Itog = Range(“D10”).Value
Следующий оператор присваивает значение 25.12 именованной ячейке Cena активного рабочего листа:

Range(“Cena”).Value = 25.12

Всем ячейкам диапазона F2:H7 рабочего листа “Лист2” присваивается значение 2:

WorkSheets(“Лист2”).Range(“F2:H7”).Value = 2

  1. ^

    Функции пользователя и процедуры в Excel

    1. Процедуры VBA представляют собой последовательности команд для выполнения каких-либо вычислений или иных действий. В VBA существуют процедуры типа Sub и процедуры типа Function. Основное отличие этих типов в том, что функция возвращает определенное в ней значение, которое можно использовать, например, в какой-либо формуле.

    2. Пример процедуры Sub:
      Public Sub Значение()
      msgBox “Значение в ячейке F2: ” & Range(“F2”).Value
      End Sub


-в примере в диалоговое окно выводится значение, хранящееся в ячейке F2.
    1. Пример процедуры Function:
      Public Function РазностьЯчеек()
      РазностьЯчеек= Range(“F2”).Value-Range(“H7”).Value
      End Function


- в примере вычисляется разность значений, взятых из двух ячеек рабочего листа.
    1. В процедуры могут передаваться аргументы (параметры), список параметров заключается в скобки, параметры разделяются запятыми:
      Public Function РазностьЗнач2(Перв, Втор)
      РазностьЗнач2= Перв-Втор
      End Function

^

- в примере вычисляется разность значений двух параметров.

    1. Вызов процедуры Function может производиться из строки формул, а также из других процедур и функций.

    2. Вызов процедуры Sub может производиться только из других процедур или функций. Так же можно назначить выполнение процедуры Sub горячей клавише или кнопке, созданной пользователем.




  1. ^

    Средства VBA для взаимодействия с пользователем


    1. Простейшим способом передать сообщение пользователю может служить функция

MsgBox (Prompt, Botton, Title),


где обязательный параметр Prompt - строковое сообщение; если в сообщении должны использоваться и текст и числа, то числовые данные следует преобразовать в строку, например:

MsgBox “Ответ=” & cStr(25)

необязательный параметр Botton - определяет отображаемые в окне сообщения кнопки и информационные значки. Значение параметра обычно задается с помощью констант VBA:

vbOkOnly, vbOkCancel, vbAbortRetryIgnore, vbYesNo, vbYesNoCancel, vbRetryCancel – для кнопок

и vbCritical, vbQuestion, vbExlimation, vbInformation для информационных значков,

например:

MsgBox “Сообщение с кнопкой Ок”, vbOkOnly

MsgBox “Сообщение с кнопкой Ок и значком «Ошибка»”, vbOkOnly + vbCritical.
необязательный параметр Title – задает текст в заголовке окна сообщения.

    1. Для получения информации от пользователя в простейшем случае применяется функция InputBox(Prompt,Title,Default), где обязательный параметр Prompt - подсказка, необязательные параметры Title,Default задают текст в заголовке окна и значение по умолчанию возвращаемое функцией. Функция возвращает строковое значение, если необходимо вводить числовые данные, необходимо выполнить преобразование строки в число с помощью функции Val, например:

^ Ocenka = Val(InputBox(“Введи оценку”, “Ввод данных”, “5”)

    1. Метод приложения Excel InputBox подобен функции InputBox. В отличии от функции метод позволяет вводить адреса ячеек и диапазонов. Для этого параметру Type метода следует задать значение равное 8, пример:

Sub Пример_Input()

Dim r As Range

Set r = Application.InputBox("Введи или выдели на листе диапазон ячеек", Type:=8)

r.Font.Color = vbGreen

End Sub

- в примере объявляется переменная r типа Диапазон (Range), оператором Set ей присваивается значения адреса ячеек, указанного с помощью метода InputBox, (обратите внимание, чтобы вызвать именно метод, а не функцию с таким же названием, указан объект – Application), для всех ячеек диапазона установлен зеленый цвет шрифта.
  1. Задание


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

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

    3. Создаваемые процедуры должны обеспечить вычисления длины двух отрезков дорожки






и стоимости строительства дорожки:
S = S1 * AB + S2 * BC
^

при следующих исходных данных


S1=80; S2=120;
xa=0; ya=10;


yb=5;

xc=10; yc=0

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

  1. ^

    Указания к выполнению работы



    1. Все операции выполняйте в рабочей книге, созданной на занятии 2-6.

    2. Перед началом работы проверьте и, если нужно, измените на Средний, уровень безопасности при работе с макросами.

    3. Редактор VBA открывается командами Сервис – Макрос – Редактор Visual Basic .

    4. Для вставки новой процедуры используется команда Insert – Procedure; тип новой процедуры следует указать Function для первого задания и Sub для второго. Имя функции и процедуре задайте сами, они не должны совпадать.

    5. Для вычисления длины отрезков можно использовать стандартную функцию VBA Sqr() – вычисления квадратного корня или воспользоваться операцией возведения в степень и тождеством: √х = х1/2.

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

    7. Сохраните результаты работы.




www.alural.narod.ru/inform/intro.htm Александр Ю. Алексеев






Похожие:

Практическое занятие 11 iconИзготовление ватно-марлевой повязки Практическое занятие по обж

Практическое занятие 11 iconПрактическое занятие 9
Освоение способов создания, оформления таблиц и выполнения вычислений в таблицах
Практическое занятие 11 iconПрактическое занятие 5
Получение практических навыков по настройке программы и созданию и редактированию текстовых документов
Практическое занятие 11 iconПрактическое занятие 8
Освоение способов интеграции объектов: вставка в текстовый документ рисунков, созданных в других приложениях
Практическое занятие 11 iconПрактическое занятие 12
Для создания программ на vba в Excel формы и элементы управления используется так же, как и в Word
Практическое занятие 11 iconПрактическое занятие 10
Слияние документов – операция, позволяющая включить в основной документ информацию из другого источника (базы данных, таблицы)
Практическое занятие 11 iconПрактическое занятие 7
Суммесли(диапазон;критерий;диапазон суммирования) – суммирует ячейки, заданные критерием, аргументы
Практическое занятие 11 iconПрактическое занятие 11
Создайте новый документ, введите текст "Создание формул" и сохраните документ в своей папке под именем Формула doc
Практическое занятие 11 iconПрактическое занятие 6
Откройте созданный на предыдущем занятии документ Tekst doc и перейдите в начало документа, нажав комбинацию клавиш Ctrl+Home. Выведите...
Практическое занятие 11 iconПрактическое занятие «Нестандартные методы решения неравенств. Метод замены функций»
Решение некоторых логарифмических неравенств основано на переходе к новому, не зависящему от переменной, основанию
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов