<<
>>

ПОЛЬЗОВАТЕЛЬСКАЯ ФОРМА USERFORM

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

Семейство UserForms является семейством, компоненты которого представляют все загруженные формы, и имеет свойства

Count (возвращает число компонентов в семействе) и Item (возвращает определенный компонент семейства).

В табл. 5.7.3 приведены основные свойства, методы и события пользовательской формы.

Таблица 5.7.3

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

Название свойства Действие
Свойства
Name Возвращает имя пользовательской формы
Caption Возвращает текст, отображаемый в строке заголовка формы
BackCoIor Возвращает цвет фона формы
BorderStyIe Устанавливает тип границы
Picture Указывает рисунок, отображаемый как фон формы
Left и Top Возвращают местоположение верхнего левого угла формы в пунктах
Height и Width Возвращают высоту и ширину формы в пунктах
Методы
Show Отображает форму на экране
Hide Закрывает форму
События
Initialize Происходит при отображении формы на экране
Terminate Происходит при закрытии формы

Для активизации диалогового окна создается процедура инициализации формы.

В программном модуле формы содержатся действия, связанные с необходимой инициализацией элементов управления, расположенных в форме.

Создание пользовательской формы. Рассмотрим простой пример использования пользовательской формы при создании приложения, моделирующего игру «Орел и решка».

Для создания пользовательской формы в редакторе VBA нужно выбрать команду Insert UserForm (рис. 5.7.2). Затем, используя окно «Свойства» и панель элементов, создадим диалоговое окно, изображенное на рис. 5.7.3. Расположим на форме кнопку и переключатели.

Используя окно «Свойства», установите свойства формы. Например, в свойство «Caption» введите текст «игра орел-решка».

Для введения кода программы нужно сделать двойной щелчок на кнопке для открытия окна кода. Введите код:

Рис. 5.7. 2. Окно редактирования VBA с пользовательской формой и панелью элементов управления

Рис. 5.7.3. Диалоговое окно игры «Орел-решка»

Private Sub CommandButtonl_Click()

/

'Моделирование бросания монеты с равной вероятностью

' О - решка, 1 - орел #

Randomize

Монета = Int(2 * Rnd)

/

'Сравнение результата бросания монеты компьютером ' с ситуацией, когда игрок загадал "орел"

If OptionButtonl.Value = True Then If Монета = 0 Then MsgBox "He угадал!"

If Монета = I Then MsgBox "Победа!"

End If /

'Сравнение результата бросания монеты компьютером ' с ситуацией, когда игрок загадал "решка"

г

If OptionButton2.Value = True Then If Монета = I Then MsgBox "He угадал!"

If Монета = O Then MsgBox "Победа!"

End If End Sub

Для запуска приложения достаточно нажать кнопку «Запуск» подпрограммы (Sub)/UserForm или клавишу «F5». Откроется окно (см. рис. 5.7.3), далее нужно выбрать переключатель и в зависимости от результата функция MsgBox выведет сообщения «Победа» или «Не угадал».

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

Диалоговое окно для расчета маргинальной ставки представлено на рис. 5.7.4. Здесь использованы элементы управления «Поле», «Надпись», «Кнопка».

Рис. 5.7.4. Диалоговое окно расчета маргинальной ставки

1 Маргинальной процентной ставкой является максимальная процентная ставка, при которой предлагаемая сделка более выгодна, чем просто положить деньги в банк.

Исходными данными, вводимыми пользователем, являются: число выплат, размер ссуды, размер одной выплаты, процентная ставка.

Текущий объем вклада на основе постоянных периодических платежей вычисляется с помощью финансовой функции рабочего листа ПЗ (PV).

Для написания нижеследующего кода программы, связанного с формой, следует сделать двойной щелчок на кнопке «Вычислить». Откроется окно редактора кода. В окне кода появятся первая и последняя инструкции процедуры. Остальные операторы пользователь вводит самостоятельно. Строки кода, начинающиеся с апострофа, являются комментариями.

Private Sub CoiranandButtonl_Click()

#

7Процедура расчета маргинальной процентной ставки /

Dim і As Double Dim p As Double Dim A As Double Dim iMarg As Double Dim pPure As Double

Dim n As Integer /

'n - число выплат 'p - размер ссуды ' а - размер одной выплаты 'і - процентная ставка 'pPure - текущий объем ссуды,

