183465 (596671), страница 5

Файл №596671 183465 (Имитационная модель автоматизированного участка обработки деталей) 5 страница183465 (596671) страница 52016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Наиболее простым способом создания макрокоманды является ее запись с помощью макрорекордера, и для этого вовсе не нужны глубокие знания по программированию. Работа макрорекордера во многом напоминает работу обычного магнитофона, осуществляющего запись и воспроизведение звука. Макрорекордер протоколирует все выполняемые пользователем действия и представляет их в виде 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)

End Sub

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

[Private | Public | Friend] [Static] Function имя_функции (аргумент_1, аргумент__2, ...

аргумент_n As тип_возвращаемого_значения

имя - вычисленное_значение

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее