Обоснование выбора языка программирования — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Обоснование выбора языка программирования

2020-04-01 197
Обоснование выбора языка программирования 0.00 из 5.00 0 оценок
Заказать работу

СОДЕРЖАНИЕ

АНОТАЦИЯ

ВВЕДЕНИЕ

1. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ.

1.1 Обоснование языка программирования

1.2 Введение в Visual Basic for Application

1.2.1 Об объектах и коллекциях

1.2.2 Примеры использования VBA в среде Access.

1.3. Разработка и эксплуатация АИС

1.3.1 Основные понятия технологии проектирования ИС

1.3.2 Основы современной технологии проектирования АИС

1.3.3 Автоматизированное проектированиеCASE-технологий

1.3.4 Реинжиниринг бизнес-процессов и проектирование корпоративной ИС..

2. ЭКСПЕРИМЕНТАЛЬНЫЙ РАЗДЕЛ

2.1 Постановка задачи

2.1.1 Входные данные

2.1.2 Выходные данные

2.1.3 Схема и описание алгоритма решения задачи

2.1.3.1 Блок-схема интерфейса

2.1.3.2 Описание блок-схемы интерфейса

2.2 Описание процесса отладки программы

2.3.Характеристика программы

2.4. Контрольный пример

2.5 Инструкция пользователя

Заключение

Приложение 1

Приложение 2

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


Введение

 

Вторая половина ХХв. Ознаменовалась крупным технологическим рывком научно-технологического процесса. Появление в этот период электронно-вычислительных машин (ЭВМ) открыло новые возможности обработки информации.

В 50-е годы на ЭВМ в основном решались отдельные научно-инженерные и экономические задачи, связанные с необходимостью переработки больших информационных массивов. Потребитель и его интересы в использовании ЭВМ, хотя и не отрицались, однако не были приоритеты на этом этапе.

В 60-е годы возникает идея комплексной автоматизации управления предприятия и интеграции информационного обеспечения на основе баз данных (БД). Реальностью автоматизированные системы управления (АСУ) стали в 70-е годы на базе ЭВМ 3-го поколения, которые позволяли создавать вычислительные системы с распределенной терминальной сетью. Создание на базе ЭВМ и средств связи АСУ:

 - Технологическими процессами (АСУТП)

- предприятиями (АСУП)

- отраслями (ОАСУ)

- Общегосударственным уровнем управления (ОГАСУ) вывело разработчиков и потребителей на новый, более высокий уровень понимания возможностей использования вычислительной техники в социально-экономическом развитии общества.

80-е годы отмечены широким использованием персональных компьютеров управленческими работниками, созданием большого набора автоматизированных мест (АРМ) на базе языков 4-го поколения, позволяющих с помощью генераторов запросов, отчетов, экранных форм, диалога, быстро разрабатывать удобные для пользователей приложения. Однако рассредоточение информационных систем (ИС) в виде АРМов, локальная автоматизация, не способствовали интеграции управленческих функций, а следовательно, существенному повышению эффективности управления предприятием.

Для 90-х годов характерно развитие телекоммуникационных средств, которое привело к созданию гибких локальных и глобальных вычислительных сетей, что позволило разрабатывать и внедрять корпоративные ИС (КИС). КИС объединяют возможности систем комплексные автоматизации управления 70-х годов и локальной автоматизации управления 80-х годов. Наличие гибких средств связи управленческих работников, возможность коллективной работы как непосредственных исполнителей хозяйственной деятельности, так и менеджеров, принимающих управленческие решения, позволяют во многом пересмотреть принципы управления предприятиями или проводить кардинальный реинжиниринг бизнес процессов.

В свою очередь, оперативность коммуникации и интеграции участников бизнес процессов предопределяют разработку и использование эффективных технологий проектирования, обеспечивающих ускорение создания, внедрения и развития проектов ИС, улучшение их функциональной и адаптивной надежности и, в конечном счете повышение качества принимаемых решений на всех уровнях управления. В связи с этим в первой части теоретического раздела данной работы рассматриваются некоторые вопросы построения и проектирования автоматизированных ИС (АИС).

