2 СРЕДСТВА РЕАЛИЗАЦИИ ИМИТАЦИОННОЙ МОДЕЛИ
2.1 Табличный процессор ExcelИмитационная модель автоматизированного участка обработки деталей реализована при помощи табличного процессора MS Excel и встроенной среды программирования Visual Basic for Application.
Microsoft Excel - приложение, предназначенное для работы с электронными таблицами. Excel - это простой, удобный и эффективный инструмент, позволяющий проанализировать данные и, при необходимости, проинформировать о результате заинтересованную аудиторию, используя электронную почту или Интернет.
Табличный процессор – это интерактивная компьютерная программа, которая работает с данными (электронными таблицами), представляющими собой набор строк и столбцов.
Наиболее мощные возможности Excel, выделяющие данный табличный процессор среди данного класса программ заключаются в следующем:
· проведение различных вычислений с использование мощного аппарата функций и формул;
· исследование влияния различных факторов на данные;
· решение задач оптимизации;
· получение выборки данных, удовлетворяющих определенным критериям;
· графическое отображение данных в виде диаграмм, линий, поверхностей и т.п.;
· статистический анализ данных.
Документы (файлы), которые обрабатывает программа Excel, называются рабочими книгами (или просто книгами). Рабочая книга, как и любая книга, состоит из листов. Любой из листов представляет собой таблицу, состоящую из строк и столбцов. Максимально рабочая книга Excel включает до 255 листов, каждый из которых разделен на 256 столбцов и 16 384 строк, что достаточно практически для любой задачи.
Горизонтальные строки и вертикальные столбцы составляют двумерную таблицу, а листы добавляют третью составляющую. Строки нумеруются от 1 до 65 536, столбцы обозначаются от A до IV (вначале от А до Z, затем от АА до АZ, затем от ВА до ВZ и так вплоть до IV). Листам присваиваются имена Лист1, Лист2, Лист255 или любые другие имена, состоящие не более чем из 31 символа.
Переход от одной открытой книги к другой выполняется с помощью команд меню Window (Окно), а переход с листа на лист — щелчком на ярлычке, после чего соответствующий лист переносится на передний план.
В Excel используются листы двух типов. Их назначение следующее:
- Sheet (Лист) — применяется для ввода и обработки числовых данных;
- Chart (Диаграмма) — предназначен для создания и хранения диаграмм, не внедренных в рабочие листы.
Область на пересечении строки и столбца таблицы называют ячейкой. Ячейку, на которой стоит курсор, называют активной.
Каждой ячейке соответствует свой адрес, определяющийся строкой и столбцом, в которых помещены данные ячейки. При записи адреса в Excel сначала указывается столбец, затем строка. Ячейке, которая находится в верхнем левом углу, присвоен адрес А1, а ячейке, которая находится в самом нижнем правом углу, — адрес IV65536.
Чтобы указать дополнительно лист, следует вначале адреса поставить имя этого листа и восклицательный знак «!» перед координатами столбца и строки. Выделяют 4 типа диапазонов на листе:
· одна ячейка;
· одна или более строк;
· один или более столбцов;
· прямоугольная область ячеек.
Для указания диапазонов в формуле или в команде используются ссылки. В качестве ссылки для одной ячейки выступает ее адрес, например D14. Чтобы сослаться на множество строк применяют номера начальной и конечной строк, разделенные двоеточием. Аналогично, чтобы указать несколько столбцов используют имена начального и конечного столбцов. Для задания произвольного прямоугольного диапазона ячеек указываются адреса левой верхней и правой нижней ячеек через двоеточие.
Работать с рабочими книгами можно после того, как в них будут введены данные. Все данные, которые вводятся в таблицу, размещаются и хранятся в ячейках. В таблице насчитывается большое количество ячеек, а каждая ячейка может включать до 255 символов. Обычно в одну ячейку вводят одно число или короткую текстовую строку. В одной ячейке может находиться либо число, либо текст. Поэтому, прежде чем вводить в ячейку данные, следует решить, к какому типу они относятся.
В любую ячейку рабочей таблицы Excel можно ввести как значение, так и формулу. Значения – это числа, текст или последовательности символов даты или времени. Формулы – это комбинации значений, данных, содержащихся в ячейках, и операторов.
Основное различие между числами и текстом заключается в том, что с числами выполняются различные арифметические операции, а с текстом нет.
По ходу ввода Excel определяет, является ли вводимый элемент числом или текстом. Если вы вводите только числа: 0,1,2,3,4,5,6,7,8,9 или символы, используемые при записи чисел: +, -, (, ), ,, р., %, ., *, /, Е, е, то Excel рассматривает введенный элемент как число. В том случае, если вводится значение даты или времени в одном из встроенных в Excel форматов, то и значение даты, и времени будут тоже рассматриваться как число. Правильно построенная формула, результатом которой является число, также обрабатывается как число. Все остальное считается текстом.
Excel предоставляет возможность вводить числа в различном формате. Можно вводить десятичные числа, денежные единицы, проценты и представлять число в экспоненциальном виде. Excel преобразует введенное значение в число с точностью до 15 знаков. Затем можно представить это число совершенно в другом формате.
Текстовые записи могут представлять собой любые последовательности букв, цифр и специальных символов.
Значения даты и времени необходимо вводить в определенном формате. Пользовательские форматы даты и времени собраны в диалоговом окне Формат ячеек, вызываемого из меню Формат по команде Ячейки. В Excel дата и время рассматриваются как числа, поэтому с ними можно выполнять различные арифметические операции и использовать при различных вычислениях.
Любой ввод данных, начинающийся со знака «=», интерпретируется в Excel как формула. В строке формул отображается сама формула, а в ячейке виден результат вычисления по этой формуле.
Редактирование данных можно выполнять, используя клавиши <Backspace> и <Esc>, а также клавишу <F2>. Если при редактировании данных нажимается клавиша <Backspace>, то будут удалены символы слева от точки вставки, если клавиша <Esc>, то будет удален весь введенный в ячейку фрагмент.
Для редактирования содержимого ячейки после того, как ввод завершен, необходимо выделить ее и нажать клавишу <F2>. В строке состояния появится индикатор режима Правка, а справа от элемента в ячейке будет зафиксирована точка вставки. С помощью клавиш управления курсором можно перемещать точку вставки в ячейке и изменять отдельные символы.
При вводе данных часто возникает проблема вставки пустой строки или пустого столбца в таблицу. Для этого следует установить маркер в какой-нибудь ячейке столбца, перед которым нужно вставить новый столбец и выполнить команду Вставка/Столбец. Аналогично для вставки строки выполняется команда Вставка/Строка.
В Excel позволяют изменять размеры строк и столбцов команды Столбец и Строка в меню Формат. После выбора нужной команды открывается подменю, в котором выбирается элемент Ширина или Высота соответственно. В появившемся диалоговом окне задается ширина столбца в символах или высота строки в пунктах.
Можно изменить ширину столбцов с помощью мыши. Для этого указатель мыши необходимо поместить на вертикальную линию, разделяющую заголовки столбцов (вид указателя изменится) и при нажатой левой кнопке перетащить ее в нужном направлении. Изменение высоты строк выполняется аналогично. Указатель мыши помещается на разделительную линию между заголовками строк, и эта линия перетаскивается вверх или вниз.
Основным достоинством Excel является наличие мощного аппарата формул и функций.
Формула - последовательность символов, начинающихся со знака «=». В эту последовательность символов могут входить постоянные значения, ссылки на ячейки, имена, функции или операторы. Если значения в ячейках, на которые есть ссылки в формулах, меняются, то результат изменится автоматически. В строке формул отражается содержимое ячейки, в которой расположен курсор, а, следовательно, эта ячейка является текущей или активной.
Функция – это специально созданная формула, которая выполняет операции над заданным значением или значениями. Используются функции для выполнения стандартных вычислений в рабочих книгах. Значения, которые используются для вычисления функций, называются аргументами. Значения, возвращаемые функциями в качестве ответа, - результатами.
При вводе формул следует соблюдать 3 правила:
· сначала должна быть активизирована та ячейка, в которой будет находиться результат.
· каждая формула начинается со знака равенства.
· при написании формулы используются адреса (имена) ячеек, а не их содержимое.
Ссылки указывают на то, в каких ячейках находятся значения, которые нужно использовать в качестве аргументов формулы. С помощью ссылок можно использовать в формуле данные, находящиеся в различных местах рабочего листа, а также использовать значение одной и той же ячейки в нескольких формулах. Можно ссылаться на ячейки, находящиеся на других листах рабочей книги, в другой рабочей книге или даже на данные другого приложения.
Ссылки на ячейки используют адреса ячеек, т.е. заголовки соответствующих строк и столбцов рабочего листа.
В формулах используются относительные и абсолютные ссылки.
По умолчанию все ссылки – относительные. При копировании они преобразуются и соответствуют новому расположению формулы.
Абсолютные ссылки применяются в случаях, когда ссылка на конкретную ячейку не должна изменяться при копировании формул. Для указания абсолютной ссылки устанавливается знак доллара «$» перед ссылкой. Комбинация абсолютных и относительных ссылок образует смешанную ссылку.
Функции в Excel не только облегчают ввод данных, но и выполняют специальные расчеты. Они могут использовать координаты диапазонов, именованные диапазоны и обычные числовые значения.
Каждая функция состоит из имени функции и аргумента.
Имя функции (например, СУММ, СРЗНАЧ, МИН, МАКС) указывает на ее назначение.
Аргумент (например, В2:В12) сообщает Excel какие адреса ячеек задействованы в данной функции.
Связывание – это процесс использования ссылок на ячейки из внешних рабочих книг в целях получения данных для своей рабочей таблицы.
Общий синтаксис для формулы с внешней ссылкой выглядит следующим образом:
=[ИмяРабочейКниги]ИмяЛиста!АдресЯчейки.
Если формула содержит ссылки на ячейки из другой рабочей книги, то эта книга необязательно должна быть открыта. Если рабочая книга закрыта и не находится в текущей папке, то необходимо добавить к ссылке полный путь.
Если рабочая книга связана с несколькими рабочими книгами, то может возникнуть необходимость просмотреть список всех исходных рабочих книг. Для этого используют команду ПравкаÞ Связи. В результате появляется диалоговое окно Связи, в котором перечислены все исходные рабочие книги, а также другие типы связей с другими документами. Это диалоговое окно используется и для обновления связей. Для этого в нем выбирают соответствующую исходную рабочую книгу и команду Обновить.
Иногда при вводе формулы Excel выдает значение, которое начинается с символа решетка (#). Это говорит о том, что данная формула возвращает ошибочное значение. В подобном случае следует исправить формулу (или ссылку на ячейку содержащуюся в этой формуле), чтобы избавиться от сообщения об ошибке. Если ячейка полностью заполнена знаками решетки (#), это означает, что столбец недостаточно широк, чтобы отобразить некоторую величину. В этом случае нужно или расширить столбец, или изменить числовой формат ячейки.
Большие массивы информации обычно хранятся в виде базы данных и обрабатываются специальными программами. В Excel аналогом простой базы данных является список. Он представляет собой группу строк, содержащих связанные данные. Отличительная особенность списка заключается в том, что каждый его столбец содержит однотипные данные. Если провести аналогию между списком и базой данных, то можно сказать, что столбцы списка являются полями базы данных, а его строки — записями.
Сценарий представляет собой набор сохраненных программой Excel значений, которые она может автоматически подставить в ячейки рабочего листа. Сценарии можно использовать для прогноза результатов моделирования и расчетов. Существует возможность создать отчет по результатам работы сценария, который содержит как исходные, так и итоговые значения, что позволяет прослеживать зависимости между данными в таблице [11].
Значение диаграмм как графической формы представления числовых данных трудно переоценить. Они позволяют не только повысить наглядность излагаемого материала, но и отобразить соотношение различных величин или динамику изменения показателей. В Excel предусмотрены средства работы с диаграммами различных типов.
В Excel существует возможность красочно оформлять рабочие листы, используя для этого различные графические объекты. Причем такие объекты можно создавать непосредственно в самой программе Excel, а можно внедрять из других приложений. Для создания графических объектов в Excel предназначен встроенный графический редактор, доступный при наличии панели инструментов Drawing (Рисование).
Ошибочное значение | Описание |
# ДЕЛ / 0! | 1) Формула пытается выполнить деление на 0. 2) Формула пытается выполнить деление на содержимое пустой ячейки |
#ИМЯ? | В формуле используется имя, которое Excel не может распознать. Например, удалено имя, используемое в формуле, или при вводе текста где-то пропущена кавычка |
#Н/Д | Неопределенные данные. Формула ссылается (прями или косвенно) на ячейку, содержащую функцию, ссылающуюся на недопустимый тип данных |
#ЧИСЛО! | Проблема связана со значением; например, задано отрицательное число там, где необходимо положительное. |
#ССЫЛКА! | Недопустимая ссылка; например, формула ссыпается на ячейку, удаленную из рабочей таблицы. |
#ЗНАЧ! | В формулу включен аргумент недопустимого типа. |
Рис. 1.4.4.1. Типы ошибок в формулах Excel
В таблице перечислены типы ошибочных значений, которые могут появиться в ячейке, содержащей формулу. Формулы могут возвращать ошибки и в том случае, если ячейки, на которые в них есть ссылки, содержат ошибочные значения. Этот эффект носит название цепной реакции – когда единственное ошибочное значение может породить ошибки во многих других ячейках, содержащих формулы со ссылкой на эту ячейку.
2.2 Visual Basic for ApplicationVBA является единой средой разработки приложений во всех программах Microsoft Office 2003. Основные принципы работы в среде VBA и в среде Visual Basic 2003 идентичны. Перечислим главные преимущества, получаемые в результате применения языка VBA.
Во-первых, с помощью VBA можно записывать последовательности повторяющихся команд, характерных для какого-либо приложения, и назначать правила (условия), в соответствии с которым эти последовательности (процедуры VBA) будут вызываться в приложении. Например, после нажатия некоторой кнопки, рабочий лист Excel будет отформатирован с учетом ваших требований, записанных на VBA и сохраненных в рабочей книге или шаблоне.
Во-вторых, применив средства VBA, можно обеспечить нестандартный диалог с пользователем, создавая диалоговые формы и обрабатывая реакцию пользователя на событие в приложении.
Наконец, использование единого языка программирования способствует более тесному взаимодействию Excel с продуктами Microsoft Office. С помощью VBA можно разрабатывать приложения, одновременно применяющие компоненты нескольких программ [12].
В Excel существует возможность создавать собственные макросы и таким образом автоматизировать выполнение основных операций. Макрос представляет собой последовательность команд и функций, записанных в модуле VBA. Насколько сложными могут быть макросы, можно судить по входящим в пакет поставки Excel надстройкам, при создании которых использовались средства макропрограммирования.
Существует два способа создания макроса: записывать свои действия во время работы с листом Excel или же написать макрос, используя редактор Visual Basic.
Наиболее простым способом создания макрокоманды является ее запись с помощью макрорекордера, и для этого вовсе не нужны глубокие знания по программированию. Работа макрорекордера во многом напоминает работу обычного магнитофона, осуществляющего запись и воспроизведение звука. Макрорекордер протоколирует все выполняемые пользователем действия и представляет их в виде VBA-кода.
Однако следует помнить, что «собственноручно написанные макросы позволяют создавать гораздо более мощные и гибкие программы, чем макросы, записываемыми с помощью макрорекордера, но, конечно, записать макрос гораздо проще, чем создать его программный код [10].
Процесс записи макроса с помощью макрорекордера можно условно разбить на три следующих этапа:
- запуск макрорекордера;
- присвоение макросу имени;
- выполнение записываемых операций;
- завершение записи.
Редактирование VBA-модулей выполняется в среде Visual Basic for Applications, в которой пользователю предоставляются средства для разработки программ, анализа связей между объектами (VBA является объектно-ориентированным языком программирования), отладки программ и их организации в единый программный комплекс (проект).
В VBA текст макроса оформляется в виде процедуры Sub. Данная процедура создается на основе событий (таковым может быть, например, изменение размера окна или щелчок на кнопке) и методов. Каждому событию поставлены в соответствие методы, которые задают необходимость выполнения определенных операций при наступлении данного события. Так, при щелчке на ярлычке рабочего листа событием является изменение активного листа. Благодаря связанному с этим событием методу лист, на ярлычке которого был произведен щелчок, активизируется и отображается на переднем плане. В зависимости от типа активизированного листа изменяются и некоторые команды меню. В VBA пользователь может задавать собственные события и ставить им в соответствие методы.
Visual Basic для приложений
Visual Basic для приложений — это объектно-ориентированный язык макропрограммирования высокого уровня, встроенный во все программы пакета Office 2003. Включение в указанный пакет современного полнофункционального языка программирования, инструментов для написания на нем программ, их редактирования и отладки, а также обширных библиотек стандартных программ позволяет создавать программные продукты, способные с достаточной полнотой автоматизировать решение конкретных задач пользователя.
Основные понятия языка Visual Basic for Applications.
VBA является объектно-ориентированной средой, содержащей большой набор объектов, каждый из которых обладает множеством свойств и методов. Количество этих объектов может напугать новичка, но, к счастью, для того чтобы начать работать, знать их всех вовсе не обязательно. Сам объект и все инструменты, необходимые для его создания, отображения или, скажем, уничтожения, относятся к определенному классу. Имя класса указывает на тип объектов, которые он содержит. Классы можно рассматривать как основу для создания других объектов этого же типа. Поэтому все объекты одного класса, например класса TextBox, будут «действовать» одинаково. В других языках программирования вы можете сгруппировать связанные друг с другом данные и ссылаться на них, используя общее имя, предположим Employees или Рroducts, но в соответствии с объектно-ориентированной методологией класс обязательно должен включать в себя и исполняемый программный код.
Свойства и методы являются членами класса. С помощью свойств описывается, как выглядит объект, в частности дается информация о приемах форматирования текста, цвете и размере шрифта. Методы являются процедурами, или, другими словами, множеством осуществляющих определенную задачу операторов, которые могут быть выполнены для объекта (процедуры создания и удаления объекта, процедуры событий, определяющие принцип взаимодействия объекта с пользователем, и т. д.) [12].
Объекты
При объектно-ориентированном программировании практически все компоненты среды разработки являются объектами. В Excel VBA-объектом считается любой элемент приложения — ячейка, лист, рабочая книга, диаграмма. Фактически объектом является и само приложение Excel. Объекты могут включать области ячеек, рамки ячеек, окна, сценарии, стили, и этот список можно продолжить. Каждый класс объектов имеет свое множество свойств, функций и событий.
Когда вы добавляете объект на рабочий лист, создается экземпляр класса объектов, и объекту присваиваются те значения свойств, которые определены в этом классе. По умолчанию экземпляры одного и того ж класса имеют имя, которое состоит из имени родительского класса и порядкового номера. Свойства каждого экземпляра одного и того же класса инициализируются одними и теми же значениями, за исключением свойства Name. Так как VBA присваивает значения всем элементам, которые в этом нуждаются, пользователю действительно не нужно много знать, чтобы начать работать в данной среде.
Свойства
Свойство является атрибутом объекта, описывающим, как объект выглядит (его цвет, размер и местоположение) и как он действует (является ли видимым, ссылается ли на другой объект). Когда вы создаете объект, Excel выполняет процедуру создания экземпляра этого объекта. Данная процедура, хранимая в классе объектов, присваивает значения всем свойствам, что позволяет вам сразу же работать с объектом. Если вы захотите изменить несколько свойств, то обнаружите, что в большинстве своем они заданы именно так, как вам нужно, поэтому вносить изменения вам не придется. Для того чтобы в макросе VBA присвоить свойству новое значение, необходимо лишь создать оператор присваивания, в котором слева от знака равенства будут указаны имя и свойство объекта (разделенные точкой), а справа — новое значение. К примеру, указанный ниже оператор заменит присвоенное по умолчанию имя листа Sheetl именем Accounts (Счета):
SheetI.Name- "Accounts"
Свойство листа Name отображается на его ярлычке. Причем данное свойство входит также во множество других классов.
Методы
Метод — это действие, которое может быть выполнено над объектом. Методы реализуются посредством выполнения процедуры, которая является членом класса объектов. Синтаксис вызова метода таков; имя объекта и имя метода, разделенные точкой. К примеру, для того чтобы использовать метод Protect для защиты объекта Sheetl от внесения изменений, вам следует ввести такую команду:
Sheetl.Protect
События
Всякий раз, когда пользователь взаимодействует с определенным объектом на рабочем листе, совершается событие. Каждый класс объектов имеет собственную группу событий, на которые объекты данного класса реагируют. Так, рабочая книга имеет событие NewSheet, которое выполняется всякий раз, когда пользователь добавляет в нее новый лист; событие SelectionChange происходит при выборе пользователем другой ячейки или области ячеек. При создании процедуры события Excel автоматически добавляет в ее код первую и последнюю строки; при желании вы можете самостоятельно написать программу для обработки события, на которое должны реагировать объекты.
Взаимодействие объектов, свойств и методов
Когда вы создаете лист в рабочей книге, функцией-членом в классе Worksheet создается объект Worksheet. Значения свойств нового объекта присваиваются по умолчанию (например, значение свойства Name, объект стиля ссылок А1 или R1C1), и с объектом можно сразу же работать. К этому объекту можно применить любой из встроенных в класс методов, таких как Printout или Save, и создать программу реагирования на такие события, как SheetCaleulate или, скажем, Open.
Использование свойств и методов, возвращающих объекты
Если свойство или метод возвращает объект, то доступ к свойствам и методам этого объекта можно получить лишь после указания его имени. В качестве примера рассмотрим такую строку программы:
Workbooks{"Bookl").ActlveSheet.Name= "Expenses"
Метод Workbooks("Bookl").ActiveSheet возвращает объект Worksheet, который содержит активную на данный момент таблицу, находящуюся в рабочей книге Bookl. Свойство Name является свойством объекта Worksheet, а не объекта ActiveSheet. Так как лист Sheetl считается активным, то этот оператор присваивания эквивалентен следующему:
Sheetl.Name= "Expenses"
Первый оператор является более общим, так как дает возможность присвоить новое имя любому активному листу, в то время как второй оператор однозначно выбирает рабочий лист Sheetl и присваивает ему имя вне зависимости от того, активен он или нет.
Свойство ActiveCel1 возвращает объект Range — одну или несколько ячеек, обращение к которым необходимо произвести одновременно. Это свойство является членом классов Application (активное приложение, в данном случае — Excel) и Window (активное окно) и возвращает область ячеек, которая содержит активную ячейку, находящуюся в активном окне активного приложения. Вот как это выглядит в коде:
Application.ActlveWlndow.ActiveCell.Borders.Color = vbRed
Так как в каждый момент времени активной может быть только одна ячейка, то свойства ActlveCell объектов Application и Window ссылаются на одну и ту же область ячеек. Таким образом, этот оператор можно переписать по-другому — так:
ActiveWindow.ActiveCell. Borders. Color = vbRed
или так:
Application.ActiveCell.Borders.Color = vbRed
А в связи с тем, что возвращаемый объект Range определяется однозначно, оператор можно переписать и следующим образом:
ActiveCell.Borders.Color – vbRed
Свойство Borders тоже относится к числу свойств, возвращающих объект. Часть оператора ActlveCellBorders возвращает объект Border (рамку области ячеек), а затем свойству Color (цвет) этого объекта присваивает значение red (красный). Префикс vb, предшествующий значению red, указывает на то, что это значение является константой Visual Basic, в отличие от переменных, которые нужно описывать в программе.
Объект, возвращаемый свойством ActiveCell, - это объект Range. Таким образом, свойство Borders задает прямоугольную рамку вокруг группы ячеек, определенных в объекте Range.
Оператор Application.ActiveWIndow.ActiveCell.Borders.Color = vbRed
станет более понятным, если прочитать его справа налево: «Цвет расположенной в активном окне приложения рамки области ячеек, которая содержит активную ячейку, становится красным [10].
Области в Excel — объекты VBA
Объекты Range определяют ячейки или области ячеек, которым можно присваивать значения, записывать в них формулы и с которыми можно работать вручную. В частности, действие оператора ActiveCell.Borders.Color = vbRed эквивалентно команде Cells (Ячейки) меню Format (Формат) и изменению значения в поле Color (Цвет) вкладки Border (Граница) диалогового окна Format Cells (Формат ячеек).
Кроме того, существует свойство Range, которое возвращает объект Range. Данное свойство позволяет использовать ссылку на ячейку или область ячеек, обращаясь к ней как к аргументу. Правда, здесь имеется одно ограничение: ссылки должны записываться с применением относительной или абсолютной адресации только в стиле А1:
Range(Al")
Range("$ASl")
Свойство Range возвращает объект Range, поэтому все свойства и методы, связанные с этим объектом, могут быть установлены посредством данного свойства. Свойство Range также может использоваться для возвращения объекта Range, который применяет ссылку на ячейку А1 (свойство Value возвращает значение ячейки А1):
Range('Al"). Value
Если ячейка А2 содержит формулу, то результат можно вычислить, воспользовавшись методом Calculate объекта Range, который возвращает свойство Range:
Range("A2").Calculate
Кроме того, воспользовавшись свойством Range, можно получить доступ к несмежным областям ячеек, а затем посредством одного оператора присвоить значение всем ячейкам. Это особенно удобно, если нужно присвоить всем ячейкам одинаковое значение:
Range("A3:B5.C3:D8").Value = 0
Свойство Range также можно использовать с двумя аргументами, которые указывают на ячейки, находящиеся в разных углах области ячеек, расположенных на одной диагонали. В частности приведенный ниже оператор выбирает ячейки области А1:С4:
Workbooks("Bookl").Sheets("Sheetl") Range{'Al","C4"}.Select
Процедуры и функции VBA
В VBA поддерживается следующая программная структура. На высшем уровне иерархии стоит приложение, далее идут проекты, связанные с фактическими документами этого приложения. На третьем уровне находятся модули (модули приложения, модули пользователя, модули класса, модули форм и модули ссылок), а на последнем — их процедуры и функции. Схематически такая иерархия показана на рисунке 1.1 [12].
Рисунок 1.1 – Программная структура в VBA
Модуль — это часть программы, оформленная в виде, допускающем ее независимую трансляцию. Модуль состоит из двух разделов: раздела объявлений (Declaration) и раздела процедур и функций. В первом разделе описываются глобальные переменные, типы, определенные пользователем, и перечисляемые типы, во втором — процедуры и функции. Вы уже знаете, как создаются и используются макросы. Все они сохраняются в документах или шаблонах программ Office 2003 в виде процедур, написанных на языке VBA. Процедурой называется фрагмент кода (минимальная семантически законченная программная конструкция), заключенный между операторами Sub и End Sub. Синтаксис процедуры следующий:
[Private | Public | Friend] [Static] Sub имя_процедуры (аргунент_1, аргумент_2. ...аргумент_n)
<оператор VBA>
<оператор VBA>
…
<оператор VBA>
End Sub
Синтаксис функций несколько отличается от синтаксиса процедур, так как для функции необходимо указать тип возвращаемого ею значения:
[Private | Public | Friend] [Static] Function имя_функции (аргумент_1, аргумент__2, ...
аргумент_n As тип_возвращаемого_значения
<оператор VBA>
<оператор VBA>
…
имя - вычисленное_значение
…
End Function
Ключевое слово Private задает следующую область видимости для процедуры - модуль, в котором она описана. Значит, ее могут вызывать только процедуры этого же модуля. Ключевое слово Public, наоборот, объявляет процедуру доступной для всех модулей проекта. С помощью ключевого слова Friend процедура или функция становится видимой только в том проекте, где был описан класс, членом которого она является. По умолчанию любая процедура общедоступна, то есть имеет статус Public. За операторами объявления следует необязательное ключевое слово Static, объявляющее все локальные переменные статическими (что такое статическая переменная, объясняется ниже).
Выполнение программного кода процедуры или функции происходит при передаче ей управления. Передача управления (вызов) может осуществляться различными способами. В общем случае подпрограмма вызывается из программного кода с помощью специального оператора Са11 , в котором кроме данного ключевого слова указываются имя процедуры и фактические параметры вызова, список которых заключается в круглые скобки.
Очень важную роль в программировании на VBA играет такая разновидность процедуры, как процедура без параметров. Процедуры данного типа могут выступать в роли командных макросов и процедур обработки событий. Схема работы с командными макросами не отличается от традиционной схемы работы с макросами. После создания подобного макроса с помощью редактора VBA ему можно назначить комбинацию клавиш для вызова, сопоставить его с командой меню или кнопкой на панели инструментов. Процедуры обработки событий представляют собой основу механизма связи событий с программным кодом для их обработки [8].
Функции в VBA, как правило, содержат списки параметров. Они не могут использоваться для обработки событий или, скажем, в качестве программных макросов. Вызывать же их можно как с помощью оператора Са11 , так и непосредственно в процессе расчета значения выражения VBA (из кода других процедур или функций) или формулы рабочего листа Excel.
Как правило, программа на языке VBA состоит из нескольких процедур и функций. Описание этих программных единиц хранится в модулях. Модули, в свою очередь, как составные части входят в проекты. Проекты сохраняются в файлах рабочих книг Excel 2003, но работать с ними можно лишь при наличии отдельного приложения — редактора Visual Basic. Если нужно вызвать процедуру или функцию, описание которой находится в другом модуле, ее имя при вызове указывается следующим образом: имя_модуля.имя_процедуры. Но если описание процедуры или функции содержится в другом проекте, при ее вызове следует использовать иной синтаксис: имя_проекта. имя_модуля. имя_процедуры.
Переменные в VBA
Описанные в процедурах VBA действия выполняются над переменными или объектами. Переменная — это поименованная область памяти, которая используется для хранения данных в течение работы процедуры. Переменные VBA аналогичны переменным других языков программирования. Использованию переменной обычно предшествует ее объявление посредством оператора D1 т, в котором указываются имя переменной и тип данных, для хранения значений которого она предназначена. Хотя такой оператор не является обязательным (VBA способен определять тип данных переменной по последнему символу ее имени: !, #, $, %, &, @), тем не менее, хороший стиль программирования требует предварительного описания всех используемых переменных. Имена переменных могут иметь длину до 255 символов (используются и символы кириллицы) и не должны содержать пробелов, знаков препинания и перечисленных выше специальных символов (за исключением символа @). Они не могут совпадать с ключевыми словами VBA и именами стандартных объектов.
Управляющие конструкции VBA
Управляющие конструкции языка программирования — это инструкции и группы инструкций, применение которых позволяет изменять по мере необходимости последовательность выполнения других инструкций программы. В современных языках программирования управляющие конструкции подразделяются на ветвления и циклы. Ветвлением называется управляющая конструкция, позволяющая пропускать при выполнении те или иные группы инструкций в зависимости от значения условия (If...Else, If...Then...Else, If...Then...ElseIf...Else и Select Case).
Цикл — это управляющая конструкция, предоставляющая возможность многократно выполнять группы инструкций, до наступления какого-либо события.
Конструкция If...Then
Конструкция If...Then дает VBA указание принять простейшее из решений: если условие If истинно, нужно выполнить следующий за ним оператор (или операторы); если же условие ложно, нужно прейти к строке, расположенной непосредственно за условной конструкцией. Данная конструкция может располагаться как в одной, так и в нескольких строках. Однострочная конструкция If...Then выглядит так:
If условие Then оператор[ы]
Если условие выполняется, VBA обрабатывает оператор или операторы, которые следуют за условием; в противном случае эти операторы пропускаются. Конструкция If...Then, занимающая несколько строк (известна также как блок If), выглядит следующим образом:
If условие Then
оператор
[операторы]
End If
Если условие истинно, VBA, опять-таки, выполняет оператор или операторы, а в противном случае передает управление строке, расположенной под строкой End If.
Конструкция If...Then...Else
Конструкция If ...Then — прекрасный инструмент для выполнения одного действия, зависящего от условия. Но если приходится выбирать одно из двух возможных направлений, в которых будут производиться действия, следует воспользоваться конструкцией If...Then...Else. С помощью этой конструкции выбирается одно направление деятельности, если условие истинно, и другое, если оно ложно.
Например, конструкция If...Then...Else является очень удобным инструментом для работы с окнами сообщений, содержащими по две кнопки.
Синтаксис рассматриваемой конструкции таков:
If условие Then
операторы_1.
Else
операторы_2
End If
Если условие истинно, VBA выполняет первую группу операторов — onepaторы_1,но если условие ложно, осуществляется переход к строке Else, а затем выполняется вторая группа операторов — операторы_2 [12].
Конструкция Select Case
Вместо нескольких операторов Elself можно применить конструкцию Select Case, которая позволит представить ту же задачу принятия решения в виде более сжатой и эффективной программы.
Конструкцию Select Case рекомендуется использовать в том случае, если решение, которое нужно принять в программе, зависит от одной переменной иди от выражения, имеющего не менее трех-четырех значений. Такая переменная (или выражение) называется тестируемым случаем.
Конструкцию Select Case легче читать, чем сложные операторы If ...Then, главным образом потому, что она более компактна. Кроме того, в нее легче вносить изменения: когда нужно изменить одно или несколько используемых значений, приходится просматривать меньшее количество операторов. Синтаксис оператора Select Case таков:
Select Case проверяемое_выражение
Case выражение_1
операторы_1
[Case выражение_2
операторы_2]
[Case Else
операторы]
End Select
На первый взгляд данный синтаксис может показаться сложным, но это не так. Оператор Select Case начинает конструкцию, а оператор End Select завершает ее. Проверяемое выражение определяет, какой из операторов Case будет выполнен, а выражение_1, выражение_2 и т. д. - это те выражения, с которыми VBA сравнивает проверяемое. Предположим, необходимо проверить, кнопку с каким номером выбрал пользователь в диалоговом окне или в форме. Значит, проверяемое выражение будет связано с событием выбора кнопки. Если это первая кнопка, значение проверяемого выражения совпадет с выражением_1. В таком случае будут выполнены операторы, находящиеся в строках, следующих за оператором Case выражение_1. Если это вторая кнопка, то значение проверяемого выражения совпадет с выражением_2, а следовательно, будут выполнены операторы, расположенные в строках, следующих за оператором Case выражение_2. То же можно сказать и об остальных операторах Case. Оператор Case Else подобен ключевому слову Else в операторе If. Он представляет собой необязательный оператор, который, будучи указанным, выполняется в тех случаях, когда ни одно из предложенных выражений не подходит.
... 2-3 Поиск литературы 7 1 7 2-4 Разработка модели разветвленной СМО 6 1 6 3 Поиск литературы завершен 3-6 Изучение литературы по теории массового обслуживания 10 1 10 4 Модель разработана 4-5 Разработка алгоритма программы 10 1 10 5 Алгоритм программы разработан 5-7 Выбор среды программиро-вания и создание программы 30 1 ...
... воздуха на входе и активное сопло приводит к некоторому расширению зоны максимального съема (до 35-55°), что имеет существенное значение при обработке криволинейных поверхностей. 6. КАЧЕСТВО ПОВЕРХНОСТНОГО СЛОЯ ПОСЛЕ СТРУЙНОЙ ГИДРОАБРАЗИВНОЙ ОБРАБОТКИ Состояние поверх костного слоя после механических и физико-механических методов обработки характеризуется в основном параметрами шероховатости, ...
... и каналов, а также механизма обслуживания используется алгоритмы генерирования случайных последовательностей. В ходе выполнения курсовой работы разработана модель системы обслуживания робототехнического комплекса производства деталей ЭВА. На данной модели возможно проанализировать эффективность СМО при различных дисциплинах очереди: в порядке поступления заявок (бесприоритетное обслуживание), с ...
... называемые правила бизнеса) реализуются прикладными программами на клиентских установках (RDA-модель) или на сервере приложений (AS-модель). 2. Автоматизированные системы сбора, хранения и анализа информации Автоматизированные информационные системы (АИС) относятся к классу сложных систем, как правило, не столько в связи с большой физической размерностью, сколько в связи с многозначностью ...
0 комментариев