Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры готовые.docx
Скачиваний:
1
Добавлен:
17.09.2019
Размер:
113.49 Кб
Скачать

1. Макрорекордер: начало автоматизации.. Макрорекордер — универсальный помощник . Для автоматического создания макросов служит макрорекордер. С помощью макрорекордера можно записывать действия, которые мы выполняем в программе. Например, записывается ввод и удаление текста, нажатие на кнопки вкладок, форматирование текста и так далее. Алгоритм работы с макрорекордером выглядит так: 1.Включить запись макроса, настроив некоторые параметры;2.Выполнить действия, которые вы хотели бы автоматизировать;3 Остановить запись; 4.Использовать записанный макрос по необходимости. Макрорекордер, помимо написания макросов, поможет нам лучше изучить возможности VBA и тонкости объектных моделей приложений Office .Например, если мыне знаем точно, как именно реализовать то или иное действие программно, но знаем, как это делается вручную. Просто запишем макрос с нужныминам действием, а потом откроем его в редакторе VBA.. Лучший способ освоить макрорекордер—это самостоятельно записать макрос.Мáкрос — программный объект, который во время вычисления заменяется на новый объект, создаваемый определением макроса на основе его аргументов, затем выражается обычным образом.Для сохранения макроса, выбераем параметрВсех документов (Normal.dotm). Normal.dotm —это общий шаблон, доступный для всех документов MicrosoftWord. Если макрос будет сохранен в Normal.dotm —мы сможем запустить его из любого Word-документа. .Процесс создания макросов в MSExcel очень похож на создание макросов в MSWord. Создадим макрос, который по нажатию комбинации клавиш копирует значения выделенных пользователем ячеек в другие ячейки. Перед записью макроса выделим ячейки, из которых будем копировать данные. Далее перейдем на вкладку Вид и запустим с нее запись макроса. Настроить быстрый вызов макроса можно в том же окне, где задается имя макроса и место сохранения. Имя Excel-макросов подчиняется тем же законам, что и в MSWord, а в качестве горячих клавиш предлагается использовать клавишу в комбинации с Ctrl. После начала записи щелкнем правой кнопкой мыши по выделенной области и выберем в появившемся меню пункт Копировать. Перейдем на лист Записная книжка и вставим скопированное туда командой Вставить с вкладки Главная. Далее – вернемся на лист Price и остановим запись. Сохраняя книгу MicrosoftExcel, содержащую макросы, убедитесь в том, что сохраняете ее в формате "Книга Excel с поддержкой макросов", то есть итоговый файл имеет расширение .xlsm. Управление макросами. Чтобы посмотреть макросы, находящиеся в других местах (например, в Normal.dotm), воспользуйтесь списком Макросы из. Имя выделенного макроса отображается в строке Имя. Именно с этим макросом мы можем совершать различные действия в данном окне. В частности, здесь доступны следующие варианты: Выполнить — выполняет макрос. Вместо того, чтобы пользоваться кнопкой быстрого вызова макроса или настраиваемой комбинацией клавиш, для выполнения макроса можно воспользоваться этой кнопкой. Это удобно для запуска макросов, которые используются очень редко. Изменить — нажав на эту кнопку, вы откроете редактор VisualBasic, который позволяет изменять макросы и создавать собственные программы. Создать — наберите в строке Имя желаемое имя нового макроса и нажмите на эту кнопку — система создаст новый пустой макрос и откроет его в редакторе. Удалить — удаление макроса.

6.Встроенные математические функции Для вычеслений VBA имеет специализированные функции: Abs Абсолютное значение; Atn Арктангенс; Cos Косинус числа; Exp Возвращает число e (2.718282), возведенное в степень аргумента функции.;Fix Отбрасывает дробную часть числа и возвращает целую; Int Отбрасывает дробную часть числа и возвращает целую. ;Log Возвращает натуральный логарифм числа;Rnd Возвращает случайное число типа Single, причем, это число находится между 0 и 1. Sgn Функция предназначена для определения знака числа;SinСинус;Sqr Квадратный корень; Tan Тангенс. Строковые функции:;Len(string)Возвращает длину строки. LCase(string) Возвращает строку, все символы которой записаны в нижнем регистре. UCase(string) Возвращает строку, все символы которой записаны в верхнем регистре. String(number, character) Возвращает строку, состоящую из number символов character. Left(string, length)Возвращает length символов, начиная с первого левого символа строки string. Right(string, length) Возвращает length символов, начиная с самого правого символа строки string. LTrim(string)Возвращает строку, в которой вырезаны все пробелы слева. RTrim(string) Вырезает из строки все пробелы справа. Trim(string) Вырезает из строки все пробелы слева и справа. Mid(string, start[, length]) Вырезаетизстроки string спозиции start length символов. Asc(string) Возвращает ASCII-код первого символа строки. Chr(charcode) Возвращает символ, соответствующий коду Пользовательские процедуры и функции. главное отличие процедуры от функции заключается в том, что функция возвращает в точку вызова некое значение, которое, как правило, является результатом обработки переданной функции информации. А процедура лишь выполняет какие-либо действия, но ничего в точку вызова не возвращает. Пользовательская процедура Ключевое слово Sub означает, что перед нами процедура. А модификатор доступа Public означает, что эту процедуру можно вызвать из любого модуля проекта. Существуют и другие модификаторы доступа, в частности, Private. Он дает доступ к процедуре только из того модуля, где она объявлена.Пользовательская функциястрока объявления функции - EndFunction, означает конец функции. Как и в случае с процедурой, внутри тела функции можно разместить операторы, необходимые для выполнения задачи. Однако, здесь есть одна очень важная особенность. После того, как найдено значение, которое функция должна возвратить, в тексте кода функции нужно присвоить это значение переменной, которая имеет то же имя, что и функция. В нашем случае, при имени функции Square это присвоение выглядит как Square = num_One ^ 2.Для испытания функции можно добавить в документ еще одну кнопку - cmd_UserCalc,

2. Начинаем программировать.Начнем запись макроса (Назовем его "Privet"). Откроем окно редактора VisualBasic с открытым в нем макросом. Окно редактора включает в себя несколько рабочих областей - окон, служащих для выполнения различных действий. В окне редактора присутствуют три рабочих области: Code (Код) - это окно, в котором пишут тексты VBA-программ и редактируют макросы..ProjectExplorer (Проводник Проекта) - это окно обычно открыто в левой верхней части окна редактора. Оно отображает информацию о компонентах проекта, позволяет быстро перемещаться между компонентами. Properties (Свойства) - отображает свойства выделенного объекта. Обычно располагается в левой нижней части рабочего окна. UserForm (Форма) - служит для редактирования пользовательской формы в визуальном режиме.Toolbox (Панель элементов управления) - содержит набор элементов управления (например - это кнопки, поля ввода и т.д.), которые можно добавлять на формы или в документы. ObjectBrowser (Обозреватель объектов) - служит для просмотра информации об объектах, доступных в данном приложении. Watch, Locals, Immediate - окна, средства которых используются при отладке приложений. SubPrivet () Это - начало процедуры макроса. Процедура - это самостоятельный участок кода.Последняя строчка нашего макроса выглядит так: EndSub .Получается, что все наши действия в ходе записи макроса описаны командами, находящимися между Sub и EndSub. Сразу после первой строки макроса можно увидеть несколько строчек, начинающихся со значка ' (апостроф). Он указывает на то, что текст данной строки - это комментарий. Комментарии в текстах VBA-программ автоматически выделяются зеленым цветом. Они нужны, чтобы объяснять какие-либо сложные места в и т.д. Дальше начинается код, который автоматизирует ввод текста. В нашем случае полезная часть макроса состоит всего из одной строчки. Вот она: Selection.TypeText:="Привет" . Нужно придавать огромное значение точкам, запятым, скобкам и кавычкам, которые попадаются в программе, чтобы программа не выдала ошибку.В приложениях MicrosoftOffice предусмотрена специальная вкладка - Разработчик. Она служит для работы с VBA-программами, элементами управления, которые можно добавлять в документ и т.д. Ее можно добавить на ленту с помощью окна Параметры- Разработчик. Если включить отображение вкладки Разработчик - в строке состояния редактора появится кнопка, с помощью которой можно быстро начать или остановить запись макроса.В последние годы огромную популярность приобрело так называемое объектно-ориентированное программирование (ООП). В частности, вам нужно разобраться, что такое классы, объекты, что такое методы, свойства и события объектов. Класс - это шаблон для создания объектов. Один класс может породить множество различных объектов.VBA в MSOffice 2007 поддерживает написание полностью объектно-ориентированных приложений классов и инструментария работы с ними.Объект - это нечто целостное, неделимое, содержащее в себе данные и код. В объекте может храниться информация и программные инструкции для обработки этой информации. У объектов есть свойства и методы. Объекты могут откликаться на события. Обычно пользователю доступны лишь те свойства и методы, которые специально для этого предназначены. Пользователь не может повлиять на внутренние механизмы объекта, работая лишь со специально выделенными для взаимодействия с внешним миром методами и свойствами. Обращение к методам объектов в VBA ведется таким образом: Объект.Метод.С помощью методов объекта мы даем объекту команды. Например, такая команда: Application.Quit, приводит к закрытию приложения. Со свойствами обычно работают так: Объект.Свойство=Значение Такой командой мы присваиваем некое значение свойству объекта. А так: Переменная=Объект.Свойство можно присвоить некоей переменной свойство объекта. Свойства-это, признаки объектов. Например, такая команда, txt_User_Name.Text="Александр", выведет в текстовом поле (объект txt_User_Name) слово "Александр". Эта команда модифицирует свойство объекта Text, которое отвечает за выводимый на объекте текст. Событие - это действие, которое объект распознает и на которое реагирует. Объекты могут объединяться в коллекции объектов. Фактически, коллекции - это объекты, которые содержат в себе другие объекты. Обычно в коллекцию входят объекты, имеющие один и тот же тип - то есть - одинаковые объекты. Объекты приложений Office объединены в иерархическую структуру, которую называют объектной моделью. У каждого приложения своя объектная модель, то есть свой набор объектов. Например, в MicrosoftWord на верхнем уровне иерархии стоит библиотека классов Word. Она включает в себя множество классов, например - Application, который символизирует приложение MicrosoftWord. Application, в свою очередь, включает в себя другие объекты, методы, свойства. Например, такая команда приводит к закрытию MicrosoftWord: Word.Application.Quit .Обычно при работе в MSWord опускают вызов объекта Word, то есть вышеприведенную команду вполне может заменить такая: Application.Quit. Вызов объекта Application тоже можно опускать, но делать это допустимо не всегда.В редакторе VBA есть средство для просмотра информации об объектах - ObjectBrowser. Нередко встречается ситуация, когда пользователям приходится одноврменно работать со старыми версиями MSOffice (например, OfficeXP, 2003) и новыми (Office 2007). Эти версии имеют различные форматы файлов. Например, в предыдущих версиях MSWord используется универсальный формат .doc для хранения файлов документов, .dot - для шаблонов, а в новой - .docx и .docm для документов (второй формат поддерживает макросы, а первый - нет), и .dotm - для шаблонов. Новый Office нормально работает со старыми версиями файлов, в том числе и с файлами, содержащими макросы. Старые версии в исходном виде не умеют работать с новыми файлами. Чтобы они смогли читать новые файлы, нужно установить специальный конвертер, который можно скачать с сайта Microsoft, однако это не гарантирует полную совместимость программного кода. Так, объектные модели приложений Office 2007 дополнены новыми объектами (например, OMath для работы с формулами в MSWord). Если вам приходится работать в среде, которая предусматривает параллельное использование двух разных версий Office, лучше всего создавать и отлаживать программы именно в той версии, в которой вы планируете их использовать. Большая часть материала данной книги справедлива для всех современных версий Office, однако, как уже было сказано, объектные модели приложений различаются, поэтому, используя тот или иной объект в устаревших версиях - обязательно сверяйтесь со справочной системой или исследуйте операции с помощью макрорекордера.

14.Коллекция Workbooks - работа с книгами

Основные операции, которые приходится выполнять при работе с книгами - это их автоматическое создание, выбор одной из открытых книг для обработки, открытиекниги. Все открытые книги принадлежат коллекции Workbooks. Практически все часто используемые методы и свойства коллекции Workbooksочень похожи на соответствующие методы и свойства коллекции Documents из объектной модели MS Word.Методы Коллекции Workbooks

Add, Close, Open - стандартная работа с книгамиAdd - создает новую книгу. Новая книга становится активной.Close - закрывает все открытые книги. Open - открывает указанную книгу. Основной параметр метода - имя открываемойкниги. Например, такой код позволяет создать новую книгу, присвоив ссылку на нее объектной переменной.Dim obj_Workbook As Workbook; Set obj_Workbook = Workbooks.Add. OpenText, OpenXML - открытие различных файлов

Эти методы предназначены для открытия текстовых файлов ( OpenText ) и XML-файлов ( OpenXML ) в виде книг MS Excel. Свойства коллекции Workbooks. Count Возвращает количество объектов в коллекции. В данном случае - количество открытых книг. Item Позволяет обращаться к выбранному элементу (отдельной книге ) в коллекции. В качестве идентификатора книги может использоваться ее индекс или имя. Объект Workbook Workboook - книга - это аналог документа ( Document ) в MicrosoftWord. Многие свойства и методы Workbook действуют аналогично свойствам объекта Document. Однако книга в объектной модели состоит из листов. Значит, для обращения к данным, хранящимся в книге, нужно сначала обратиться к листу.