Альтернативным подходом к каноническому проектированию в настоящее время является реинжиниринг бизнес процессов, который базируется на сходстве информационных процессов (ИТ- архитектур) и общих бизнес архитектур и заключается в интеграции ИТ и бизнес процессов. Поэтому здесь также коротко рассматривается автоматизация проектирования АИС (CASE – технология), которая является одним из подходов к данной интеграции.

Важным аспектом рассмотрения разработки АИС является описание структуры и функции обеспечивающих подсистем, соответствующая таким компонентам как технические, программные и информационные средства, интегрированные человеческим фактором. Информационное обеспечение АИС является средством для решения следующих задач:

- однозначного и экономичного представления информации (на основе кодирования объектов);

- организации процедур анализа и обработки информации с учетом характера связи между объектами (на основе классификации объектов);

- организация взаимодействия пользователей с системой на основе экранных форм для ввода первичных данных в ЭВМ или вывода результатной информации, структуры информационной базы: входных- выходных файлов, базы данных;

- и другие.

Программное обеспечение АИС может включать известные операционные системы MS DOS, Windows и другие, системы программирования типа Паскаль, Си, Бейсик и т. п. В связи с этим во второй части теоретического раздела рассмотрены основы программирования на языке Visual Basic for Application (VBA) в среде MS Office Excel. Работа заканчивается программированием разработанных макетов экранных форм и их апробацией.


ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ

 

История языка BASIC

Многие опытные программисты не воспринимают идею программирования наВА81Свсерьез. Само название (аббревиатура от Beginner's ЛП-purpose Symbolic Instruction Code —универсальный символический язык инструкций для начинающих) предполагает, что это не профессиональный язык.

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

С годами BASIC развивался и улучшался. Например, во многих ранних версиях он был интерпретируемым языком. Каждая строка перед выполнением интерпретировалась, чем и была обусловлена медленная скорость обработки кода. В большинстве современных вариантов языка BASIC программа компилируется, и в результате выполнение программы значительно ускорилось, а перемещаемость программы улучшилась.

BASIC стал намного популярнее в 1991 году, когда компания Microsoft выпустила Visual Basic для Windows (на данный момент существующий в версии 6.0). Этот продукт облегчил массовую разработку самостоятельных приложений для Windows. У Visual Basic мало общего с ранними версиями BASIC, но последний представляет собой основу, на которой построен VBA. Обзор VBA Excel 5 — это первое приложение на рынке, в котором появился Visual Basic for Applications (VBA). VBA считается стандартным языком написания сценариев для приложений Microsoft, и в настоящее время входит в состав всех приложений Office 2002 и даже прило­жений других компаний. Следовательно, овладев VBA для Excel, вы сможете сразу перейти к созданию макросов для других программных продуктов Microsoft (равно, как и приложений других компаний). Более того, вы сможете создавать полноценные программные продукты, одновременно использующие функции самых разных приложений.

 

Объектные модели

Секрет использования VBA заключается в правильном понимании объектной модели В каждом отдельном приложении. Следует отметить. VBA всего лишь управляет объекта­ми, а у каждого программного продукта (Excel. Word. Access. PowerPoint и т.п.) своя объект­ная модель. Приложением можно управлять программным образом только с помощьюобъек­тов, которые представлены в этом приложении.

Например, в объектной модели Excel представлено несколько мощных объектов анали­за данных, например, рабочие листы, диаграммы, сводные таблицы, сценарии, а также многочисленные математические, финансовые, инженерные и общие функции. С помощью VBA вы можете работать с этими объектами и разрабатывать автоматизированные проце­дуры.

Сравнение VBA и XLM

До появления Excel 5 разработчиками использовался мощный (но сложный для понима­ния) язык макросов под названием XLM. Более поздние версии Excel все еще выполняют макросы XLM, но, начиная с Excel 97, пользователи не имеют возможности записывать мак­росы на языке XI.M. Для современных разработок используется исключительно VBA.

 

Основы VBA

Действия в VBA осуществляются в результате выполнения кода VBA. • Вы создаете (или записываете) программу VBA. которая сохраняется в модуле VBA.

•   Модуль VBA состоит из процедур.

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

Sub Test()

 Sum =1 + 1

MsgBox "Ответ: " & Sum

 End Sub

•   Кроме процедур Sub. в модуле VBA может использоваться второй тип процедур — функции.

Процедура функции возвращает одно значение (или массив). Функция может быть вы­звана из другой процедуры VBA или использоваться в формуле рабочего листа. Далее приведен пример функции с названием AddTwo:

 Function AddTwo(argl, arg2)

AddTwo = argl + arg2

 End Function

•   VBA управляет объектами, которые представлены запускающим приложением (в.дан­ном случае Excel).

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

•Классы объектов организованы в иерархическую структуру.

Объекты могут быть контейнерами для других объектов. Например, Excel — это объ­ект под названием Application, он содержит другие объекты, например. Workbook (Рабочая книга). Объект Workbook может состоять из других объектов, например. Worksheet (Рабочий лист) и С h а г t (Диаграмма). Объект Worksheet также содер­жит объекты, например. Range (Диапазон), Р i v о t Т a b 1 е (Сводная таблица) и т.д. Организацию таких объектов называют объектной моделью Excel.

Одинаковые объекты формируют коллекцию. Например, коллекция Worksheets состоит из всех рабочих листов конкретной рабочей книги, а коллекция CommandBars — из всех объектов CommandBar. Коллекции — это объекты в себе.

При ссылке на объект, вложенный в другой объект, положение в иерархической струк­туре объектной модели задается с помощью точки-разделителя. Например, на рабочую книгу с названием Книга 1.xls в можно сослаться следующим образом:

Application.Workbooks("Книга1.xls") Это ссыпка на рабочую книгу Книга1.xls в коллекции Workbooks. Коллекция Workbooks находится в объекте Application. Переходя на следующий уровень, вы можете сослаться на лист Лист1 в книге Книга 1.xls:

Application.Workbooks("Книга 1.xls"). Worksheets ("Лист1") Перейдите на один уровень ниже, после чего необходимо сослаться на отдельную ячейку:

Application.Workbooks("Книга1.xls").Worksheets("Лист1").Range("A")

При опущенной ссылке на объект Excel по умолчанию используются активные объекты. Если книга Лист1 — активная рабочая книга, то предыдущую ссылку можно упростить:

Worksheets("Лист1").Range("Al") Если вы знаете, что лист Лист 1 — активный, то ссылку можно упростить еще больше:

Range("Al")

Объекты имеют свойства.

Свойство можно считать параметром или настройкой объекта. Например, объект диапазона имеет такие свойства, как Value (Значение) и Name (Имя), Объект диа­граммы обладает такими свойствами, как Н a s Т i 11 е (Заголовок) и Туре (Тип). Вы вправе использовать VBA, чтобы задать свойства объектов и их изменить.

Свойства в программном коде отделяются от названия объекта точкой. Например, вы можете сослаться на значение в ячейке А1 листа Лист1 следующим образом: Worksheets(" Лист1 "). Range(" Al"). Value

Рабочая книга Excel является объектом, но она также содержит другие объекты, например, рабочие листы, диаграммы, модули VBA и т.д. Более того, каждый объект в рабочей книге может содержать собственные объекты. Например, объект worksheet (Рабочий лист) включает объекты Range (Диапазон), pivottrable (Сводная таблица), Shape (Форма) и т.д.

Помимо свойств, объекты Excel также располагают методами, выполняющими операции над объектом. Например, метод clearContents, удаляет содержимое объекта Range.

В Excel методы иногда используются для изменения свойств объекта. Метод ciearContents

объекта Range изменяет свойство Value объекта Range.

В VBA существует возможность писать процедуры для управления объектами Excel.

Вы вправе присваивать значения переменным VBA. Переменную можно считать кон­стантой, которая используется для хранения конкретного значения. Чтобы присвоить значение ячейки А1 листа Лист1 переменной с названием Interest, используйте следующий оператор VBA:

Interest = Worksheets("Лист1").Range("Al").Value

У объектов есть методы. Метод — это действие, которое выполняется над объектом. Например, один из методов объекта Range — ClearContents. Этот метод удаляет содержимое диапазона ячеек.

Методы вводятся после названия объекта с методом, в роли разделителя выступа­ет точка.

Например, для удаления содержимого ячейки А1 активного рабочего листа использу­ется следующая команда:

R a n g е (" А1"). ClearContents

VBA также включает конструкции современных языков программирования (в том числе массивы, циклы и т.д.).

 

Запуск VB E

Во время работы в Excel вы можете перейти к окну VBE с помощью одного из следующих способов.

 1) нажать <Alt+F11>.

 2)Выбрать команду Сервис – Макрос - Редактор Visual Basic.

 3) Щелкнуть на кнопке Редактор Visual Basic, расположенной на панели инструментов Visual Basic.

 

Окна VB E

VBE состоит из ряда элементов. В следующий разделах кратко описаны ключевые компо­ненты редактора Visual Basic.

 

Строка меню

Строка меню VBE. естественно, работает, как и строка меню любого другого приложения.

Она содержит команды, используемые для управления различными компонентами VBA. Кроме того, для выполнения многих команд меню используются комбинации клавиш. На­пример, для команды ViewAImmediate Window (Вид - Окно отладки) применяется комби­нация клавиш <Ctrl+G>.

В VBE также представлены контекстные меню. Щелкнув правой кнопкой мыши практически на любых элементах окна VBE, вы увидите меню, предлагающие ряд команд.

 

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

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

 

Окно Project Explorer

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

Если в редакторе Visual Basic окно Project Explorer не отображено, нажмите <Ctrl+R>. Чтобы скрыть его, щелкните на кнопке закрытия строки заголовка (или щелкните правой кнопкой мыши в любом месте окна и выберите Hide из контекстного меню).

 

Окно кода

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

 

Окно Immediate

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

 

Работа с Project Explorer

При работе в редакторе Visual Basic каждая рабочая книга Excel и открытые в данный момент надстройки рассматриваю гея как проекты. Проект можно считать коллекцией объектов, организо­ванных в виде иерархической структуры. Вы раскроете проект, если щелкнете на знаке "плюс" слева от названия проекта в окне Project Explorer. Проект сворачивается при щелчке на знаке "минус" слева от названия проекта. Кроме того, для разворачивания и сворачивания проекта можно использовать кнопку ToggleFoldcrs (Показать папки) на панели инструментов окна Project Explorer. При попытке развернуть проект, защищенный паролем, отображается окно ввода пароля.

Дерево каждого проекта в развернутом виде имеет как минимум один узел под названием Microsoft Excel Objects. В этом узле содержатся элементы каждого рабочего листа и лист диаграмм рабочей книги (рабочий лист считается объектом), а также объект под названием ЭтаКнига, представляющий объект Active Workbook. Если в проекте используются модули VBA, то в дереве отображается также узел Modules, в котором перечислены модули. Проект может также содержать узел Forms, содержащий объекты UserForm (пользовательские фор­мы, известные как пользовательские диалоговые окна). Если в проекте находятся модули классов, то в дереве отображается узел под названием Class Modules.

В Excel 2002 при добавлении ссылки на проект (с помощью команды ToolsAReferences) в дереве проекта появляется еще один узел: References. Каждая ссылка является отдельным объектом. Объекты, перечисленные в этом узле, не имеют окна кода.

 

Удаление модуля VBA

Чтобы удалить из проекта модуль VBA или модуль класса, выделите название модуля в окне Project Explorer и используйте команду File - Remove ххх (где ххх— название моду­ля). Кроме того, вы можете щелкнуть правой кнопкой мыши на названии модуля и выбрать команду Remove ххх из контекстного меню.

 

Экспорт и импорт объектов

За исключением объектов, перечисленных в узле References, каждый объект в проекте можно сохранить в отдельном файле. Сохранение отдельного объекта в проекте называется экспортом. Соответственно, вы можете также импортировать объекты в проект. Экспорт и импорт объектов полезен, если уже существующий объект (например, модуль VBA или фор­му UserForm) можно использовать в другом проекте.

Чтобы экспортировать объект, выберите его в окне Project Explorer и выполните команду File - Export File (или нажмите <Ctrl+E>). При этом отображается диалоговое окно, запра­шивающее имя файла. Обратите внимание, что сам объект остается в проекте (а экспортиру­ется только его копия). Если вы экспортируете объект UserForm, экспортируется также весь код, связанный с формой UserForm.

Чтобы импортировать файл в проект, выберите имя проекта в окне Project Explorer и вы­полните команду File - Import File. Появится диалоговое окно, в котором необходимо указать имя файла. Вы можете импортировать только те файлы, которые экспортированы с помощью команды File—Export File.

Если вы решили скопировать в другой проект модуль или объект UserForm, не обязательно использовать функции экспорта и импорта. Убедитесь, что оба проек­та открыты, затем активизируйте окно Project Explorer и перетащите необходимый объект из одного проекта в другой.


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

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

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

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

• модуль VBA;

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

• форма UserForm.

 

Сохранение программы VBA

Как правило, окно кода содержит четыре типа кода.

• Процедуры (процедуры Sub). Процедура — это набор инструкций, выполняющих оп­ределенное действие.

• Процедуры функции. Функция — это набор инструкций, возвращающий значение или массив значений (концепция функции VB А подобна такой же функции Excel).

• Процедуры свойств. Специальные процедуры, используемые в модулях классов.

Объяснение — это информация о переменной, предоставляемая VBA. Например, мож­но объявить тип данных для переменных, которые вы планируете использовать в коде.

В отдельном модуле VBA может храниться любое количество процедур, функций и объ­явлений. Способ организации модуля VBA зависит только от вашего желания.          Некоторые предпочитают записывать весь код VBA приложения в одном модуле VBA; другие разделяют код на несколько разных модулей.

Несмотря на то, что предоставляются широкие возможности по определению места хранения кода VBA, существуют некоторые ограничения на его расположе­ние. Процедуры обработки событий должны содержаться в окне кода объекта, ко­торому соответствует это событие. Например, если вы пишете процедуру, которая выполняется при открытии рабочей книги, то эта процедура должна располагать­ся в окне кода для объекта ЭтаКнига и иметь специальное название.

Введение кода VBA

Для того чтобы выполнить одно из действий программным образом, необходимо напи­сать программу VBA в окне кода. Код VBA располагается в процедуре. Процедура состоит из операторов VBA. На данном этапе (для примера) остановимся только на одном типе окна ко­да: модуль VBA.

Вы можете добавить код в модуль VBA тремя способами.

• Ввести код традиционным способом: с клавиатуры.

• Использовать функцию записи макросов в Excel, чтобы записать действия и преобра­зовать их в код VBA.

• Скопировать текст программы из другого модуля и вставить его в модуль, над кото­рым работаете.

 

Ввод кода вручную

Иногда самый простой путь является наилучшим. Непосредственное введение кода связа­но с использованием клавиатуры, т.е. вы вводите код программы с помощью клавиатуры. Клавиша <Таb> при этом используется с целью задать отступ в строках, которые логически принадлежат одной группе (например, условные операторы If и End If)- Это совершенно не обязательно, но помогает быстрее освоить программу, анализируя ее блочную структуру. Именно поэтому подобный подход в программировании называется '"хорошим стилем".

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

Отдельная инструкция в VBA может иметь произвольную длину. Однако, чтобы обеспе­чивать удобочитаемость кода, длинные инструкции лучше разбить на две или более строк. Для этого следует в конце строки ввести пробел и символ подчеркивания, а затем нажать <Enter> и продолжить инструкцию в следующей строке. Например, ниже приведен один опе­ратор VBA, разбитый на четыре строки.

MsgBox "Невозможно найти" & UCase(SHORTCUTMENUFILE) _

 & vbCrLf & vbCrLf & "Файл должен находиться в _

 " & ThisWorkbook.Path & vbCrLf & vbCrLf & _