'iMarg — маргинальная процентная ставка

'Проверка того, что введенные

'в диалоговое окно данные являются числами /

If IsNumeric(TextBoxl.Text) = False Then MsgBox "Ошибка в числе выплат", vdInformation,_ "Маргинальная ставка"

TextBoxl.SetFocus Exit Sub End If

If IsNumeric(TextBox2.Text) = False Then MsgBox "Ошибка в размере ссуды", _ vdlnformation, "Маргинальная ставка"

TextBox2.SetFocus Exit Sub End If

/

If IsNumeric(UserForm2.TextBox3.Text) = False Then MsgBox "Ошибка в размере одной выплаты", _ vdlnformation, "Маргинальная ставка"

TextBox3.SetFocus Exit Sub End If

/

If IsNumeric(TextBox4.Text) = False Then MsgBox "Ошибка в процентной ставке", _ vdlnformation, "Маргинальная ставка"

TextBox4.SetFocus Exit Sub End If

/

'Ввод данных в переменные из диалогового окна /

n = CInt(TextBoxl.Text) р = CDbl(TextBox2.Text)

A = CInt(TextВохЗ.Text) і = CInt(TextBox4.Text) / 100

I

'Проверка согласованности ввода данных /

If η * А < р Then

MsgBox "Возвращается на" & CStr(Format(р — η * А, "Fixed")) Sc.

"меньше размера ссуды", _ vdExclamation, "Маргинальная ставка"

TextBoxl.SetFocus Exit Sub End If

'Изменение ширины столбцов и задание режима ввода

'текста с переносом /

ActiveSheet.

Columns ("A:А#/). Select With Selection .ColumnWidth = 20 .WrapText = True End With

ActiveSheet.Columns ("B:B"). Select

Selection.ColumnWidth = 12 /

'Выбор ячейки B2 для того, чтобы снять выделение со столбца В

I

ActiveSheet.Range("В2").Select #

'Ввод названий записей на рабочем листе /

With ActiveSheet

.Range("А2").Value = "Число выплат"

.Range("АЗ").Value = "Размер ссуды"

.Range("А4").Value = "Размер одной выплаты"

.Range("А5").Value = "Процентная ставка"

.Range("А6").Value = "Текущий объем ссуды"

.Range("А7") .Value = "Маргинальная процентная ставка"

.Range("А8").Value = "Маргинальный чистый текущий объем ссуды"

.Range("В8").Activate

End With /

'Расчет чистого текущего объема ссуды

г

pPure = Application.PV(і, n, -А)

t

'Нахождение маргинальной процентной ставки 'с помощью команды Подбор параметра.

'Ввод данных в ячейки активного рабочего листа

'и задание процентного денежного формата в ячейках /

With ActiveSheet .Range("В2").Value = η

.Range("ВЗ").NumberFormat . Range("ВЗ").Value = р . Range ("В4").NumberFormat . Range ("В4").Value = А .Range ("В5").NumberFormat .Range("В5").Value = і .Range ("В7").NumberFormat •Range("В7").Value = і

"0.00%"

"0.00%"

'Ввод формулы расчета

. Range ("В8").FormulaLocal = "=ПЗ(В7;В2;-В4)" .Range("Вб").Value = . Range ("В8").Value

'Выполнение команды Подбор параметра /

.Range ("В8").GoalSeek Goal:=р, ChangingCell: =.Range ("В7")

/

'Присвоение найденного значения маргинальной процентной ставки

'переменной iMarg /

iMarg = .Range ("В7").Value End With 'Переформатирование найденных значений

'и вывод их в диалоговом окне /

TextBoxS.Text = CStr(Format(pPure, "Fixed"))

TextBox6.Text = CStr(Format(iMarg * 100, "Fixed")) /

End Sub

Private Sub CommandButton2_Click()

/

'Процедура закрытия диалогового окна /

UserForm2.Hide

End Sub

'Процедура вызова диалогового окна.

'Поля

"'Чистый текущий объем ссуды"

'"Маргинальная процентная ставка"

'доступны для вывода информации, но не для ее ввода /

TextBox5.Enabled = False

TextBox6.Enabled = False /

'Клавише назначена функция кнопки Вычислить

'Кнопке Вычислить назначен текст всплывающей подсказки $

With CommandButtonl .Default = True

.ControlTipText = "Расчет и составление отчета на рабочем листе"

End With /

'Клавише назначена функция кнопки Отмена

'Кнопке Отмена назначен текст всплывающей подсказки /

With CommandButton2 .Cancel = True

.ControlTipText = "Кнопка отмены"

End With /

UserForml. Show /

End Sub

Ключевые понятия

Инструкция Событие

Метод Тип данных

Объект Форма

Оператор Элементы управления

Свойство VBA

Вопросы для самоконтроля

1. Какие типы операций существуют в VBА?

2. Для чего нужно описание переменных?

3. Какие объекты существуют в Excel?

4. Как устанавливаются свойства объектов?

5. Какая процедура активизирует форму?

6. Какими свойствами обладает пользовательская форма?

Задания для самостоятельной работы

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

2. Разработайте приложение с диалоговым окном для решения квадратного уравнения. В приложении предусмотрите ввод коэффициентов уравнения, вывод корней уравнения или сообщение об отсутствии корней.

Список РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Новиков ФЯценко A. Microsoft® Office XP в целом. — СПб.: БХВ - Петербург, 2002. - С. 661-729.

2. Информатика: Учебник / Под ред. Н.В. Макаровой. — M.: Финансы и статистика, 2000. — С. 688—720.

3. Король В.И. Visual Basic for Application 6.0: Справочник с примерами. — M.: Кудиц-Образ, 2000. — С. 10—18.

<< | >>
Источник: В.М. Maтюшка. Информатика для экономистов: Учебник / Под общ. ред. В.М. Maтюшка. - M.: ИНФРА-М,2007. - 880 с.. 2007

Еще по теме ПОЛЬЗОВАТЕЛЬСКАЯ ФОРМА USERFORM:

  1. Содержание, порядок составления и значение бухгалтерских отчетов «Отчет об изменениях капитала» (форма № 3) и «Приложение к бухгалтерскому балансу» (форма №5). Взаимоувязка их данных с данными бухгалтерского баланса (форма № 1).
  2. Учет нераспределенной прибыли (непокрытого убытка) отчетного года и прошлых лет. Порядок их отражения в бухгалтерском балансе (форма №1) и отчете об изменении капитала (форма №3).
  3. Учет резервного и добавочного капитала. Взаимоувязка информации о них в бухгалтерском балансе (форма № 1) и отчете об изменениях капитала (форма № 3).
  4. АККРЕДИТИВНАЯ ФОРМА РАСЧЕТОВ
  5. Форма выпуска ценных бумаг
  6. 4.7. Автоматизированная форма бухгалтерского учета
  7. Form W-8 (Форма W-8)
  8. Современная форма баланса
  9. ОРГАНИЗАЦИОННО-ПРАВОВАЯ ФОРМА
  10. Аккредитивная форма расчетов.
  11. 3.5, Форма журнал-Главная
  12. Форма удостоверения прав по ценным бумагам
  13. Чековая форма расчетов
  14. Форма №3. Отчет об изменениях капитала.
  15. Наличная форма выпуска ценных бумаг
  16. Документарная форма эмиссионных ценных бумаг
  17. Ценные бумаги эмиссионные, документарная форма
- Информатика для экономистов - Антимонопольное право - Бухгалтерский учет и контроль - Бюджетна система України - Бюджетная система России - ВЭД РФ - Господарче право України - Государственное регулирование экономики в России - Державне регулювання економіки в Україні - ЗЕД України - Инновации - Институциональная экономика - История экономических учений - Коммерческая деятельность предприятия - Контроль и ревизия в России - Контроль і ревізія в Україні - Кризисная экономика - Лизинг - Логистика - Математические методы в экономике - Микроэкономика - Мировая экономика - Муніципальне та державне управління в Україні - Налоговое право - Организация производства - Основы экономики - Политическая экономия - Региональная и национальная экономика - Страховое дело - Теория управления экономическими системами - Управление инновациями - Философия экономики - Ценообразование - Экономика и управление народным хозяйством - Экономика отрасли - Экономика предприятия - Экономика природопользования - Экономика труда - Экономическая безопасность - Экономическая география - Экономическая демография - Экономическая статистика - Экономическая теория и история - Экономический анализ -