События объекта Workbook В VBA-проекте, который прикреплен к книге, есть объект ЭтаКнига. Если сделать по нему двойной щелчок - будет открыто окно редактора кода, в котором, по обычной схеме, можно выбрать объект - в данном случае это Workbook, а также события, для которых автоматически будет создан обработчик. Книги в MicrosoftExcel могут реагировать на множество событий, среди них следующие, которые происходят при таких обстоятельствах: Activate - при активации книги. BeforeClose - перед закрытием книги, если книга изменялась и должен появиться запрос на ее сохранение - происходит перед запросом.. BeforePrint - перед печатью. BeforeSave - перед сохранением. Deactivate - при деактивации. NewSheet - при добавлении нового листа в книгу. Open - при открытии книги. SheetActivate - при активации любого листа SheetBeforeDoubleClick - после двойного щелчка в книге, до стандартной процедуры обработки. SheetBeforeRightClick - перед щелчком правой кнопки мыши. SheetCalculate - при пересчете листа или изменении данных, которые отображаются на диаграмме. SheetChange - при изменении содержимого ячейки. SheetDeactivate - при деактивации листа. SheetFollowHyperlink - при щелчке по гиперссылке. SheetSelectionChange - при изменении выделения.Листинг 14.4. Вывод информации об измененной ячейке (html, txt)

Здесь мы воспользовались параметрами, которые передаются вобработчик события. Параметр Sh содержит ссылку на лист, на котором произошли изменения, аTarget представляет собой ссылку на измененную ячейку или диапазон. Коллекция Worksheets Коллекция Worksheets содержит листы открытой книги. Ее свойства и методы служат для работы с ними.Методы коллекции WorksheetsAdd - добавляем листы в книгу. Позволяет добавить в книгу новый лист. Полный вызов метода выглядит так. Add(Before, After, Count, Type)

Before (До) и After (После) позволяют задавать позицию листа относительно других листов книги (можно использовать лишь один из них), Count задает количество добавляемых листов, а Type - тип листа. Чаще всего этот метод используют без параметров.

А так можно добавить в книгу столько листов, сколько указал пользователь в ответ на вопрос программы Листинг 14.6. Добавляем в книгу указанное количество листов (html, txt)

Обычно листы в книгах MS Excel имеют осмысленные имена. Однако, как вы могли заметить, метод Add не предусматривает задание имени вставляемому листу, оставляя его в значении по умолчанию. Чтобы переименовать добавленный лист, вам придется пользоваться свойством Name объекта Worksheet. Свойства коллекции Worksheets Count, Item, Visible - работа с объектам Мы уже не раз сталкивались с этими свойствами для других объектов. Count позволяет узнать количество объектов в коллекции, Item - обратиться к объекту по имени или индексу, Visible - отображать и скрывать объект. Объект Worksheet Worksheet - рабочий лист - его методы, свойства и события находятся в непосредственной близости от ячеек, с которыми, в основном, ведется работа при программировании для MS Excel.

