
Информационные системы в экономике.-1
.pdfВ событиях необходимо обратить внимание на событие Click.
Список (ListBox) применяется для хранения списка значений. Из
списка пользователь может выбрать одно или несколько значений, которые
впоследствии будут использоваться в тексте программы.
Основные свойства
Enabled |
Допустимые значения: True (запрещен выбор значения из |
|
|
списка пользователем) и False (в противном случае) |
|
Text |
Возвращает выбранный в списке элемент |
|
List |
Возвращает элемент списка, стоящий на пересечении |
|
|
указанных строки и столбца. List (row, column) |
|
MultiSelect |
Устанавливает |
способ выбора элементов списка. |
|
Допустимые значения: |
|
|
fmMultiSelectSingle (выбор только одного элемента) |
|
|
fmMultiSelectMulti (разрешен выбор нескольких элементов |
|
|
посредством либо |
щелчка, либо нажатием клавиши |
|
<Пробел>) |
|
|
fmMultiSelectExtended (разрешено использование клавиши |
|
|
<Shift> при выборе ряда последовательных элементов |
|
|
списка) |
|
Selected |
Используется для определения выделенного текста, когда |
|
|
свойство MultiSelect |
имеет значение fmMultiSelectMulti или |
|
fmMultiSelectExtended. Допустимые значения False, True |
|
ColumnCount |
Устанавливает число столбцов в списке |
|
ListCount |
Возвращает число элементов списка |
|
ListIndex |
Возвращает номер текущего элемента списка. Нумерация |
|
|
элементов начинается с 0 |
|
Методы |
элемента ListBox |
|
|
|
|
Clear |
Удаляет все элементы из списка |
|
RemoveItem |
Удаляет из списка элемент с указанным номером |
|
|
RemoveItem (index) |
|
AddItem |
Добавляет элемент в список |
|
|
AddItem ([ item [, varIndex]]) |
|
|
Item – элемент (строковое выражение), добавляемое в список |
|
|
varIndex – номер добавляемого элемента |
Заполнение списка
Заполнить список можно одним из следующих способов.
Поэлементно (список состоит из |
ListBox1.AddItem |
"Hello" |
одной колонки) |
ListBox1.AddItem |
"Bye" |
|
ListBox1.ListIndex=0 |
61
Массивом, если список состоит из |
ListBox1.List=Array ("Hello", |
одной колонки |
"Bye") |
|
ListBox1.ListIndex=1 |
Поэлементно, если список состоит |
ListBox1.ColumnCount =2 |
из нескольких колонок |
ListBox1.AddItem "Hello" |
|
ListBox1.List(0,1)= "Gane" |
|
ListBox1.AddItem "Hello" |
|
ListBox1.List(1,1)= "Lisa" |
|
ListBox1.AddItem "Hello" |
|
ListBox1.List(2,1)= "Dim" |
Массивом, если список состоит из |
Dim A(2,1) As String |
нескольких колонок |
A(0,0)= "Hello" |
|
A(0,1)= "Gane" |
|
A(1,0)= "Hello" |
|
A(1,1)= "Lisa" |
|
A(2,0)= "Hello" |
|
A(2,1)= "Dim" |
|
ListBox1.ColumnCount=2 |
|
ListBox1.List=A |
Выбор нескольких элементов из списка
Вычисление среднего значения выбранных в списке элементов:
ListBox1.List = Array (1,2,3,4,5,6,7,8)
ListBox1.ListIndex = 0
ListBox1.MultiSelect = fmMultiSelectMulti
Среднее = 0 N = 0
For i = 0 to ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
N = N + 1
Среднее = Среднее + ListBox1.List(i) End if
Next
Среднее = Среднее / N
Переключатель.Флажок (CheckBox)
Элемент управления (OptionButton) позволяет выбрать из нескольких взаимоисключающих параметров или действий. Переключатели типа
62
CheckBox обычно изображаются группами, обеспечивая возможность выбора
альтернативного варианта.
Value |
Возвращает True, если переключатель выбран и False в |
|
противном случае |
Enabled |
True – пользователь может выбрать переключатель, False – в |
|
противном случае |
Visible |
True – переключатель отображается во время выполнения |
|
программы, False – в противном случае |
Capture |
Надпись, отображаемая рядом с переключателем |
Комбинированные поля (Combobox) сочетают возможности текстового поля и списка. Комбинированное поле позволяет выбрать из списка заранее определенную строку или ввести значение, которого нет в списке. Существует три разновидности комбинированных полей,
выбираемые в режиме конструирования: раскрывающиеся комбинированные поля, простые комбинированные поля и раскрывающиеся списки.
По свойствам, событиям и методам комбинированные поля очень похожи на списки. Тем не менее, свойство Text в комбинированных полях работает несколько иначе. Если для списков свойство Text при выполнении программы может лишь вернуть текст текущей выделенной строки, то для комбинированных полей значение этого свойства можно задавать и во время выполнения – текст задается даже в том случае, если строка отсутствует в списке.
Особую роль для комбинированного поля играет свойство Style. Оно может принимать три значения, определяющих поведение и внешний вид комбинированного поля.
0 - Раскрывающееся комбинированное поле похоже на стандартное текстовое поле, справа от которого имеется кнопка со стрелкой. Если нажать кнопку, под текстовым полем раскрывается список. Пользователь может либо выбрать строку из списка, либо внести в поле свой собственный вариант. Именно этот вариант обычно называется комбинированным полем.
63

