Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть1.doc
Скачиваний:
138
Добавлен:
03.05.2015
Размер:
1.01 Mб
Скачать

Задание №2

Используя функции InputBox, MsgBox, CSng выполните задание согласно варианту (данные для ввода указаны в задании):

Варианты задания

  1. Введите Фамилию, введите Имя, введите Возраст. Выведите следующее окно:

  1. Введите Год, введите Месяц, введите Число. Выведите следующее окно:

  1. Введите Год рождения, введите Месяц рождения, введите Текущий год. Выведите следующее окно:

  1. Введите Город, введите Название животного, введите Количество животных. Выведите следующее окно:

  1. Введите Фамилию, введите Имя, введите Отчество. Выведите следующее окно:

  1. Введите Год, введите Название месяца, введите Число. Выведите следующее окно:

  1. Введите Наименование товара, введите Цену, введите Количество товара. Выведите следующее окно:

  1. Введите Фамилию, введите Баллы за 1 лаб.раб., введите Баллы за 2 лаб.раб. Выведите следующее окно:

  1. Введите Фамилию, введите Размер зарплаты, введите Процент отчисления. Выведите следующее окно:

  1. Введите Фамилию, введите Оклад, введите Отдел. Выведите следующее окно:

Тема №3: «Создание формы»

1. Объект.

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

3. Метод объекта.

4. Класс объекта.

5. Добавление к проекту новой формы.

2. Свойства UserForm.

3. События и событийные процедуры.

4. События объектов UserForm.

5. Пример 5.

6. Пример 6.

7. Элементы управления.

8. Пример 7.

9. Задание №3. Варианты задания.

1. Объекты могут содержать другие объекты. К примеру, книга Excel содержит рабочие листы. В свою очередь, рабочие листы содержат ячейки. В це­лом, все объекты Excel образуют строгую иерархию. Так, объект Interior ("Заливка") может относиться к текущей ячейке, диапазону ячеек или к ячейке электронной таблицы, находящейся на другом листе рабочей книги. Чтобы уточнить, какую именно заливку мы имеем в виду, необходимо указать принадлежность объекта Interior. Принадлежность объекта указывается соответствующей приставкой перед именем объекта:

<Принадлежность>.<Объект>.<Свойство объекта>

Например, структура объекта ActiveCell (активная ячейка) следующая:

Например, цвет заливки текущей ячейки обозначается: ActiveCell.Interior.Color.

В MS Excel имеется много встроенных объектов:

  • Range(“Адрес”) - диапазон ячеек (может включать только одну ячейку).

  • Cells(i, j) - ячейка, находящаяся на пересечении i-й строки и j-го столбца рабочего листа.

  • Rows(№ строки) - строка с заданным номером.

  • Columns(№ столбца) - столбец с заданным номером.

  • Sheets(“Имя”) - лист с указанным именем.

  • Sheets(№ листа) - лист с указанным номером.

  • WorkSheet - рабочий лист.

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

При обращении к какому-либо свойству объекта используется следующий синтаксис:

<Объект>.<Свойство объекта>

Например, чтобы прочитать формулу, содержащуюся в текущей ячейке, нужно написать ActiveCell.Formula. Здесь ActiveCell - объект, a Formula - его свойство.

Установка значений свойств – это один из способов управления объектами. Синтаксис установки значения свойства объекта следующий:

<Объект>.<Свойство> = <Выражение>

Например: в диапазон ячеек A5:A10 заносится значение 0.

Range(“A5:A10”). Value = 0

Свойство Value (значение) можно не указывать

Range(“A5:A10”) = 0.

Значение свойства объекта можно прочитать и занести в перемену. Синтаксис чтения свойств объекта следующий:

<Переменная> = <Объект>.<Свойство>

Например: переменной Xn присваивается значение из ячейки B1 текущего рабочего листа.

Xn = Range(“B1”).Value

или Xn = Cells(1, 2).Value

3. Кроме свойств, у объектов есть ряд методов. Метод - это дейст­вие, применяемое к объекту. Например, одним из методов для объекта Range является очистка содержимого.

При обращении к методу конкретного объекта используется следующий синтаксис:

<Объект>.<Метод объекта>

Например:

Range("A1:A10").ClearContentsочистить содержимое диапазона А1:А10.

Sheets(2).Activate – сделать активным лист с №2.

Sheets(“Диаграмма”).Delete – удалить лист с именем “Диаграмма”.

Range("A5:A10").Clear – очистить диапазон ячеек A5:A10.

Range("A2:B10").Select – выделить диапазон ячеек A2:B10.

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

5. Для добавления к проекту новой формы выберите команду Insert ->UserForm (Вставка/UserForm).

Объект форма (UserForm) – это пустое диалоговое окно. Настройку этого окна можно выполнить добавлением к объекту UserForm (форма) элементов управления. Каждому элементу присущи определенные свойства, методы и события, которые он наследует от класса объектов UserForm. Каждый объект UserForm включает в себя также модуль класса, в который вы можете добавлять собственные методы и свойства или код обработки событий формы.

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

Когда форма выведена и используется как часть выполняющейся программы (то есть активна), она находится в режиме выполнения.

Все формы VBA являются модальными (modal) приложениями, это означает, что вы не сможете выполнить какое-либо другое действие в приложении до тех пор, пока форма диалога не будет закрыта или скрыта.

6. Объект UserForm можно переименовать так же, как стандартный модуль или модуль класса. Для этого измените в окне Properties Window свойство Name этого объекта. Некоторые из свойств могут быть установлены только посредством Properties Window. Программным способом свойства форм устанавливаются путем присвоения свойству нового значения.

2. Наиболее часто используемые свойства UserForm

ActiveControl

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

BackColor

Целое (типа Long), определяет цвет фона формы. Установить это свойство можно в Properties Window. Чтобы выбрать желаемый цвет, можно скопировать номер цвета из Properties Window в свою программу.

Caption

Текст, выводимый в качестве заголовка формы. Запись/Чтение

Controls

Возвращает коллекцию всех элементов управления формы. Только для чтения

Cycle

Определяет, должно ли нажатие клавиши Tab вызывать последовательный выбор всех элементов управления во всех группах и на каждой странице многостраничных элементов управления или только в пределах текущей группы или страницы. Может содержать одну из двух встроенных констант: fmCycleAllForms или fmCycleCurrentForm. Чтение/Запись

Enabled

Содержит значение типа Boolean, указывающее, доступна ли форма. Если его значение равно False, ни один из элементов управления не доступен

Font

Возвращает ссылку на объект Font, посредством которого вы можете выбрать параметры шрифта формы или элемента управления используемый для переднего плана (обычно — это цвет текста) объекта формы

ForeColor

То же самое, что и свойство BackColor, но устанавливает цвет объекта формы, используемый для переднего плана (обычно — это цвет текста)

Манипулировать объектом формы можно при помощи стандартных методов и свойств класса UserForm и при помощи собственных процедур обработки событий для определенной вами формы и ее элементов управления.

3. Событие (event) – это что-то, что может произойти с диалоговым окном или элементом управления диалогового окна. Типичные примеры событий: щелчок на кнопке, переключателе, изменение содержимого окна редактирования, выбор элемента списка. Такие объекты, как формы и элементы управления приводят в действие, иными словами, влекут за собой события.

Процедуры, реагирующие на события, называются событийными процедурами (event procedures) или процедурами обработки событий. Событийные процедуры следует записывать в модуль класса, который является частью UserForm.

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

4. События объектов UserForm

Click

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

DblClick

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

Activate

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

Initialize

Инициируется всякий раз, когда форма впервые загружается в память посредством выполнения оператора Load или с помощью метода Show. Используется это событие для инициализации элементов управления формы при ее появлении на экране

Terminate

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

Пример 5.

Создайте форму, выводящую соответствующие сообщения на события Click, Activate, Terminate.

Для этого добавьте форму к проекту, выберите команду View ->Code или нажмите клавишу F7, напишите событийную процедуру Click() для объекта UserForm реагирующую на щелчок мыши.

Private Sub UserForm_Click()

MsgBox("Событие: Click")

End Sub

После появления формы на экране щелкните на ней мышью, на экране появится сообщение

В верхней части окна программы помещены два раскрывающихся списка: 1 (General) – позволяет выбрать управляющий элемент или форму, 2 (Declarations) – позволяет выбрать событие, допустимое для выбранного в первом списке объекта.

  • выберетесобытиеActivate

Private Sub UserForm_Activate()

MsgBox ("Событие: Activate")

End Sub

  • выберетесобытиеTerminate

Private Sub UserForm_Terminate()

MsgBox("Событие: Terminate")

End Sub

После появления формы на экране щелкните на ней мышью,

на экране появится сообщение

  • выберетесобытиеInitialize

Private Sub UserForm_Initialize()

MsgBox ("Событие: Initialize")

End Sub

На экране появится сообщение, а при закрытии окна – появится форма.

Событие Initialize можно использовать при первой загрузке формы для установки каких-либо свойств формы и ее элементов управления.

Пример 6.

Создайте форму, изменяющую фон цвета на событие Click

Private Sub UserForm_Click()

UserForm1.BackColor = RGB(100, 100, 200)

End Sub

В этом примере для установки свойства формы BackColor используется функция RGB, которая возвращает RGB-значение типа Long.

Синтаксисфункции:

RGB(red, green, blue),

где именованные аргументы Red, Green, Blue – обязательные типа Variant (Integer) - это числа в диапазоне 0–255, представляющие красный, зеленый и синий компоненты цвета.

Сначала будет выведена форма вида 1, а после щелчка мыши по форме – вида 2.

ВыберетесобытиеInitialize

Private Sub UserForm_Initialize()

UserForm1.BackColor = RGB(100, 100, 200)

End Sub

В результате при запуске процедуры на выполнение сразу будет выведено окно вида 2.

7. Объект UserForm может содержать те же элементы управления, что и находящиеся в диалоговых окне Excel или других приложений Windows. Элементы управления (controls) – это элементы диалогового окна, которые дают возможность пользователю взаимодействовать с программой. Они включают в себя кнопки-переключатели, текстовые поля, линейки прокрутки, командные кнопки и т.д.