3. VBA-редактор .Окно редактора VisualBasic выглядит одинаково во всех приложениях MicrosoftOffice. Давайте рассмотрим главное меню этого окна, описав назначение наиболее часто используемых пунктов. * File (Файл) — служит для работы с файлами. * File • Save — сохраняет файл. * File • ImportFile — позволяет импортировать внешний файл в редактор.* File • ExportFile — экспортирует данные из редактора во внешний файл. * File • Close and Return To Microsoft Word — закрывает VBA-редакторивозвращаетсяв Microsoft Word. * Edit (Правка) — содержит команды для правки. Помимо стандартных команд отмены и возврата последнего действия (Undo, Redo), вырезания, копирования, вставки (Cut, Copy, Insert), поиска (Find), это меню содержит несколько особенных команд. В частности, это ListProperties/Methods (Список Свойств/Методов) и другие. * View (Вид) — cодержит команды для отображения различных окон редактора. Названия команд соответствуют названиям окон. * Insert (Вставка) — служит для вставки в проект форм (Insert • UserForm), модулей (Insert • Module), процедур (Insert • Procedure), файлов (Insert • File) и модулей класса (Insert • ClassModule). Чаще всего вам придется вставлять в проект формы. * Format (Форматирование) — служит для управления расположением элементов управления на формах. * Debug (Отладка) — содержит команды, позволяющие отлаживать программы. * Run (Запуск) — содержит команды для управления выполнением программ. В частности, команда Run • Sub/UserForm (Запуск • Процедура/Форма) запускает на выполнение активную процедуру или форму .* Window (Окно) — стандартные команды для работы с окнами. * Help (Помощь) — помощь по VBA. В дальшейнем мы подробно рассмотрим многие из команд главного меню. В разделе Forms (Формы) мы можем видеть объект UserForm1 — только что вставленную в проект форму. Окно Toolbox (Элементы управления) содержит элементы управления, которые можно добавлять на форму. Элементы управления — это все то, что служит для управления работой программ. Свойства элементов управления могут быть отображены в двух разных представлениях. Первое – это алфавитный список (вкладка Alphabetic) второе – отображение по категориям (Categorized).Объединение сходных свойств в группы позволяет легче разбираться с их предназначением. На вкладке Categorized свойства объектов объединены в группы. Для удобства группы можно сворачивать и разворачивать. Appearance(Внешний вид) — отвечает за отображение объекта, за надписи на нем, за его имя. * Behavior (Поведение) — отвечает за поведение объекта. * Misc (Разное) — различные настройки.* Picture (Изображение) — информация об изображении, которое может отображаться на объекте. * Position (Расположение) — определяет размер и положение объекта. У форм есть группа свойств Scrolling (Скроллинг) — свойства этой группы управляют прокруткой формы. Важнейшие свойства элементов управления.Name (Имя) — очень важное свойство. По имени к объекту можно обратиться из программного кода. Желательно давать объектам осмысленные имена — так гораздо легче пользоваться ими при разработке программ. Имена ваших объектов должны состоять лишь из цифр, латинских букв, символов подчеркивания.Caption (Надпись) — определяет надпись, которая видна на элементе управления. Width (Ширина), Height (Высота) — определяют ширину и высоту объекта, которые измеряются в пикселях.Font (Шрифт) — при попытке редактирования этого свойства открывается окно настройки параметров шрифта, в котором можно выбрать гарнитуру, размер, начертание шрифта.ForeColor (Цвет шрифта) — задает цвет шрифта элемента управления. BackColor (Цвет фона) — позволяет задать цвет фона элемента управления. У кнопок и других элементов управления есть специфические свойства. В их число входят: Top (Расстояние от верха формы), Left (Расстояние от левого края формы) — задают положение элемента на форме. Visible (Видимость) — может принимать значения True (Истина) — то есть объект будет видимым, и False (Ложь) — объект будет невидимым.Enable (Включено) — если это свойство установлено в True (Истина) — объектом можно пользоваться. Если в False (Ложь) — объект будет неактивен. Элемент управления Label (Метка). Метки используются для размещения текстовой информации на формах.. Обработчик — это подпрограмма, которая будет выполняться если произойдет соответствующее ей событие. Первая строчка кода PrivateSubcmd_First_Click() это означает, что эта процедура будет выполнена при щелчке (Click) по кнопке с именем cmd_First. Ключевое слово Private называется модификатором доступности. Оно означает, что данная процедура недоступна для вызова из внешних модулей. У элементов управления существует обработчик события, назначаемый по умолчанию, то есть – при двойном щелчке. Обработчики других событий можно настроить в окне редактора кода. Также в списке представлена и сама форма, у которой тоже есть свои события, — это строка UserForm. Имя формы в этом списке не применяется, но оно нужно для доступа к форме из внешних программ, например — макросов, обработчиков событий других форм. Каждый элемент управления имеет уникальный набор событий, однако, в них не слишком сложно ориентироваться. Обычно события имеют осмысленные англоязычные названия, по которым можно догадаться об их предназначении. Для вывода сообщений в VBA есть встроенная команда MsgBox. Говоря о встроенных командах, часто используют слова "процедуры" и "функции". Главное отличие процедуры от функции – то, что функция возвращает в точку вызова какие-то значения, а процедура — нет. Однако,MsgBox может работать и как функция, и как процедура, поэтому и то и другое наименование будет правомерным. Как и многие другие команды, она имеет множество параметров. Но вам совсем необязательно помнить их, обращаясь к MsgBox. Дело в том, что редактор кода снабжен очень удобной системой подсказок. Так же редактор может автоматически завершать команды (Edit • CompleteWord)В контекстной подсказке по MsgBox можно почерпнуть информацию о структуре вызова этой функции, о тех параметрах, которые ей можно передать. Параметры — это те данные, с которыми будет работать функция. При вызове процедур и функций им можно передавать параметры в таком виде: MsgBoxPrompt:="Привет!" Здесь мы присвоили параметру Prompt значение "Привет", то есть наше окно должно вывести сообщение "Привет". Такой подход очень удобно использовать при вызове команд, принимающих множество параметров.

4. Подробности об элементах управления. На панели инструментов Toolbox в редакторе VBA отображается лишь их малая часть. Для того чтобы просмотреть установленные в системе элементы и вывести кнопки для их вызова на панель инструментов, щелкните правой кнопкой мыши по панели и в появившемся меню выберите пункт Additional Control (Дополнительные элементы управления). Form Среди событий форм можно отметить следующие. Initialize (Инициализация) — возникает перед появлением формы. На этом этапе форма готовится к открытию и в обработчик этого события обычно включают операции для настройки элементов управления, открытия внешних файлов. Error (Ошибка) — возникает при появлении ошибки в форме. Terminate (Завершение) — возникает при обычном завершении работы формы. В обработчик этого события можно добавить команды записи протоколов работы приложений, удаления временных файлов, в которых нуждалось приложение. Если вы сомневаетесь в том, когда именно происходит то или иное событие — проведите небольшой эксперимент. Создайте обработчик этого события и добавьте в него функцию MsgBox с какой-нибудь характерной фразой. Когда произойдет событие, вызывающее данный обработчик, появится окно сообщения и вы точно будете знать, на что именно реагирует обработчик.Если в вашем проекте имеется несколько форм, вам понадобится работать с ними, показывая и скрывая их при необходимости. Чтобы отобразить форму, воспользуйтесь методом Show (Показать). Для скрытия формы используйте метод Hide (Скрыть). Выполним небольшое упражнение. Создадим несколько форм и настроим навигацию между ними. Одна из форм будет служить главной — из нее вызываются остальные формы. Label Элемент управления label (Метка) используется лишь для вывода подписей к другим элементам управления. Обычно ему не назначают никаких обработчиков событий. CommandButton Элемент управления CommandButton (Кнопка) обычно используют для выполнения каких-либо команд. Основное событие кнопки — Click (Щелчок). Оно генерируется при щелчке по кнопке. Кнопка может воспринимать и другие события — всего их больше десятка. Обычно об их предназначении можно узнать из их же названий. Например, очевидно, что название события MouseMove переводится как "Перемещение указателя мыши". Это событие будет генерироваться всякий раз, когда над кнопкой будет перемещаться указатель мыши. Ниже мы напишем программу, работа которой будет основана на этом событии. TextBox. TextBox — текстовое поле. Обычно используется для ввода данных пользователем. Текст, который введен в текстовое поле, можно получить или изменить, воспользовавшись его свойством Text. Текстовым полям нечасто назначают события, однако, например, для проверки введенных данных сразу после ввода, можно использовать событие Change (Изменение). Оно генерируется всякий раз, когда содержимое поля меняется. CheckBox — флажок. Используется для включения и отключения каких-либо опций. Элемент управления представляет собой поле, где можно устанавливать и снимать флажок и надпись, где обычно выводится название и назначение флажка. Если флажок установлен — его свойство Value (Значение) устанавливается в True (Истина), если не установлен — в False (Ложь). Для того чтобы программно установить или снять флажок, можно воспользоваться его свойством Value, приравняв ему True или False, соответственно. Еще одно важное свойство флажка — TripleState. Если оно включено — флажок помимо True или False может иметь значение Null, которое можно интерпретировать как "Пустой флажок". Null-флажок нельзя модифицировать — он закрашен серым цветом. С флажком можно сопоставить событие Change (Изменить). Оно выполняется всякий раз при установке или снятии флажка. ToggleButton — выключатель. Это кнопка, которая может существовать в двух состояниях — включенном и выключенном. По действию она напоминает флажок, и обычно используется точно так же. Если кнопка находится во включенном состоянии — это может означать включение какой-либо опции, если в выключенном — выключении. Основное свойство такой кнопки — Value (Значение). Оно установлено в False (Ложь), когда кнопка находится в обычном состоянии, и в True (Истина), когда кнопка нажата. При изменении состояния кнопки генерируется событие Change (Изменение) — его можно использовать для проверки установленного значения и проведения каких-либо действий. SpinButton — счетчик. Этот элемент управления напоминает полосу прокрутки без центрального бегунка. Он служит для выбора значений из небольшого диапазона. Работа с ним аналогична работе с полосой прокрутки. Главное отличие — отсутствие у счетчика события Scroll (Прокрутка) и свойства Large Change (Большое изменение). Image — изображение. Этот элемент управления используют для вывода на форму изображений. За картинку, которая будет отображаться в Image, отвечает параметр Picture (Изображение). Настраивая этот параметр в панели Properties, вы должны будете выбрать нужный графический файл с помощью стандартного окна поиска файлов. Для того, чтобы изменить картинку в ходе выполнения программы, вы должны воспользоваться специальной функцией LoadPicture таким образом: Имя_рисунка.picture = LoadPicture (полный_путь_к_файлу) Среди других важных свойств рисунка можно отметить такие, как AutoSize (Автоматический размер). Если свойство установлено в True (Истина) – элемент управления автоматически изменяет свой размер в соответствии с размером загруженного в него изображения. Рисунку может быть назначено какое-нибудь событие. Например, при щелчке (событие Click ), который представляет собой фотографию сотрудника, может выводиться краткая информация о нем и т.д. MultiPage — набор страниц. С помощью этого элемента можно создать многостраничное окно. Доступ к отдельным частям такого окна осуществляется посредством выбора вкладок. TabStrip — набор вкладок. Используется для организации нескольких рабочих областей на форме. В объект входит семейство Tabs (Вкладки), которое содержит все активные вкладки. Основное событие объекта — Change (Изменение). Оно происходит при смене вкладки. Calendar — календарь. Этот объект удобно использовать для ввода и отображения даты. Для того чтобы считать дату, можно использовать его свойство Value (Значение). С помощью этого же свойства можно установить дату на календаре. При изменении дня недели генерируется событие Click (Щелчок), при смене месяца или года – события NewMonth (Новый месяц) и NewYear (Новый год).

5. Основы VBA: синтаксис, переменные, типы данных.Понятие синтаксиса в языках программирования – это так называемая совокупность правил, определяющая порядок использования и организации элементов данного языка. Поэтому прежде, чем приступить к написанию собственного кода VBA, необходимо ознакомиться с синтаксисом этого языка программирования. Коды программы VBA состоят из выражений (statements). В каждой строке кода, как правило, располагается одно отдельное выражение. Но данное правило имеет исключения: несколько выражений могут быть расположены в одной строке и разделены двоеточием; использование символа продолжения строки (пробел, за которым следует символ подчеркивания) позволяет создавать выражение, занимающее несколько строк. Некоторые строки кода оказываются слишком длинными и не помещаются целиком в пределах видимой области окна редактирования, что делает неудобным их чтение и редактирование. Чтобы разбить строку в определенной позиции, наберите пробел, затем символ подчеркивания ( _ ) и нажмите клавишу <Enter>. Не допускается использовать символ продолжения строки только внутри заключенных в кавычки строк. Рекомендуется продолжение каждой строки выделять отступом. Для VBA это не имеет никакого значения, но зато при чтении кодов вашей программы каждому будет понятно, что это продолжение предыдущей строки, а не начало новой. В кодах VBA комментариями (comments) называется текст, который игнорируется и никак не влияет на ход выполнения программы. Вы можете (и должны) использовать комментарии для добавления сопроводительных пояснений о том, как работает программа, значения каких аргументов требуется передавать процедурам. Советуем добавлять любые замечания, которые в будущем могут оказаться полезными вам или другим программистам. Форматирование кодов Так называемые пробельные символы (white space) в кодах программы (обычные пробелы, символы табуляции и пустые строки) игнорируются программой VBA, однако вы с успехом можете использовать их для визуального форматирования кодов, чтобы сделать их более удобными для чтения и восприятия. Добавляйте пустые строки, чтобы визуально отделить фрагменты кодов, функционально не зависящие друг от друга, а также добавляйте к выражениям большие или меньшие отступы, в зависимости от их отношения к другим выражениям. Константами (constant) называются данные, которые не изменяются в ходе выполнения программы. В языке VBA различают константы двух типов: литеральные (literal) и символьные (symbolic).Литеральные константы набираются непосредственно в кодах программы и могут представлять собой числа и строки (текстовые значения). Строковые константы должны заключаться в двойные кавычки. Например Моя Строка = "четыре" МоеЧисло = 4 В данном случае значения “четыре” и 4 являются литеральными константами. Что касается числовых значений, VBA распознает их экспоненциальную запись и шестнадцатеричную запись:1.2E5' число 1,2, умноженное на 10 в пятой степени. Шестнадцатеричная система исчисления основана на использовании 16 цифр, тогда как привычная нам десятеричная система построена на применении десяти цифр. В шестнадцатеричной системе цифры от 0 до 9 обозначают первые десять цифр , а для обозначения последующих шести цифр используются первые шесть букв латинского алфавита (от А до F). Символьные константы имеют собственные имена. Если в коде программы возникает необходимость в использовании значения такой константы, следует указать ее имя. Определяются символьные константы с помощью ключевого слова Const: Const Имя Константы = Значение Константы В качестве имени константы можно использовать любое допустимое в языке VBA имя (см. врезку “Правила выбора имен в языке VBA”). Значение Констан- ты — это литеральная, числовая либо строковая константа, определяющая значение создаваемой символьной константы. Например: Const МоеИмя = "Питер" Const Мой Возраст = 30. Объявление и использование переменных . Переменные содержат в себе значения, изменяемые в ходе выполнения программы. В языке VBA каждая переменная характеризуется своим типом (type), от которого зависит, какого рода данные в ней могут храниться. Создавая или объявляя переменную, вы определяете также ее тип. В простейшем случае синтаксис объявления переменной состоит из одного выражения, включающего в себя: ключевое слово Dim; имя переменной; ключевое слово As; название типа переменной. Объявление переменной в кодах программы выглядит следующим образом: Dim Имя Переменной As тип В одной строке можно объявить сразу несколько переменных: Dim ИмяПеременной1 As тип1, ИмяПеременной2 As тип2, ... Имена переменных должны быть составлены с учетом тех же правил, которые были рассмотрены ранее в этом уроке. Имя переменной должно быть уникальным в пределах ее области видимости. Подробнее об области видимости будет рассказано далее в этом уроке. Типы данных - это определенные виды данных, которые VBA сохраняет и может манипулировать. VBA использует тип Date для хранения дат и времени. При работе с этим типом данных следует иметь ввиду, что VBA-типы Date не являются такими же типами, как в рабочих листах Excel, хотя во многом и схожи с ними. Например, базовой датой для VBA-типа Date является 30 декабря 1899 года, а в Excel - 1 января 1900 года. VBA-тип Date является типом последовательных дат. VBA использует отрицательные числа для представления дат ранее базовой даты (30 декабря 1899), и положительные - для дат после базовой. Число 0 представляет саму дату 30.12.1899. В значении последовательной даты целая часть - это общее число дней от базовой даты. Дробная часть (цифра справа от десятичного знака) - эти цифры обозначают время дня как часть дня. Один час - это 1/24 дня, одна минута - 1/1440 дня, секунда - 1/86400 дня. Можно вычитать одну дату из другой, добавлять к дате или вычитать числа для изменения ее значения. В VBA имеется несколько встроенных процедур для отдельного извлечения года, месяца, дня, часов, минут и секунд переменной типа Date. VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double, Currency. Они используются для хранения чисел в различных форматах, в зависимости от конкретного типа. Целые числа Integer - это целое число без дробной части (целые числа никогда не содержат десятичного знака, даже если десятичная часть равна нулю). VBA предоставляет три типа целых данных: Byte, Integer, Long. Byte - наименьший из трех типов целых данных, предназначен для хранения числе от 0 до 255. Этот тип обычно используют для хранения двоичных данных. Integer использует диапазон целых чисел от -32768 до 32767. Long использует диапазон целых чисел от -2147483648 до 2147483647. Byte, Integer, Long типы требуют меньше памяти для хранения чисел, чем другие численные типы данных VBA, а математические операции и операции сравнения над числами указанных типов быстрее, чем эти же операции для численных типов данных с плавающей точкой. VBA автоматически преобразует данные типов Byte, Integer, Long в текст, когда они выводятся на экран, используя такие процедуры, как Msg Box. Числа с плавающей точкой. Числа с плавающей точкой могут иметь любое число цифр до или после десятичной точки (в пределах границ конкретного типа данных). Иногда их называют действительными числами. Этот тип данных используют тогда, когда требуется хранить числа, имеющие дробную часть. VBA имеет два типа данных с плавающей точкой: Single, Double. Single используется для хранения: отрицательных чисел от -3,402823*1038 до -1,401298*10-45 и положительных от 1,401298*10-45 до 3,402823*1038.Числа, хранимые с использованием типа Single, называются числами одинарной точности. Double используется для хранения: отрицательных чисел от -1,79769313486232*10308 до -4,94065645841247*10-324 и положительных от 4,94065645841247*10-324 до 1,79769313486232*10308. Числа, хранимые с использованием типа Double, называются числами двойной точности. Тип данных Currency Это число с фиксированной точкой, т.е., десятичная точка всегда находится в одном и том же месте - справа от точки всегда имеются четыре цифры. Этот тип данных используется при денежных вычислениях, когда требуется высокая точность. Currency хранит числа в диапазоне от -922337203685477,5808 до 922337203685477,5807. Текстовые строки Любые текстовые данные, сохраняемые в VBA, называются строками. Для их хранения предназначен тип данных String. Строка может содержать текстовые символы любых типов: буквы, цифры, знаки пунктуации, разделительные символы и пр.Строки всегда заключаются в двойные кавычки. Существует две категории строк: строки переменной длины и строки фиксированной длины. По умолчанию в VBA все строки переменной длины. Логические значения VBA-программа принимает то или иное "решение", основываясь на различных условиях. Любое условие может принимать два значения: True (Истина) или False (Ложь). Логические значения True и False называются булевскими значениями, а тип данных - Boolean. Булевские значения получают как результат операции сравнения. Операции сравнения имеет место при сравнении одного с другим, например, при сравнении двух чисел для определения, которое из них больше. Тип данных Variant Это особый тип данных, который может сохранять любые типы, за исключением типа Object. VBA использует этот тип данных для всех переменных, если только они не объявлены явно. Данные типа Variant принимают характеристики определенного типа, который они сохраняют в данный момент. Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. VBA использует для данных типа Variant наиболее компактное представление, возможное для конкретных значений, находящихся в данных. Несмотря на то, что типы Variant удобны и избавляют от некоторой части работы при написании кода, они требуют большего объема памяти, чем любой другой тип данных, за исключением больших строк. Кроме того, математические операции и операции сравнения над данными типа Variant выполняются медленнее, чем подобные операции над данными любого другого типа. Следует избегать использования переменных Variant.