Навигация

  • Новости сайта

      Этим видео-уроком я хочу начать серию видео-уроков, которые будут посвящены основам работы в программе Microsoft Word.




    Наш опрос
    Какой из разделов материала Вас заинтересовал больше?

  • Структура программы. Модули, процедуры и функции
    Просмотров: 10 255 |
    Комментарии (0)
    17 февраль 2011 |

    Модуль представляет собой текстовый ASCII-файл с программным кодом, содержащим подпрограммы, переменные и константы. Проект может состоять из множества программных модулей. Для их создания необходимо выполнить команду Вставка Модуль. Рабочее окно модуля представлено на рис. 4.1.

     

     

    Основу программ в VBA составляют процедуры и функции.

    Процедура Sub– это обособленная совокупность операторов VBA, выполняющая определенные действия. В общем случае процедура принимает некоторые параметры (переменные, которые передаются процедуре в качестве исходных данных), выполняет программу и может возвращать результирующие значения, которые присваиваются параметрам внутри процедуры. Однако чаще используются процедуры без параметров. Например, процедуры, выполняющиеся при возникновении определенных событий. Вложенность процедур в другие процедуры не допускается. Структура процедуры следующая:

    [ДОСТУП] Sub ИМЯ_ПРОЦЕДУРЫ ([СПИСОК_ПАРАМЕТРОВ])

                     ТЕЛО_ ПРОЦЕДУРЫ

    End Sub

    Ключевое слово ДОСТУП является необязательным и определяет область видимости процедуры. Public указывает, что процедура доступна для всех других процедур во всех модулях (глобальная).  Private указывает, что процедура  доступна для других процедур только того модуля, в котором она описана (локальная). СПИСОК_ПАРАМЕТРОВ также является необязательным элементом и позволяет передавать процедуре различные исходные данные при вызове, которые называются формальными параметрами. При этом ключевое слово Dim не указывается. ТЕЛО_ПРОЦЕДУРЫ состоит из описательной части и блока операторов, выполняющихся один за другим. Если необходимо прекратить выполнение процедуры в некотором конкретном месте, это можно сделать с помощью оператора Exit Sub. ИМЯ_ПРОЦЕДУРЫ – это любой идентификатор, определенный пользователем. Идентификатор – это последовательность  букв, цифр и символа подчеркивания, начинающаяся с буквы (пробелы внутри идентификатора недопустимы). Имя процедуры всегда определяется на уровне модуля. Для использования процедуры в тексте программы (т.е. для её вызова), необходимо указать имя процедуры и список фактических параметров, которые должны по типу и порядку следования совпадать с формальными параметрами.

    Функция Function во многом похожа на процедуру, но в отличие от неё при вызове всегда возвращает значение. Функция получает параметры, называемые аргументами, и выполняет с ними некоторые действия, результат которых возвращается функцией. Структура функции следующая:

    [ДОСТУП] Function ИМЯ_ФУНКЦИИ(СПИСОК_АРГУМЕНТОВ) As ТИП

                     ТЕЛО_ ФУНКЦИИ

                    ИМЯ_ФУНКЦИИ = ВЫРАЖЕНИЕ

    End Function

    ТИП определяет тип данных возвращаемого результата. В теле функции обязательно должен присутствовать, по крайней мере, один оператор, присваивающий имени функции значение вычисляемого выражения. Досрочное завершение функции возможно с помощью оператора Exit Function. В программе вызов функции осуществляется с помощью оператора присваивания, в правой части которого указывается имя функции с перечнем фактических параметров, как и любой другой встроенной функции, например, Sqr, Cos или Chr.

     

    Процедуры и функции, не описанные явно с помощью ключевых слов Public или Private, по умолчанию являются общими.

    Для быстрого добавления в модуль подпрограмм удобно воспользоваться командой Вставка Процедура. В появившемся окне (рис. 4.2) нужно выбрать необходимые опции.

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

    Пример. В MS Excel создать функцию пользователя, математически определенную следующим образом:

    y = sin(x) ∙ e-5x


    Создадим модуль, как указано выше (рис 4.2), и введем в него текст следующей программы:

     

     

    Public Function Y(x As Single) As Single

              Y =  Sin(x) *  Exp(- 5 * x )

    End Function 


    Для использования созданной функции на рабочем листе MS Excel введем в ячейку А2 число 0.1. В ячейке В2 вычислим значение функции Y при x = 0.1. Для этого в ячейку В2 достаточно ввести формулу    =Y(A2). Это можно сделать и с помощью Мастера функций, который будет содержать функцию Y наряду с другими встроенными функциями  MS Excel (рис 4.3).

     

     

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

    Затем следует объявление глобальных для  данного  модуля переменных и констант, т.е. таких, которые используются во всех процедурах модуля.

    Далее располагают непосредственно текст функций и процедур, составляющих саму программу.

    Разделителем операторов в одной строке при записи программы является символ “:”.

    Для переноса оператора на другую строку используется символ “_” (знак подчеркивания).

     

    Иногда внутри программы удобно помещать комментарии – пояснительный текст, который игнорируется компилятором и может быть записан в любом месте программы. Комментарии удобно также использовать при отладке программы для временного отключения операторов. Каждая строка комментариев начинается со знака апострофа.

    Пример организации модуля: 

    Option Base 1

    Option Explicit

    ‘ PI – глобальная константа 

    Const  PI  As Double = 3.14159

    ‘ x -  глобальная переменная

    Dim x As Double 

     ‘ Функция Disc вычисляет площадь круга

    Public Function Disc(R As Double) As Double

         x = 2

         Disc = PI * R ^ 2

    End Function 

    ‘ Функция Rec вычисляет площадь треугольника

    Public Function Rec(a As Double, b As Double, c  As Double ) As Double

     p – локальная переменная

     Dim p As Double 

        p = ( a + b + c) / 2

        Rec = Sqr ( p * ( p – a )* ( p – b ) * ( p – c))

    End Function 

    ‘ Процедура Result вызывает функции Disc и Rec  и выводит результаты

    Public Sub Result ( )

     R_1, R_2, a, b, c - локальные переменные

     Dim R_1 As Double

     Dim R_2 As Double

     Dim a As Double

     Dim b As Double

     Dim c As Double

        R_1 = Disc( 2. 5 )

        x = x + 2

        MsgBox “ Площадь круга = “ &  CStr( R_1) & “, x = “ & CStr (x)

        a =1  

        b = 1  

        c = Sqr (2)

        R_2 = Rec (a, b, c)

        MsgBox  “ Площадь треугольника = “ &  CStr( R_2)

    End Sub

    Здесь инструкция Option Explicit  указывает на необходимость описания типов переменных, используемых на данном листе модуля.

    Инструкция Option Base 1 указывает, что индексация элементов массива будет начинаться с 1.

    Функция Sqr вычисляет квадратный корень аргумента.

    Функция CStr переводит числовой формат в строковый.


    Вернуться назад



    Другие новости по теме:

      Информация
      Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

      Друзья сайта
      Календарь

      Можно ли получить высшее образование, не потратив денег? Всем известно, что поступить на бесплатное обучение довольно сложно. И если вам это не удалось, то можно существенно сократить свои расходы, выбрав контрактную форму обучения.



      Интернет-технологии – особый вид технологий создания, а также поддержки различного рода информационных ресурсов в сети Интернет. К этим ресурсам относятся форумы, чаты, сайты блоги, энциклопедии, а также электронные библиотеки.



      На сегодняшний день практически каждая компания, организация или фирма имеет свой корпоративный сайт в сети, что позволяет осуществлять различные действия через интернет. Безусловно, для нормального функционирования любого ресурса, он должен быть максимально качественно разработан, дополнен различными полезными деталями и материалами. Информационное наполнение сайтов может быть создано несколькими способами.



      По данным статистики подростки школьного возраста проводят за экранами телевизоров около четырех часов в день, и это не считая времени проводимого за компьютерными играми. Дети часто играют в игры, причем, даже не замечая времени, которое они тратят не на уроки, а на игры, многие даже пропускают школьные занятия, если нет контроля родителей. По исследованиям ученых компьютерные игры стимулируют у детей лишь ограниченный участок головного мозга, а ведь детям необходимо читать, писать и считать.



      Наука является основной движущей силой, которая развивает очень многие сферы в человеческой жизни. Но ученые тоже люди и могут допускать разные ошибки. Я думаю, что не всегда можно доверять науке. Она всегда является спорным вопросом. Некоторые ученые как - бы не от мира сего, их никто и ничто не волнует кроме своей работы,