"Возможно, требуется переустановить BudgetMan", v b С г i t i с a 1, APPNAME

Обратите внимание, что три последние строки этого оператора введены с отступом. Это необязательное условие, однако таким образом вы указываете что на самом деле эти четыре строки являются одним оператором.

Как и в Excel, в VBE есть несколько уровней отмены выполненных операций. По­этому, если вы по ошибке удалили инструкцию, можете несколько раз щелкнуть на кнопке Undo (Отменить) или нажать <Ctrl+Z>, и инструкция вновь появится в коде. После отмены операции можно щелкнуть на кнопке Redo (Вернуть), чтобы вернуть изменения, которые ранее отменены. Эта функция поможет исправить критически важные ошибки, поэтому не пренебрегайте ее использованием.

 

Листинг 1. Макрос изменения ориентации страницы на альбомную

Sub Макрос1()

 ‘ Макрос1 Макрос

1 Макрос записан 19.08.2003

 With ActiveSheet.PageSetup

.PrintTitleRows = ""

.PrintTitleColumns = ""

End With

ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup.LeftHeader = "".CenterHeader = "".RightHeader = "n.LeftFooter = "".CenterFooter = ".RightFooter = ""

.LeftMargin = Application JInchesToPoints (0. 787401575).RightMargin = Application.InchesToPoints(0.787401575).TopMargin = Application.InchesToPoints(0.984251969).ButtonMargin = Application.InchesToPoints(0.984251969). HeaderMargin = Application. InchesToPoints (0.5).FooterMargin = Applicatior.InchesToPoints (0.5).PrintHeadings = False.PrintGridlines = False.PrintComments = xlPrintNoComments •PrintQuality = 1200 •CenterHorizontally = False. Center-Vertically = False.Orientation - xlLandscape.Draft = False.PaperSize • xlPaperA4. FirstPageNumber - xlAutoma tic.Order = xlDownThenOver.BlackAndWhite = False

Zoom = 100

.PrintErrors = xlPrintErrorsDisplayed

End With

End Sub

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

Таким образом, зачастую программа, полученная при записи макроса, избыточна. Если вы хотите, чтобы макрос всего лишь изменял ориентацию страницы на альбомную, то можно значительно упростить макрос, удалив ненужный код. Это облегчит восприятие макроса и ускорит его выполнение, поскольку избавит его от лишних операций. Упростить макрос вы вправе до следующего вида:

Sub Makrocl

With ActiveSheet.PageSetup

.Orientation = xl Landscape

 End With End Sub

Мы удалили весь код, кроме строки, изменяющей свойство Orientation. На самом деле данный макрос можно упростить еще больше, так как конструкция With-End не обязательна при изменении только одного свойства.

Sub Makrocl

ActiveSheet.PageSetup.Orientation = xlLandscape

End Sub

В данном примере макрос изменяет свойство Orienation объекта PageSetup активного листа. Отметим, что xlLandscape - это встроенная константа, которая имеет значение 2. Поэтому следующий макрос работает как и предыдущий Makrocl:

Sub Makroc 1

ActiveSheet.PageSetup.Orientation = 2

End Sub

Подобная процедура вводится непосредственно в модуль VBA. но для этого необходимо знать какие объекты, свойства и методы требуется использовать. Очевидно быстрее записать макрос. Кроме того, данный пример продемонстрировал наличие у объекта PageSetup свойство Orientation.

 

Об объектах и коллекциях

Работая с кодом VBA в Excel, необходимо четко понимать назначение объектов и объектной модели Excel. Целесообразнее рассматривать объекты с точки зрения иерархической структуры.

Иерархия объектов

На вершине объектной модели находятся объект Application — в данном случае Excel. Но если вы программируете в VBA, запуская VBE в Microsoft Word, то объектом Application будет выступать Word.

Объект Application (то есть Excel) содержит другие объекты. Ниже приведено несколько примеров объектов, которые находятся в объекте Application:

Workbooks (коллекция всех объектов Workbook — рабочих книг);

Windows (коллекция всех объектов window — окон);

Addlns (коллекция всех объектов Addln — надстроек).

Некоторые объекты могут содержать другие объекты. Например, коллекция Workbooks состоит из всех открытых объектов Workbook, а объект Workbook включает другие объекты, некоторые из которых представлены ниже:

Worksheets (коллекция объектов Worksheet — рабочих листов);

Charts (коллекция объектов Chart — диаграмм);

Names (коллекция объектов Name — имен).

Каждый из этих объектов, в свою очередь, может содержать другие объекты. Коллекция

Worksheets состоит из всех объектов Worksheet рабочей книги Workbook. Объект

Worksheet включает другие объекты, среди которых следующие:

ChartObjects (коллекция объектов ChartQbject — элементов диаграмм);

Range — диапазон;

PageSetup — параметры страницы;

PivotTables (коллекция объектов PivotTable — сводных таблиц).


О коллекциях

Одной из ключевых концепций в программировании на языке VBA являются коллекции.

Коллекция — это группа объектов одного класса (и сама коллекция тоже является объектом).

Как указывалось выше. Workbooks — это коллекция всех открытых в данный момент объектов Workbook. Worksheets — коллекция всех объектов Worksheet, которые содержится в конкретном объекте Workbook. Вы можете одновременно управлять целой коллекцией объектов или отдельным объектом этой коллекции. Чтобы сослаться на один объект из коллекции, введите название или номер объекта в скобках после названия коллекции:

Worksheets("Лист1")

Если лист Лист1 — это первый рабочий лист в коллекции, то можно использовать следующую ссылку.

Worksheets(1)

На второй лист в рабочей книге Workbook ссылаются как на Worksheets(2) и т.д.

Кроме того, существует коллекция с названием Sheets, состоящая из всех листов рабочей книги, рабочих листов и листов диаграмм. Если Лист1 — первый лист в книге, то на него можно сослаться так:

Sheets(1)

Ссылки на объекты

Если вы ссылаетесь на объект в VBA, для обращения к нему вводятся названия всех расположенных выше в иерархической структуре объектов, разделенных точкой. Что делать, если в Excel открыты две рабочих книги, и в обеих имеется рабочий лист с названием Лист1?В этом случае в ссылке упоминается контейнер требуемого объекта:

Workbooks("Книга1").Worksheets("Лист1")

Без указания рабочей книги редактор Visual Basic искал бы лист Л и с т1 в активной рабочей книге,чтобы сослаться на определенный диапазон (например, ячейку А1) на рабочем листе с названием Лист1 в рабочей книге Книга1, можно использовать следующее выражение:

Workbooks(" Книга 1"). Worksheets("Лист1").Range("Al")

Полная ссылка из предыдущего примера включает объект A p p l i c a t i o n и выглядит таким образом:

Application. Workbooks (" К н и г а1 "). Worksheets (" Л и с т1 "). R a n g e (" A l ")

Однако в большинстве случаев можно опускать объект A p p l i c a t i o n в ссылках {кроме него использоваться больше нечему). Если объект Книга1 — это активная рабочая книга, то опустите ссылку на нее и запишите рассматриваемое выражение следующим образом:

Worksheets("Лист1").Range("Al")

Если Лист1 является активным рабочим листом, можно еще более упростить выражение:

Range("A1")

В Excel отсутствует объект отдельной ячейки. Отдельная ячейка представляет собой объект Range, состоящий из одного элемента.

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

 

Свойства и методы

Запутаться в свойствах и методах несложно: их существует несколько тысяч. В этом разделе показано, как осуществляется доступ к свойствам и методам объектов.


Свойства объектов

Всеобъекты обладают свойствами. Например, объект Range обладает свойством с названием Value. Вы можете создать оператор VBA, чтобы отобразить свойство Value или задать свойству Value определенное значение. Ниже приведена процедура, использующая

функцию VBA MsgBox для отображения окна, в котором представлено значение ячейки Al листа Лист1 активной рабочей книги.

Sub ShowValueO

MsgBox Worksheets("Лист1").Range("Al").Value

End Sub

Код предыдущего примера отображает текущее значение свойства Value для конкретной ячейки — А1 рабочего листа Лист1 активной рабочей книги. Обратите внимание, что если в активной книге отсутствует лист с названием Лист1, то макрос выдаст ошибку.

Что необходимо сделать, чтобы изменить свойство Value? Ниже приведена процедура по изменению значения ячейки А1 путем определения значения свойства Value.

Sub ChangeValue()

Worksheets("Лист1).Range("Al").Value = 123

End Sub

После выполнения этой процедуры ячейка А1 листа Лист1 получает значение 123. Вы можете ввести описанные процедуры в модуль и протестировать их.

Многие объекты имеют свойство по умолчанию. Для объекта Range свойством по умолчанию является Value. Следовательно, выражение value в приведенном выше коде можно опустить, и ничего не изменится. Однако лучше включать ссылку на свойство, даже если оно используется по умолчанию.

 

Методы объектов

Кроме свойств, объекты характеризуются методами. Метод — это действие, которое выполняется над объектом. Ниже приведен простой пример использования метода Clear по отношению к диапазону ячеек. После выполнения этой процедуры ячейки А1: СЗ листа

Лист1 станут пустыми, и дополнительное форматирование ячеек будет удалено.

Sub ZapRange()

W o r k s h e e t s (" Л и с т 1 "). R a n g e (" A l: C 3 "). C l e a r

End Sub

Если необходимо удалить значения в диапазоне, но оставить форматирование, используйте метод C l e a r C o n t e n t s объекта Range.

Многие  методы  получают  аргументы,   определяющие  выполняемые над объектом действия более детально. Далее приводится пример, в котором ячейка А1 копируется в ячейку В1 с помощью метода Сору объекта Range. В данном примере метод Сору получает один аргумент (адрес ячейки, в которую следует скопировать данные). Обратите внимание что в примере используется символ продолжения строки (пробел и подчеркивание ). Вы можете не применять этого символа, а ввести оператор в одну строку.

Sub CopyOne()

Worksheets("Лист1").Range("Al").Copy _

Worksheets("Лист1").Range("Bl")

End Sub


Определение аргументов методов и свойств

В среде программистов VBA определение аргументов методов и свойств часто вызывает определенные трудности. Некоторые методы используют аргументы для дальнейшего уточнения действия; отдельные свойства используют аргументы для дальнейшего определения значения свойства. Иногда один или несколько аргументов вообще применять не обязательно.

Если метод использует аргументы, они указываются после названия метода и разделяются запятыми. Если метод использует необязательные аргументы, то можете пропустить их, оставив пустые места. Рассмотрим метод Protect объекта рабочей книги. В справочной системе дается информация о том, что метод Protect имеет три аргумента: пароль, структура, окна.

Эти аргументы соответствуют параметрам в диалоговом окне Защита книги.

К примеру, если требуется защитить рабочую книгу под названием MyBook.xls, используйте такой оператор:

Workbooks("MyBook.xls").Protect "xyzzy", True, False

В данном случае рабочая книга защищена паролем (аргумент 1). Также защищена структура рабочей книги {аргумент 2), но не ее окна (аргумент 3).

Если вы не хотите присваивать пароль, можно применить такой оператор:

Workbooks("MyBook.xls").Protect, True, False

Обратите внимание, что первый аргумент пропущен, а его место обозначено с помощью запятой.

Существует и другой подход (причем в этом случае программу удобнее будет читать) — использование именованных аргументов. Применим именованные аргументы для предыдущего примера.

Workbooks("MyBook.xls").Protect Structure:=True, Windows:=False

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

Для свойств, использующих аргументы, аргументы указываются в скобках. Например, свойство Address объекта Range имеет пять аргументов— все необязательные. Показанный ниже оператор некорректен, так как пропущены скобки:

MsgBox Range("Al").Address False ' некорректно

Правильный синтаксисдля этого оператора выглядит так:

MsgBox Range("Al").Address(False)

Кроме того, оператор может записываться с использованием именованного аргумента

MsgBox Range("Al").Address(rowAbsolute:=False).

 

Объект Comment: пример использования

Чтобы лучше разобраться со свойс


Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.193 с.