1 - Простое комбинированное поле представляет собой разновидность
описанного выше – единственное отличие состоит в том, что список
постоянно остается открытым. Этот вариант выбирается в том случае,
если на Вашей форме остается много свободного места.
События комбинированного поля.
Описание
Реакция на щелчок мыши
Реакция на двойной щелчок мыши. Имеет значение лишь для простых полей
Методы комбинированных полей совпадают с методами списков.
Задания на лабораторную работу
Задание 1.
1.Вставьте новую форму. Высота формы – 150, ширина – 200.
2.Поместите на ней два объекта CommandButton. Одну кнопку назвать «Уменьшить», вторую – «Увеличить».
3.При нажатии на кнопку «Увеличить» размер формы должен увеличиваться на 10, не превышая максимальных значений: для высоты –
450; для ширины – 600.
4.При нажатии на кнопку «Уменьшить» размер формы должен уменьшаться на 10, не переходя за минимальный размер формы.
Задание 2.
1.Откройте форму предыдущего задания.
2.Дважды щелкните по форме, чтобы перейти к окну программы. В
двух раскрывающихся списках, раскрывающихся в верхней части окна программы, должны быть выбраны строки Form и Load; это означает, что в настоящий момент Вы работаете с событием Load формы.
3.Раскройте второй список и прокручивайте его вниз то тех пор, пока не найдете в нем строку Resize. Тем самым Вы переходите к событию Resize
данной формы.
4. Введите в событие Resize следующую строку:
64

Width = Height
5.Запустите проект.
6.Попробуйте изменить размеры формы различными способами. Как ведет себя форма?
7.Остановите программу.
Задание 3.
Создать приложение, которое позволяет выбрать несколько чисел,
выводимых в списке, заполняемом случайными значениями при инициализации окна, в диалоговом окне Операции над элементами
(рис. 14).
Рис. 14Объект UserForm
В группе Операции следует установить один из переключателей:
Сумма, Произведение или Среднее, чтобы указать какая из операций будет выполняться над выбранными числами. Нажатие кнопки Вычислить должно привести к выполнению операции и выводу результата в поле Результат.
Кнопка Закрыть выполняет закрытие диалогового окна, а также должен быть запрет для ввода в поле Результат объекта UserForm.
65
Лабораторная работа №6
Классы и объекты в Visual Basic for Application. Операции и
встроенные функции
Тема и цель работы
Знакомство с объектами VBA. На практике рассмотреть основные операции и функции.
Теоретический материал, для освоения темы
Объектная модель
Объектная модель MS Excel представляет собой иерархию объектов,
подчиненных одному объекту Application, который соответствует самому приложению Office. Многие из этих объектов собраны в библиотеке объектов конкретного приложения, но некоторые из них, например, объект
Assistant, входят в библиотеку объектов Office, которая является общей для всех офисных приложений.
Полная и неявная ссылка на объект
Полная ссылка на объект состоит из ряда имен вложенных последовательно друг в друга объектов. Разделителями имен объектов в этом ряду являются точки, ряд начинается с объекта Application и
заканчивается именем самого объекта. Например, полная ссылка на ячейку
А1 рабочего листа Продажи рабочей книги с именем Архив имеет вид:
Application.Workbooks("Архив").Worksheets("Продажи").Ra
nge("Al")
Приводить каждый раз полную ссылку на объект совершенно не обязательно. Обычно достаточно ограничиться только неявной ссылкой на объект. В неявной ссылке, в отличие от полной, объекты, которые активны в
66
данный момент, как правило, можно опускать. В рассмотренном случае, если ссылка на ячейку А1 дана в программе, выполняемой в среде Excel, то ссылка на объект Application может быть опущена, т.е. достаточно привести относительную ссылку:
Workbooks("Архив").Worksheets("Продажи").Range("Al")
Если в этом примере ссылки рабочая книга Архив является активной,
то ссылку можно еще сократить:
Worksheets("Продажи").Range("Al")
Если и рабочий лист Продажи активен, то в относительной ссылке вполне достаточно ограничиться упоминанием только диапазона А1:
Range("Al")
Основные объекты VBA
Объект Application (приложение) является главным в иерархии объектов Excel и представляет само приложение Excel. Он имеет более 120
свойств и методов и методов. Эти свойства и методы предназначены для установки общих параметров приложения Excel. Кроме того, объект
Application позволяет вызывать более 400 встроенных функций рабочего листа при помощи конструкции вида:
Application.ФункцияРабочегоЛиста (Аргументы)
Например, для определения постоянных периодических платежей при постоянной процентной ставке можно воспользоваться следующей функцией:
Application.Pmt (Аргументы)
Свойства объекта Application
ActiveWorkbook |
Возвращает активный объект: рабочую книгу, лист, |
ActiveSheet |
ячейку, диаграмму диалоговое окно. Свойство ActiveCell |
ActiveCell |
содержится в ActiveSheet, а свойства ActiveChart и |
67
ActiveChart |
|
ActiveDialog в ActiveWorkbook. |
|
||||
ActiveDialog |
|
Например: |
|
|
|
|
|
|
|
|
ActiveCell.Value = “Привет!” |
|
|||
|
|
|
Здесь в активную ячейку вводится фраза Привет! |
||||
ThisWorkbook |
Возвращает |
рабочую |
книгу, |
содержащую |
|||
|
|
|
выполняющийся в данный момент макрос. |
|
|||
Calculation |
|
Устанавливает режим вычислений |
|
||||
Caption |
|
Возвращает текст в строке имени главного окна Excel. |
|||||
|
|
|
Установка свойства равным Empty возвращает |
||||
|
|
|
заголовок, используемый по умолчанию |
|
|||
DisplayAlerts |
|
Значения: |
True |
– |
отображаются |
встроенные |
|
|
|
|
предупреждения о работе программы, False – не |
||||
|
|
|
отображаются предупреждения |
|
|||
DisplayFormulaBar |
Значения: True – строка формул выводится в окне Excel, |
||||||
|
|
|
False – не выводится |
|
|
|
|
DisplayScrollBars |
Значения: True – полоса прокрутки выводится в окне |
||||||
|
|
|
Excel, False – полосы прокрутки не отображаются |
||||
Height |
|
Высота приложения в пунктах |
|
||||
Width |
|
Ширина приложения в пунктах |
|
||||
Right |
|
Расстояние в пунктах от правой границы окна |
|||||
|
|
|
приложения до правого края окна |
|
|||
Left |
|
Расстояние в пунктах от левой границы окна приложения |
|||||
|
|
|
до левого края окна |
|
|
|
|
Top |
|
Расстояние в пунктах от верхней границы приложения |
|||||
WindowState |
|
Устанавливает размер окна |
|
|
|||
Методы объекта Application |
|
|
|
||||
|
|
|
|||||
Calculate |
|
Вызывает принудительное вычисление во всех открытых |
|||||
|
|
рабочих книгах. |
|
|
|
|
|
Run |
|
Запускает на выполнение программу или макрос. |
|
||||
OnKey |
|
Устанавливает сочетание клавиш для выполнение выбранной |
|||||
|
|
процедуры. |
|
|
|
|
|
|
|
OnKey(Key, Procedure) |
|
|
|
||
Quit |
|
Закрывает приложение. |
|
|
|
||
OnTime |
|
Назначает выполнение процедуры на определенное время. |
События объекта Application
NewWorkbook |
При создании новой рабочей книги |
WorkbookActivate |
При активизации рабочей книги |
WorkbookBeforeClose |
Перед закрытием рабочей книги |
WorkbookBeforePrint |
Перед печатью рабочей книги. |
WorkbookBeforeSave |
Перед сохранением рабочей книги. |
68
WorkbookNewSheet |
При добавлении нового листа |
WorkbookOpen |
При открытии рабочей книги |
Объект Workbook (книга) |
|
Свойства объекта Workbook |
|
|
|
ActiveSheet |
Возвращает активный лист книги. |
ActiveDialog |
Возвращает активное диалоговое окно |
ActiveChart |
Возвращает активную диаграмму |
|
Например: MsgBox “Название диаграммы” & |
|
ActiveChart.Name |
|
выводит в диалоговом окне имя активной диаграммы |
Saved |
True – если не производились изменения в документе |
|
со времени его последнего сохранения, False – в |
|
противном случае. Например: |
|
If WorkBook.Saved=True Then |
|
MsgBox “ удачно сохранились! “ |
|
End If |
WriteReserved |
True – если книгу закрыть для записи, False – в |
|
противном случае |
Методы объекта Workbook |
|
|
|
Activate |
Активизирует рабочую книгу |
Add |
Создает новую книгу |
Protect |
Защищает рабочую книгу от внесения в неё |
|
изменений. |
|
Protect(Password, Structure, Windows) |
|
Например: ActiveWorkbook.Protect Password:= “Не |
|
влезай!” |
UnProtect |
Снятие защиты с листа |
|
UnProtect(Password) |
Close |
Закрытие рабочей книги |
Open |
Открытие существующей книги |
Save |
Сохранение рабочей книги |
SaveAs |
Сохранение книги с другими параметрами |
PrintPreview |
Предварительный просмотр |
События объекта Workbook |
|
|
|
BeforeClose |
При закрытии книги |
BeforePrint |
Перед печатью рабочей книги |
BeforeSave |
Перед сохранением рабочей книги |
69
NewSheet |
|
При добавлении нового листа. |
|
|
|
Open |
|
При открытии рабочей книги. |
|
|
|
SheetActivate |
|
При активизации любого рабочего листа. |
|
||
SheetDeactivate |
|
Когда рабочий лист теряет фокус. |
|
|
|
Объект Worksheet (лист) |
|
|
|
||
Свойства объекта Worksheet |
|
|
|
||
|
|
|
|
||
Name |
Возвращает имя рабочего листа. |
|
|
||
Visible |
Отображает «видимость» или «невидимость» листа (True, |
||||
|
False – соответственно) |
|
|
||
ActiveCell |
Возвращает активную ячейку активного листа. |
|
|||
StandartHeight |
Возвращает стандартную высоту всех строк рабочего |
||||
|
листа |
|
|
|
|
UsedRange |
Возвращает диапазон (объект Range), который содержит |
||||
|
данные. |
|
|
|
|
Union |
Возвращает диапазон, являющийся объединением |
||||
|
нескольких диапазонов. |
|
|
||
Методы Worksheet |
|
|
|
||
|
|
|
|
|
|
Activate |
Активизирует |
указанный |
рабочий |
лист. |
|
|
Worksheets(1).Activate |
|
|
||
Add |
Создает новый рабочий лист |
|
|
||
|
Add(Before, After, Count, Type) |
|
|
||
Delete |
Удаляет рабочий лист |
|
|
||
Protect |
Защищает рабочий лист от внесения в него изменений |
||||
Unprotect |
Снятие защиты с рабочего листа |
|
|
||
Copy |
Копирование рабочего листа в другое место |
|
|||
|
Copy (Before, After). Допустимо использование только |
||||
|
одного аргумента |
|
|
|
|
Move |
Перемещение рабочего листа в другое место |
|
|||
Evaluate |
Преобразует выражение в объект или значение. |
||||
|
Используется при вводе формул и ячеек из диалоговых |
||||
|
окон |
|
|
|
Объекты Range (диапазон)
При работе с объектом Range необходимо помнить, как в Excel
ссылаются на ячейку рабочего листа (см. относительные и абсолютные
ссылки).
70