Каждый элемент управления – это объект с определенными свойствами, методами и событиями. Как и для формы, их содержащей, вы можете устанавливать свойства элементов управления программным путем или посредством Properties Window Редактора VB. В программе вы можете присваивать или восстанавливать значения свойств элементов управления так же, как для любых других объектов.

Стандартные элементы управления, включенные в VBA

Label

Select Objects

L

TextBox

abel(надпись,метка) – позволяет создавать заголовки элементов управления, помещать на форму статический текст, например, инструкции.

T

ComboBox

extBox(текстовое поле) – окно редактируемого текста свободной формы для ввода данных. Может быть одно- или многострочным

C

ListBox

omboBox(поле со списком) – объединяет окно редактирования и окно списка. Используйте, когда хотите предложить пользователю выбрать значение или дать возможность ввести данные, отсутствующие в списке.

ListBox(список) – отображает список значений, из которых пользователь может сделать выбор только одного или же нескольких значений.

CheckBox(флажок) – если элемент выбран, устанавливается «галочка». Используйте флажки для выбора вариантов, которые не являются взаимоисключающими

OptionButton(переключатель) – при выборе в центре появляется черная точка. Используйте, когда пользователю необходимо сделать выбор между «включено/выключено», «истина/ложь».

ToggleButton(выключатель) – служат для той же цели, что и флажки, но выводят установки в виде кнопки находящейся в «нажатом» или «отжатом» состоянии

Frame(рамка) – визуально и логически объединяет некоторые элементы управления (особенно флажки, переключатели и выключатели). выделяет группу элементов управления, отделяя ее от остальных элементов управления, находящихся в диалоговом окне

CommandButton(кнопка) – когда пользователь щелкает по кнопке, выполняется VBA-процедура, закрепленная за данным элементом управления

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

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

ScrollBar(полоса прокрутки) – позволяет выбирать линейное значение, аналогично тому, как это можно сделать при помощи счетчика

SpinButton(счетчик) – является специальной разновидностью текстового поля. Обычно счетчики используются для того, чтобы ввести число, дату или какие-либо иные последовательные величины, которые заведомо находятся в определенном интервале значений. Щелчок по указывающей вверх стрелке счетчика увеличивает значение в окошке, а щелчок по стрелке, направленной вниз, соответственно, уменьшает его.

Image (рисунок) – позволяет вывести на форме графическое изображение в любом из следующих форматов: *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wmf. выбор рисунка осуществляйте с помощью свойства Picture.

Пример 7.

Создайте форму. Разместите на ней два элемента "Надпись", два элемента "Поле" и два элемента "Кнопка". Свойства объектов измените так, чтобы форма имела следующий вид:

Свойства компоненты TextBox:

Text – определяет, какой текст введен в окне по умолчанию.

Height - определяет высоту окна отводимого под надпись.

Width - определяет ширину окна отводимого под надпись.

MousePointer – определяет вид указателя мыши

Left - определяет горизонтальную координату окна, отводимого под надпись (отступ от левого края формы).

Top - определяет вертикальную координату окна, отводимого под надпись (отступ от верхнего края формы).

Visible – определяет, видима будет надпись или нет.

Enabled – определяет, активно будет окно или нет.

ScrollBars - указывает наличие полос прокрутки.

Свойство может принимать следующие значения:

- None – обе полосы прокрутки отсутствуют;

- Horizontal – присутствует только горизонтальная полоса прокрутки;

- Vertical – присутствует только вертикальная полоса прокрутки;

- Both – присутствуют обе полосы прокрутки.

Multiline – указывает, разрешен ли многострочный режим ввода или нет. Возможные значения: True, False.

TextAlign – определяет выравнивание текста в окне

Locked - определяет возможность редактирования надписи в окне.

MaxLength - указывает максимальная длина надписи, которая может быть введена в этом окне.

Font – указывает, каким шрифтом будет писаться надпись.

ForeColor - определяет цвет шрифта.

BackColor - определяет цвет фона.

BorderStyle - определяет стиль бордюра окна, отводимого под надпись.

Может принимать следующие значения:

- None – бордюр отсутствует;

- Fixed Single – фиксированный бордюр стандартного окна Windows.

ToolTipText - указывает всплывающую подсказку, которая выводится на экран при наведении курсора на окно, отведенное под надпись.

Напишите для события Click первого элемента "Кнопка" (CommandButtonl) код процедуры:

Private Sub CommandButton1_Click()

Dim strVar1 As String, strVar2 As String

strVar1 = "": strVar2 = ""

strVar1 =TextBox1.Text

strVar2 = TextBox2.Text

MsgBox "Ваша фамилия" & strVar1 & _

". Вам сейчас " & strVar2

End Sub

В процедуре оператор strVar1 =TextBox1.Text заносит в переменную strVar1 текст из первого текстового поля. Оператор strVar2 =TextBox2.Text заносит в переменную strVar2 текст из второго текстового поля.

Напишите для события Click второго элемента "Кнопка" (CommandButton2) код процедуры:

Private Sub CommandButton2_Click()

End

End Sub