11. Список файлов FileListBox – отображает файлы текущего каталога, откуда их можно выбирать. Основным событием является Click.
12. Рамка (Фрейм) Frame – его назначение объединять в группу элементы управления, элементы объединения с помощью рамки. Можно как единое целое перемещать, активировать и деактивировать, делать видимыми и невидимыми. Для объединения элементов в группу следует сначала создать рамку, затем добавить в него нужные элементы управления.
14. Окно с рисунком PictureBox – предназначен для отображения рисунков и других графических объектов. Этот элемент как и рамка, является контейнером. Поэтому его можно использовать для объединения других элементов.
1.1Использование VBA в MicrosoftExcel
VBA позволяет существенно расширить возможности Excel. С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь специалистом в области программирования. VBA имеет графическую инструментальную среду, позволяющую создавать экранные формы и управляющие элементы. С его помощью можно создавать свои собственные функции для Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню и многое другое.
Редактор VBA активизируется из Excel одним из следующих способов:
- командой меню СервисÞМакросÞРедактор VisualBasic;
- комбинацией клавиш <Alt+F11>;
- кнопкой панели инструментов VisualBasic
.Вернуться из редактора VBA в приложение можно по комбинации клавиш <Alt+F11>, по команде ViewÞMicrosoftExcel или через панель задач.
Знакомство с VBA мы рекомендуем начинать с создания макросов, когда сама программа Excel записывает выполняемые команды и генерирует программный код в виде процедуры. Между макросом, который создается в процессе записи, и VBA-программой, код которой мы вводим вручную, принципиальной разницы нет. В дальнейшем процедуру макроса можно модифицировать, добавляя новые команды или удаляя лишние. Тщательный разбор команд поможет освоить принципы языка VBA, а практическое написание программ значительно ускорит процесс.
Структура приложения Excel
При открытии рабочей книги автоматически активизируется объект Application, определяющий само приложение, и все встроенные в него объекты. Этот объект находится на вершине иерархической структуры. Приложение включает рабочие книги (Workbooks) и различные системы надстройки. В свою очередь, рабочие книги содержат рабочие листы (Sheets) и другие объекты. Наконец, рабочие листы включают самый важный объект – диапазон ячеек (Range).
Так как приложение разрабатывается на базе существующих таблиц, все результаты действий должны быть связаны с ячейками рабочего листа. Специального объекта ячейки в Excel не существует, в данном случае объект Range используется и для одной-единственной ячейки, и для интервала ячеек.
Редактор VisualBasicforApplication в визуальном режиме позволяет просмотреть структурный состав объектов, обеспечивает добавление новых и редактирование существующих элементов, в том числе и макросов.
Главное окно редактора (рис. 1) включает следующие элементы: окно проекта (Project), окно формы (UserForm), окно программного кода (Code), окно просмотра (ObjectBrowser).
Структура программного кода VBA
Программа VBA представляет собой совокупность процедур и функций, размещенных в зависимости от особенностей решаемой задачи в одном или нескольких модулях (это специальные разделы Excel). Добавление модуля осуществляется по команде InsertÞModule (в этом случае программный код составляется пользователем) или при создании макроса (когда программа создается автоматически). Созданному модулю присваивается стандартное имя Module1, Module2 и т. д.
Каждый модуль отображается в окне, который имеет две области: общую область и область подпрограмм. В общей области помещаются операторы описания переменных, которые являются общими для всех процедур и функций этого модуля. В области подпрограмм помещается код программы. Окно программного кода предназначено для ввода, просмотра и редактирования процедур модуля. В данном окне можно просмотреть код выбранной процедуры или всех процедур модуля сразу.
Для удаления модуля следует: выделить имя модуля, выбрать команду FileÞRemoveModule, щелкнуть в окне диалога на кнопке "Нет".
МАКРОСЫ. Макрос – это последовательность команд и действий пользователя, записанная и хранимая внутри документа и исполняемая Excel так же, как пользователь производил эти действия. Последовательность действий пользователем выполняется один раз при записи макроса, затем автоматически производится Excel при каждом запуске макроса. Большинство команд, которые можно выполнить с использованием меню, клавиатуры или мыши, можно записать в макрос и выполнить их при необходимости. С помощью макроса можно строить числовые ряды, копировать таблицы, выполнять переход на нужные листы, сохранять информацию, работать в режиме ввода и т.д. Макрос записывается в виде процедуры с заданным именем в модуль. Имя макроса может состоять из букв, цифр и символа подчеркивания ( _ ).
Для записи макроса необходимо: выполнить команду СервисÞМакросÞНачать запись, в окне диалога "Запись макроса" задать имя макроса и сочетание клавиш для быстрого выполнения макроса (рис. 2); затем выполнить нужные действия; после чего закончить запись макроса по команде СервисÞМакросÞОстановить запись. При записи макроса используются команды меню, кнопки панели инструментов, ярлычки листов, клавиатура.
Макрос представляет процедуру, начинающуюся с ключевого слова Sub и заканчивающуюся словом End Sub. Первые строки процедуры являются комментариями, они содержат имя макроса, дату записи, автора и комбинацию клавиш. Далее следуют команды, записанные по правилам VBA. Каждая команда соответствует выполненному действию.
Язык программирования VBA имеет свои правила написания программного кода. Он использует свой алфавит, включающий буквы латинского алфавита и кириллицу; цифры от 0 до 9; символ подчеркивания.
Из этих символов состоят имена процедур, переменных, меток переходов, константы и команды.
В состав алфавита также входят пробелы для отделения слов друг от друга и знаки операций (+ - * / ^ = > < ( ) [ ] { } ‘ & @), в том числе составные ( >=, <=, <>).
Программный код VBA представляет собой последовательность команд, записанных по правилам языка Basic. Имена переменных, констант, процедур обозначают посредством идентификаторов, учитывая при этом, что имя должно быть содержательным, оно должно начинаться с буквы, не должно содержать точки, пробела, разделительных символов, зарезервированных слов. Зарезервированные слова (As, Public, Then, All и др.) выводятся синим цветом. Примеры правильных имен: strMyName, strФамилия. Примеры неправильных имен: 2Week, Second.Week.
Каждая команда записывается в отдельной строке по определенному правилу.
В VBA принято команду называть оператором, правило записи команды – синтаксисом или форматом.
Операторы VBA имеют следующие форматы:
Объект.Свойство = Значение
Объект.Метод [Параметр1] [,Параметр2]...],
где: объект – имя объекта, для которого устанавливается свойство или метод. Обычно цепочка объектов начинается с объекта Application, который можно опускать. Например, ссылка Application.ActiveCell или просто ActiveCell – это обращение к активной ячейке. При работе с одной рабочей книгой объект WorkBook также можно опустить;
Свойство – характеристика объекта, подлежащая изменению;
Значение – новое состояние объекта;
Метод – команда или процедура;
Параметр – аргумент, используемый методом. Если параметров несколько, они разделяются запятой.
Знак апостроф ( ‘ ) в начале строки означает, что команда или сообщение в строке используется как поясняющий текст и игнорируется VBA. Такие строки в процедуре отмечены зеленым цветом.
Если в командной строке нарушен синтаксис или сама команда неверна, она выделяется красным цветом.
Для переноса части команды на другую строку в конце первой необходимо вставить пробел, затем символ подчеркивания ( _ ).
Примеры:
Sheets("Лист1").Select – оператор выделения рабочего листа, где Sheets("Лuст1") – объект, Select – метод.
Sheets("Лист1").Range("A1").Value = Sheets ("Выпускпродукции"). Range("D5") – оператор, присваивающий ячейке Лист1!А1 значение из ячейки Выпуск продукции!D5, Value – свойство.
1.2Адресация ячеек в Excel
В Excel ячейка, строка, столбец и диапазон ячеек рассматриваются как один объект Range.
Для определения диапазона используются различные средства, задаваемые с помощью следующих свойств и методов.
Рис 1.1 (Вид ячеек)
Range – свойство, определяющее диапазон ячеек;
Cells – свойство, позволяющее выбирать ячейки рабочего листа;
ActiveCell – свойство, возвращающее одну активную ячейку;
Selection – метод, возвращающий выделенный объект.
Для доступа к диапазону ячеек чаще всего используются свойства Range и Cells.
Для ссылки на ячейки используется два формата.
Формат А1 (обычный). Ссылка состоит из имени столбца и номера строки. Например, D4. Ссылка может быть относительной (D4) и абсолютной ($D$4). Ссылка может указывать диапазон ячеек. Полный адрес диапазона может включать имя рабочего листа.
Формат R1C1. В данном формате R задает номер строки, С – номер столбца, ссылка является абсолютной. Для указания относительной ссылки задается смещение по отношению к активной ячейке. Смещение указывается в квадратных скобках, знак указывает направление смещения. Например, R[-2]C – ссылка на ячейку, расположенную на 2 строки выше в том же столбце. R[2]C[3] – ссылка на ячейку, расположенную на 2 строки ниже и 3 столбца правее. Ссылка на одиночную ячейку имеет вид: