- •Оглавление
- •Предисловие
- •Введение
- •Общие сведения о vba
- •Структура редактора vba
- •Запуск редактора vba и завершение работы
- •Пользовательский интерфейс редактора vba
- •Окно Project Explorer (Проекта)
- •Окно свойств (Properties)
- •Окно для редактирования кода
- •Окно редактирования форм (UserForm)
- •Программирование на vba
- •Использование модулей и процедур
- •Запуск пользовательских функций
- •Создание новой процедуры
- •Выбор имени
- •Удаление модуля из проекта
- •Представление данных в vba
- •Операции языка vba
- •Инструкции
- •Инструкции объявления (описания)
- •Инструкции присваивания (назначения или присвоения)
- •Выполняемые инструкции (исполняемые инструкции)
- •Инструкции по управлению потоком
- •Объекты в vba
- •Работа с диапазонами
- •Использование свойства Range
- •Использование свойства Cells
- •Работа со свойствами – атрибутами объектов
- •Работа с методами объектов
- •Взаимодействие с пользователем
- •Вывод сообщений с помощью функции MsgBox
- •Вывод сообщений с помощью оператора MsgBox
- •Ввод данных пользователем с помощью окон ввода
- •Использование комментариев в программах vba
- •Создание пользовательских форм в редакторе vba
- •Создание формы
- •Использование элементов управления
- •Свойства элементов управления
- •Методы и события элементов управления
- •Макросы
- •Сервис►Макрос►Макросы…
- •Вопросы для самоконтроля
- •Примеры решения задач в среде программирования vba
- •Разработка программ и алгоритмов линейной структуры
- •С использованием процедуры функции в редакторе Visual Basic;
- •С использованием рабочего листа ms Excel;
- •С использованием форм пользователя в редакторе Visual Basic. Задание 1
- •Создание процедуры функции в редакторе Visual Basic Ход выполнения задания:
- •Создание процедуры подпрограммы с использованием ввода исходных данных и вывода результатов на рабочий лист ms Excel Ход выполнения задания:
- •Создание формы пользователя в редакторе Visual Basic Ход выполнения задания:
- •Разработка программ и алгоритмов разветвляющейся структуры
- •С использованием рабочего листа ms Excel;
- •С использованием форм пользователя в редакторе Visual Basic. Задание 2
- •Создание процедуры подпрограммы с использованием ввода исходных данных и вывода результатов на рабочий лист ms Excel Ход выполнения задания 2:
- •Создание формы пользователя в редакторе Visual Basic Ход выполнения задания:
- •Назначить автофигуре с надписью Задача2 макрос Zadanie2, выбрав пункт контекстного меню Назначить макрос...
- •Разработка программ и алгоритмов циклической структуры
- •С использованием процедуры функции в редакторе Visual Basic;
- •С использованием встроенных диалоговых окон (окна ввода, окна сообщения) в процедуре подпрограммы. Задание 3
- •Создание процедуры функции в редакторе Visual Basic
- •Использование окон сообщений и окон ввода
- •Разработка программ и алгоритмов с использованием массивов Задание 4
- •Ход выполнения задания 4:
- •Заключение
- •Библиографический список
- •Интернет ресурсы
- •Предметный указатель
Работа с диапазонами
Объект Range (Диапазон) содержится в объекте WorkSheet (Рабочий лист) и может состоять из отдельной ячейки или набора ячеек одного рабочего листа.
Язык VBA предлагает три способа ссылки на объект Range:
в виде свойства Range (диапазон) объекта WorkSheet (или объекта класса Range);
в виде свойства Cells (Ячейки) объекта WorkSheet;
в виде свойства Offset (Смещение) объекта Range.
Использование свойства Range
Свойство Range возвращает объект Range. Свойство Range имеется у двух типов объектов: объектов WorkSheet и объектов Range. Это свойство имеет две синтаксические формы:
Object. Range (ячейка1)
Object. Range (ячейка1, ячейка2)
Здесь ячейка1 и ячейка2 – ссылки на ячейки в формате, принятом в Excel, причем во второй синтаксической форме адреса ячеек определяют границы диапазона.
Рассмотрим несколько примеров. В первом примере ячейке В3 на листе Лист1 присваивается значение 123:
WorkSheets(“Лист1”). Range(“B3”).Value = 123
Если ячейке В3 присвоить имя «Данные», то можно было записать ссылку на ячейку по ее имени:
WorkSheets(“Лист1”). Range(“Данные”).Value = 123
В следующем примере ячейкам диапазона А3:С10 присваивается значение 100:
ActiveSheet. Range(“A3:C10”).Value = 100
Если активный лист не является рабочим листом, а представляет собой, например, лист диаграммы, то появляется сообщение об ошибке.
Такое же действие может выполнить оператор
Range(“A3”, “C10”) = 100
Здесь ссылка на лист опущена. По умолчанию предполагается активный лист. Так как свойство Value назначается объекту Range по умолчанию, его также можно опустить. В этом примере первый аргумент является адресом левой верхней ячейки диапазона, второй – адресом правой нижней ячейки.
Следующий пример использует оператор пересечения диапазонов, возвращающий ячейки, стоящие на пересечении двух диапазонов (здесь это ячейка С6):
Range(“С1:C10 А6:Е6”) = 3
Далее, присваивается одинаковое значение пяти ячейкам, не составляющим непрерывный диапазон (запятая используется в качестве оператора объединения ячеек):
Range(“А1, А3, А6, А8, А16”) = 4
Во всех приведенных выше примерах использовалось свойство Range объекта WorkSheet. Теперь рассмотрим пример использования этого свойства у объекта Range. Необходимо помнить, что объект Range – это всегда активная ячейка. Поэтому в операторе
ActiveCell. Range(“B2”) = 5
значение 5 присваивается ячейке, отстоящей от активной на один столбец вправо и на одну строку ниже.
“B2”:
где В – число столбцов на которое смешается курсор относительно активной ячейки,
2 – число строк на которое смещается курсор относительно активной ячейки.
Т.е. аргумент свойства Range задает такое смещение относительно активной ячейки, как если бы активной была ячейка А1. Более удобным образом смещение задается специальным свойством Offset.
Использование свойства Cells
Подобно свойству Range, данное свойство имеют объекты WorkSheet и Range. Наиболее употребимы синтаксические формы:
Object. Cells(номер_строки, номер_столбца)
Например:
WorkSheet (“Лист1”). Cells(1, 1) = 9
На листе Лист1 ячейке А1 присваивается значение 9.
Задаются номера строк (число от 1 до 65536) и номера столбцов (число от 1 до 256), определяющие местоположение ячейки.
ActiveSheet. Cells(3, 4) = 3
На активный рабочий лист в ячейку D3 вводится число 3.
Такой способ ссылки на ячейки удобен при организации циклов, когда параметры «номер строки» и «номер столбца» задаются с помощью переменных.
Object. Cells
Синтаксическая форма свойства Cells возвращает все ячейки рабочего листа. Например, можно удалить содержимое рабочего листа, использовав оператор
ActiveSheet. Cells. ClearContents
Здесь ClearContents – метод очистки содержимого, применяемый к свойству – объекту Cells.
