КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Использование массивов при программировании в VBA
Приложения Microsoft Office и общие принципы их организации Приложения Microsoft Office: Word – программа обработки текстов, Excel – работа с таблицами, СУБД Access – работа с базами данных, Power Point – создание презентаций. изучаются в курсе «Информатика» во 2-м семестре. Работа пользователя с этими приложениями организована в соответствии с объектно-ориентированным принципом. Это означает, что все создаваемое и редактируемое пользователем при работе с приложением – это объекты (например, в Word – абзац, рисунок, в Excel – ячейка, диаграмма, в Access – таблица, запрос). Объекты имеют свойства и методы. Свойства объекта – его характеристики, которые можно менять (например, цвет, размер). Методы – это действия, которые с объектом можно произвести (например, переместить, удалить). Меню различных приложений Microsoft Office устроено по одному и тому же принципу и содержит только те различия, которые отвечают за специфику приложения. Результат работы в Word, Excel или Access – это некоторый документ, для которого существует стандартный набор операций: создание, сохранение, удаление, открытие и т.п. Поэтому, например, пункт меню «Файл» во всех трех приложениях имеет практически одинаковое содержимое: распечатать документ, изменить свойства документа, сделать предварительный просмотр, посмотреть последние открытые документы приложения – все это актуально и в Word, и в Excel, и в Access, и делается примерно одинаково. Пункты меню «Правка», «Вид», «Вставка», «Сервис», «Окно», «Справка» присутствуют в различных приложениях, несут одинаковую смысловую нагрузку и имеют похожее содержимое. Панели инструментов – это группы часто употребляемых команд, дублирующие «глубоко» расположенные пункты меню в виде кнопок. Большинство приложений Microsoft Office оперируют такими панелями. Использование Windows-приложений существенно расширяет сферу использования компьютеров. Однако стандартные средства этих приложений не всегда позволяют решить поставленную задачу в полном объеме. Иногда требуется дополнительно составить отдельную программу с использованием средств, отсутствующих в этом Приложении. Для этих целей не может быть использован язык Турбо-Бейсик.
Турбо-Бейсик – один из языков программирования, относящийся к группе алгоритмических языков. На языке Турбо-Бейсик можно создавать достаточно большие программы, собирая их из процедур и (или) подпрограмм-функций, описывающих типовые алгоритмы или решение более или менее самостоятельных подзадач, оформленных в виде отдельных файлов (так называемые внешние подпрограммы). Внешние подпрограммы можно подключать к различным программам, что в целом повышает эффективность и сокращает время разработки программ. Обратим внимание на то, что, работая в среде Турбо-Бейсик, мы можем обращаться к внешним подпрограммам, составленным в этой же среде. 3. Visual Basic for Application – язык объектно-ориентированного программирования. Начальные сведения В нашем курсе мы познакомимся с языком Visual Basic for Application (VBA), при помощи которого можно выполнять обработку данных в любом из приложений Windows. Таким образом, если Турбо-Бейсик позволяет осуществлять взаимодействие между отдельными программами (подпрограммами), написанными на языке Турбо-Бейсик, то VBA позволяет осуществлять взаимодействие со всеми приложениями Windows, существенно расширяя их функциональные возможности, и, написав программу в одном из приложений, ее можно использовать в любом другом. Язык VBA является объектно-ориентированным языком, встроенным в среду Windows. Объектно-ориентированное программирование (ООП) – новый подход к программированию, связанный с увеличением объема и сложности программного обеспечения. Базовые отличия VBA как языка ООП будут рассмотрены позднее. Интегрированная среда разработки VBA представлена приложением, называемым редактором Visual Basic. Этот редактор вызывается из Microsoft Excel. После запуска Excel на экране появляется основной экран Excel (рис. 1). В Excel решение конкретной задачи представляется в рабочей книге, состоящей из рабочих листов. Рабочий лист разделен на отдельные ячейки, где пересекаются столбец и строка. Каждый столбец обозначен латинской буквой или сочетанием двух букв (A, B,..., Z, AA, AB,...). Строка обозначена числом (1, 2, 3,...). Адрес конкретной ячейки состоит из буквы, обозначающей столбец и числа, обозначающего строку (A1, B2, A12,...). Рис. 1 Окно приложения Excel (как и любого приложения Windows) содержит следующие элементы: Строка заголовка показывает имя приложения, с которым ведется работа; Строка меню обеспечивает доступ к основным командам; Панель инструментов содержит кнопки (пиктограммы), с помощью которых открывается быстрый доступ к ряду часто используемых команд, процедур и функций программы. Щелчок левой кнопкой «мыши» по любой кнопке панели инструментов сразу же вызывает необходимое действие; Строка формул, в которой отражается вводимый текст или формула, вводимая в текущей ячейке. Слева от строки формул показан адрес этой ячейки; Полосы прокрутки позволяют просматривать содержание рабочего листа по вертикали и по горизонтали. Справа расположены кнопки управления размером окна. Запуск VBA осуществляется выполнением следующей последовательности действий: Сервис -> Макрос ->Visual Basic или набором клавиш Alt+F11. Далее в открывшемся окне проекта VBAProject нужно щелкнуть на “Лист1”. Откроется окно программы Code (рис. 2), в котором можно создавать исходный код на языке VBA, а также просматривать и редактировать уже созданный код. Созданную программу можно выполнить, используя команду Run или нажав клавишу F5. Чтобы вернуться на рабочий лист Excel, нужно щелкнуть по пиктограмме Excel (слева в панели инструментов).
Рис. 2 Алгоритм вычислений на языке VBA состоит из операторов, в основном совпадающих с операторами Турбо-Бейсика. Так для организации циклов по счетчику или по условию используются те же операторы, что и в Турбо-Бейсике. Тот же вид имеют и те же функции выполняют условный оператор и if-блок: Ввод исходных данных в переменные программы и вывод результатов в VBA осуществляется другими средствами, чем в Турбо-Бейсике. О них поговорим позже. Программа (программный код) на VBA состоит из процедур Sub или подпрограмм-функций Function, которые могут быть объединены в единый модуль (макрос) и выполнены. Для всех используемые в программе переменных будем объявлять их типы: целый – integer, вещественный обычной точности – single, строковый – string (другие типы в примерах не используются и здесь не рассматриваются). Замечание. Вообще, в VBA можно не объявлять тип явно, а для указания типа использовать соответствующий символ после имени, как в Турбо-Бейсике, например, а$ для строковой переменной. Можно использовать также тип Variant. Переменные этого типа принимают характеристики того конкретного типа данных, к которому относятся значения, сохраняемые в них в данный момент. Однако явное описание всегда предпочтительнее, т.к. программа при этом становится более строгой и легче воспринимается. В качестве первого примера рассмотрим простейшую задачу, требующую организации циклов. Пример 1. Вычислить сумму S = 1 + 2 + 3 + … + 10. Вариант 1. Предусмотрим вывод вычисленной суммы в ячейку А4 листа Excel. Программный код приведен на рис. 3.
Рис. 3 Оператор range(“A4”).value = s предназначен для вывода значения s в ячейку с адресом A4 текущего листа Excel (формальное определение функции range будет дано далее). Чтобы получить результат, нужно выполнить команду RUN в строке меню. Результат (значение s) в соответствии с оператором range появится в листе1 окна Excel в ячейке A4 (рис. 4).
Рис. 4 Замечание. Для перехода в Excel нужно щелкнуть по пиктограмме Excel (левая кнопка в панели инструментов). Вариант 2. Вывод осуществляется в специальное окно на листе Excel при помощи функции MsgBox (рис. 5).
Рис. 5
В качестве аргумента функции MsgBox задается сообщение, которое будет отображено в диалоговом окне при выполнении этой функции, т.е. будет выведена строка, заключенная в кавычки (строковая константа), далее знак = и значение s. Знак & обозначает операцию конкатенации (объединения), Chr(13) – код символа перевода строки (рис. 6).
Рис. 6 Для возврата в VBA нужно щелкнуть по кнопке ОК.
Пример 2. Табулирование функции. Получить таблицу функции на отрезке [0,1; 0,8] с шагом 0,1. и построить график функции y(x).
Вариант 1. Значения функции получаются в одной и той же переменной y и после каждого вычисления значения аргумента и функции выводятся в последовательные строки. Программа и результат ее выполнения приведены на рис. 7, 8.
Рис. 7
Для вывода в последовательные строки используются операторы Cells(i+1, 1).value=x Cells(i+1, 2).value=y. обеспечивающие вывод значений x и y в последовательные строки, начиная с 2-й (при i = 1) в два параллельных столбца (x в 1-й, y во 2-й) (формальное определение функции Cells будет дано далее). Оператор Sheets(“Лист1”).select обеспечивает вывод в Лист 1 рабочей книги.
Рис. 8 Построение графика было осуществлено при помощи средств Excel. Выделяем блок ячеек A1:B9 и вызываем «Мастер диаграмм». Откроется диалоговое окно «Мастер диаграмм (шаг 1 из 4):тип диаграммы», выбираем тип диаграммы – график, нажимаем Далее>, откроется диалоговое окно «Мастер диаграмм (шаг 2 из 4): источник данных диаграммы». Нажимаем «Ряд», в открывшемся списке «Ряд» слово «Аргумент» удаляем. Курсор мыши щелкаем на поле «Подписи оси X:» и зажимая левую кнопку мыши, выделяем блок A2:А9. Данные из блока A2:А9 перенесутся на ось X. Нажимаем Далее>, откроется диалоговое окно «Мастер диаграмм (шаг 2 из 4): параметры диаграммы», выбираем название диаграммы и осей X и Y, а также линии сетки.. Нажимаем Далее>, откроется диалоговое окно «Мастер диаграмм (шаг 2 из 4): размещение диаграммы», выбираем, где будет размещена диаграмма, нажимаем «Готово». Вариант 2. Для вычисления функции оформляется подпрограмма-функция и осуществляется обращение к ней из процедуры (рис. 9).
Рис. 9
Результат выполнения программы тот же, что и для варианта 1 (без графика). Вариант 3. Из значений аргумента x и вычисляемой функции y сформировать два массива и определить максимальное значение функции на заданном отрезке и значение аргумента, при котором этот максимум достигается. Программа и результат ее выполнения приведены на рис. 10, 11.
Рис. 10 Рис. 11
5. Ввод данных: из листа Excel и с помощью функции InputBox Пример 3. Задана матрица А размером 5х5. Требуется сформировать два массива из значений и индексов максимальных элементов строк. Вариант 1. Исходные данные считываются из соответствующих ячеек листа Excel. Программа и результат ее выполнения приведены на рис. 12, 13. Рис. 12 Здесь вывод матрицы в последовательные строки осуществляется c использованием уже знакомой по предыдущим программам функцией Cells.
Рис. 13
Следующая программа демонстрирует формирование строки для вывода матрицы при помощи функции MsgBox. Строка формируется из различных элементов. Элементом может быть текст, числовое значение или переменная и управляющие символы, например, Chr(13) – символ перевода строки.
Рис. 14 После ввода очередного элемента матрицы его значение сразу присоединяется к строке Masv. После присоединения очередной строки матрицы к строке Masv добавляется символ перевода строки Chr(13) так что матрица в диалоговом окне на листе Excel будет выглядеть в привычном виде по строкам (рис. 15).
Рис. 15
Вариант 2 (см. Пример 3) Исходные данные вводятся с клавиатуры. Программа и результат ее выполнения приведены на рис. 16, 17.
Рис. 16 Для ввода исходной матрицы используется функция InputBox. При выполнении этого оператора на экран буде выведено диалоговое окно, содержащее поле ввода, в которое и нужно последовательно помещать вводимые значения. На рис. 17 запечатлен момент ввода значения n.
Рис. 17
Дата добавления: 2014-01-13; Просмотров: 2609; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |