Обзор языка VBA

           САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ УПРАВЛЕНИЯ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

                                    (ФУИТ) 
 
 

            РЕФЕРАТ

                        Тема: Обзор языка VBA 

           Подготовила студентка 1 курса  Пудовкина О.А

           Проверил  преподаватель СПбГПУ Пакулин В.Н. 
       
       
       
       
       
       

      Санкт-Петербург

            2010

      Аннотация

В реферате содержится краткий источник информации о языке программирования Visual Basik for Applikations. А также история появления языка, основы работы и знакомство для начинающих.Значения языка VBA в программирование. 

      Оглавление

Введение

1.Предыстория языка. Basik.

2.Что такое язык VBA

          2.1 Определение VBA, преимущества, возможности применения

      2.2 Переменные и типы  данных

      2.3 Массивы

3.Процедуры и функции

4.Алгоритмы.Пример.

Заключение

Список  литературы 
 

      Часто при работе с приложениями MS Office возникает необходимость автоматизировать выполнение той или иной последовательности действий, дополнить интерфейс приложения новыми окнами диалога, панелями инструментов и, таким образом, расширить возможности работы с документами. Для этого разработчики MS Office предоставили в распоряжение инструмент с большими возможностями, который достаточно прост в освоении. Этим инструментом является язык программирования Visual Basic for Applications (VBA).

      Язык  программирования VBA является диалектом  одного из самых

популярных и  мощных универсальных языков программирования Visual Basic. В отличие от последнего VBA предназначен для использования в качестве дополнительного компонента различных приложений.

      Предыстория языка VBA

     Бейсик (от BASIC, сокращение от англ. Beginner's All-purpose Symbolic Instruction Code -- универсальный код символических инструкций для начинающих; англ. basic-- основной, базовый) - семейство высокоуровневых языков программирования.

     Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Куртом и Джоном Кемени.

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

     До  середины 1960-х компьютеры (ЭВМ) были слишком дорогими машинами, использовавшимися  в основном для научно-технических  задач, и выполнявшими задачи не в  интерактивном режиме (т.н. пакетная обработка), когда общение с машиной осуществлялось через её оператора.

     Языки программирования этой поры, как и  компьютеры, на которых они использовались, были разработаны для работы с  ними обученных технических специалистов и программистов. Поскольку машины были дорогими, то и машинное время было дорого - поэтому на первом месте стояла скорость выполнения программы (скорость счёта).

     Однако, в течение 1960-х цены на компьютеры стали падать так, что даже небольшие компании могли их себе позволить; их быстродействие всё увеличивалась и наступило время, когда стало возможно организовать более эффективную непосредственную работу пользователей с компьютерами в так называемом режиме разделения времени (time-sharing).

     Бейсик  был придуман в 1963 году преподавателями  Дартмутского Колледжа Джоном Кемени и Томасом Куртцом, и под их руководством был реализован командой студентов колледжа. Со временем, когда стали появляться другие диалекты, этот «изначальный» диалект стали называть Dartmouth BASIC.

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

     При проектировании языка использовались следующие восемь принципов: новый  язык должен

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

    Язык был основан частично на Фортран II и частично на Алгол-60, с добавлениями, делающими его удобным для работы в режиме разделения времени и, позднее, обработки текста и матричной арифметики. Первоначально Бейсик был реализован на мейнфрейме GE-265 с поддержкой множества терминалов. Вопреки распространённому убеждению, в момент своего появления это был компилируемый язык.

      Что такое язык VBA

     VBA ( Visual Basic for Applications)— это диалект языка Visual Basic, расширяющий возможности Visual Basic и предназначенный для работы с приложениями Microsoft Office и другими приложениями от Microsoft и третьих фирм.

     В принципе, как это не удивительно, при программировании в Office можно вполне обойтись без языка VBA. Подойдет любой COM-совместимый язык, например, обычный Visual Basic, VBScript, JScript, C++, Delphi, Java и т.п. Можно использовать и .NET - совместимые языки программирования - VB.NET, C# и т.п. Все возможности объектных моделей приложений Office вполне можно будет использовать. Например, если сохранить следующий код в файле с расширением *.vbs и запустить его на выполнение, то будет запущен Word, в нем открыт новый документ и впечатан текст:

Dim oWord

Set oWord = CreateObject("Word.Application")

oWord.Visible = true

oWord.Documents.Add

oWord.Selection.TypeText ("Привет от VBScript")

     Однако VBA обычно - самый удобный язык для работы с приложениями Office.

     Главная причина проста - язык VBA встроен в приложения Office (и не только), и код на языке VBA можно хранить внутри документов приложений Office - документах Word, книгах Excel, презентациях PowerPoint и т.п. Конечно же, этот код можно запускать оттуда на выполнение, поскольку среда выполнения кода VBA (на программистском сленге - хост) встроена внутрь этих приложений.

В настоящее  время VBA встроен:

  • во все главные приложения MS Office — Word, Excel, Access, PowerPoint, Outlook, FrontPage, InfoPath;
  • в другие приложения Microsoft, например, Visio и M icrosoft Project;
  • в более чем 100 приложений третьих фирм, например, CorelDraw и CorelWordPerfect Office 2000, AutoCAD и т.п.

У VBA есть также  множество других преимуществ:

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

  • создавать полноценные приложения на Visual Basic (поскольку эти языки — близкие родственники);
  • использовать все возможности языка VBScript (это — вообще урезанный VBA). В результате в вашем распоряжении будут универсальные средства для создания скриптов администрирования Windows (об этом — в конце курса), для создания Web-страниц (VBScript в Internet Explorer), для создания Web-приложений ASP, для применения в пакетах DTS и заданиях на MS SQL Server, для создания серверных скриптов Exchange Server и многое-многое другое.

   VBA изначально  был ориентирован на пользователей,  а не на профессиональных программистов  (хотя профессионалы пользуются  им очень активно), поэтому создавать  программы на нем можно очень  быстро и легко. Кроме того, в Office встроены мощные средства, облегчающие работу пользователя: подсказки по объектам и по синтаксису, макрорекордер и т.п.

   При создании приложений на VBA вам, скорее всего, не придется заботиться о установке и настройке специальной среды программирования и наличии нужных библиотек на компьютере пользователя - MS Office есть практически на любом компьютере.

   Несмотря  на то, что часто приложения VBA выполняются  медленнее, чем бы вам хотелось, они  нересурсоемки и очень хорошо работают, например, на сервере терминалов. Но, как правило, для программ на VBA особых требований про производительности и нет: для написания игр, драйверов, серверных продуктов они не используется. По моему опыту, чаще всего проблемы с производительностью VBA-приложений - это не проблемы VBA, а проблемы баз данных, к которым они обращаются. Если проблемы действительно в VBA (обычно тогда, когда вам требуется сложная математика), то всегда есть возможность написать важный код на C++ и обращаться к нему как к обычной библиотеке DLL или встраиваемому приложению (Add-In) для Word, Excel, Access и т.п.

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

   В среде  программистов-профессионалов считается, что самый короткий путь "с  нуля" и программ типа "Hello, World" до профессиональных программ, которые делаются под заказ - именно через связку Office- VBA (а конечно, не через C++, Java или Delphi).

                        Знакомство  с VBA

     Для запуска VBA откройте приложение MS Excel и выполните команду Сервис ðМакросðРедактор Visual Basic или нажать сочетание клавиш <Alt+F11>.

     На  экране монитора появиться редактор  Visual Basic (см. рис1). Рассмотрим основные элементы окна редактора Visual Basic.

Строка меню.

Строка меню VBE, естественно, работает, как и строка меню любого другого приложения. Она  содержит команды, используемые для  управления различными компонентами VBА. Кроме того, для выполнения многих команд меню используются комбинации клавиш. Например, для команды ViewàImmediate Window (ВидàОкно отладки) применяется комбинация клавиш <Ctrl+G>. 

Рис 1. Окно редактора Visual Basic 

Панели  инструментов

Стандартная панель инструментов Standard, которая по умолчанию находится под строкой меню, - это одна из шести панелей инструментов, используемых в VBA (строка меню тоже считается панелью инструментов). Панели инструментов VBE работают, как и в Excel: вы можете задавать специальные настройки для панелей инструментов, перемещать их, отображать другие панели инструментов и т.д. Для управления панелями инструментов VBA используется команда ViewàToolbarsàCustomize (ВидàПанели инструментовàНастройка).

Окно  Project Explorer

В окне Project Explorer отображается диаграмма-дерево, состоящая из всех открытых в данный момент в Excel рабочих книг (включая дополнительные элементы и скрытые рабочие книги). Каждая рабочая книга известна как проект.

Окно  кода

Окно кода (которое  иногда называют Module) содержит код VBA. Для каждого элемента проекта представлено собственное окно кода. Чтобы просмотреть код объекта, дважды щелкните мышью на этом объекте в окне Project Explorer. Например, чтобы просмотреть код объекта Лист1, дважды щелкните на элементе Лист1 в окне Project Explorer. Если вы не создавали для него VBА-код, это открывшееся окно будет пустым.

Существует еще  один способ просмотреть код объекта  - выделите этот объект в окне Project Explorer, а затем щелкните на кнопке View Code (Просмотр кода) на панели инструментов вверху окна Project Explorer.

Окно Immediate

Окно Immediate предназначено для непосредственного выполнения операторов VBA, тестирования операторов и отладки кода. Это окно может отображаться и скрываться. Если окно Immediate в данный момент не отображается на экране, нажмите <Ctrl+G>. Чтобы закрыть окно Immediate, щелкните на кнопке закрытия в его строке заголовка (или щелкните правой кнопкой мыши в любом месте окна и выберите Hide из контекстного меню).

           Переменные  и типы данных

      Переменная  – это именованный фрагмент памяти, выделяемый или

резервируемый для хранения данных.

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

переменным, процедурам и константам с некоторыми ограничениями.

В VBA следующие  правила назначения имён:

      • первым символом имени обязательно  должна быть буква;

      • нельзя использовать символы «.», «!», «@», «&», «$», «#» и пробел;

      • имя может содержать буквы, цифры, и знак подчёркивания;

      • имя не может содержать более 255 знаков;

      • имя не должно совпадать с ключевыми  словами VBA;

      • в одной процедуре не могут  быть объявлены две переменные с  одним и тем же именем.

      Для того чтобы воспользоваться переменной в программе её надо сначала объявить, то есть задать её тип и область использования переменной.

Структура объявления переменных имеет следующий вид:

(Dim | Public | Private | Static) имя переменной [As] [Type]

      Когда объявляется переменная, определяется область её видимости

(Scope), то есть область проекта, где она доступна. Область видимости

переменной задаётся с помощью одного из четырёх главных  слов:

      - Dim

      - Public

      - Private

      - Static

      Главное слово Dim используется для объявления переменной на уровне процедуры, такая переменная называется локальной. Переменная такого вида может быть доступна только в той процедуре, в которой она была объявлена.

      Под временем существования переменой  понимается время, в течение которого переменная может иметь значение.

      Локальные переменные имеют значение только во время выполнения

процедуры, в  которой они объявлены.

      Использование перед именем переменной главного слова  Static позволяет сохранить её значение между вызовами процедуры, в которой эта переменная объявлена. Инструкция Static используется только на уровне процедуры. Объявленные с помощью неё переменные называются статическими. Типы данных являются одним из главных элементов языка VBA.

      При объявлении переменной её тип указывается  после главного слова

As, с помощью одного из главных слов, приведённых ниже.

      Переменные типа Byte, Boolean, Integer, Long, Single, Double,

Currency, Decimal, Data называются числовыми переменными.

      Переменные  типа String называются строковыми переменными. Эти

переменные    содержат   буквы,   цифры,    пробелы,   знаки   пунктуации   и

специальные символы.

                        Массивы

Массив (array) – это набор однотипных переменных, которые объединены

одним общим  именем. В массивах можно хранить  не одно, а несколько

значений и  доступ к заданному элементу массива  осуществляется с помощью

индекса. Структура  объявления массива отличается от структуры  объявления

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

границы изменения  индексов.

Динамические  массивы используются тогда, когда  размерность массива

невозможно определить заранее. В момент своего объявления такой массив не содержит ни одного элемента:

      Sub TestSub ()

      Dim ИмяМас () As Integer

      …

      End Sub

      Чтобы использовать массив и добавлять  в него элементы необходимо

пользоваться  инструкцией ReDim:

      Sub TestSub ()

      ReDim ИмяМас (50) As Integer

      …

      End Sub

Массив может  быть не только одномерным, но и многомерным.

Предельная размерность массива равна 60. Строка с объявлением

многомерного  массива может иметь следующий  вид:

      Dim ИмяМас (0 To 20, 0 To 70) As Integer

      Sub TestSub ()

      Dim ИмяМас (0 To 20, 0 To 70) As Integer

      ИмяМас (1,1) =23 // Элементу многомерного массива присваивается

числовое значение

      …

      End Sub

                  Процедуры и функции 

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

Рис 2. Добавление процедуры 

Для добавления Процедуры(рис 2) используется команда InsertàProcedure…

    • UserForm

Добавление пользовательской формы осуществляется при помощи команды Insertà UserForm

    • Module

Чтобы добавить в проект новый модуль VBA, выделите название проекта в окне Project Explorer и выберите команду InsertàModule (ВставкаàМодуль). Также можно щелкнуть правой кнопкой мыши на названии проекта и выбрать команду InsertàModule в контекстном меню.

    • Class Module
 

Работа  с окнами кода 

Каждому объекту  в проекте соответствует свое окно кода. Такими объектами могут  быть:

• сама рабочая  книга (ЭтаКнига в окне Project Explorer);

• рабочий лист или лист диаграмм рабочей книги (например, Лист1 или Диаграмма1 в окне Project);

• модуль VBA;

• модуль класса (специальный тип модуля, позволяющий  создавать новые классы объектов);

• форма UserForm.

Все программы  состоят из набора процедур. Модуль проекта состоит из

одной или нескольких процедур.

      Существует  два вида процедур:

  • процедуры – программы (Sub), они называются процедурами;
  • процедуры – функции (Function), их называют просто функциями.

Процедура –  программа имеет следующую структуру:

      Sub [Private | Public] [Static] Sub имя процедуры ([список параметров])

Тело процедуры

      End Sub

      Private – определяет область видимости процедуры.

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

      Тело  процедуры имеет вид последовательных инструкций,

представляющих собой саму процедуру.

      Рассмотрим  способы передачи параметров процедуре. Ниже приведено описание структуры элемента – аргумент (список формальных параметров).

        [Optional] [ByVal | ByRef] [ParamArray] имя [()] [As тип][= значение по умолчанию]

      Для передачи параметров используются ключевые слова: Optional и

ParamArray.

                        Алгоритмы

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

Название "алгоритм" произошло от латинской формы  имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783—850 гг. В своей книге "Об индийском счете" он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними "столбиком", знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

Формы (способы) записи алгоритма:

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

В зависимости  от порядка выполнения команд можно  выделить три типа алгоритмов:

  • линейные алгоритмы;
  • алгоритмы с ветвлениями;
  • алгоритмы с повторениями.

Реальные алгоритмы  обычно являются сочетанием всех основных алгоритмических структур (где имеются  различные типы алгоритмов). 
 
 
 
 
 

ПРИМЕР.

 
 

     Еще не так давно упоминание Basic (Бейсик) в качестве языка программирования вызывало лишь снисходительную усмешку (а порой и негодование) у большинства профессиональных разработчиков ПО. Объяснялось это просто: "Да, есть такой язык, которым пользуются любители (если не сказать "чайники"). Но ставить "Басик" в один ряд с настоящими средствами программирования - это просто смешно".

     Сейчас  вряд ли кто-то рискнет высказать  такое мнение: за прошедшие годы Microsoft Visual Basic (VB) превратился в самый популярный в мире инструмент разработки приложений. Более того, знание его основ сегодня фактически является обязательным для всех программистов, какими бы средствами они не пользовались. Это объясняется двумя взаимосвязанными факторами. Во-первых, VB очень широко распространен и используется не только в качестве самостоятельного средства, но и в виде системы программирования, встроенной в многочисленные прикладные программы (в частности MS Office). Во-вторых, превратившись в серьезный профессиональный инструмент, VB остался очень удобным средством для обучения программирования и решения небольших задач.  
 

ЛИТЕРАТУРА

  1. Басков Н.Н. Лебединская А.Р. «Учебный практикум Visual Basik for Applikations»
  2. Учебник "Программирование в Microsoft Office для пользователей"
  3. Н.Н.Чернышева «Основы понятия языка программирования VBA»
Обзор языка VBA