Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection8.docx
Скачиваний:
11
Добавлен:
31.03.2015
Размер:
419.68 Кб
Скачать
  1. Стандартные диалоговые окна

    1. Функция vba InputBox

Функция VBA InputBoxзапрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому при необходимости нужно преобразовывать введённую строку в значение нужного типа. ФункцияInputBoxимеет следующий синтаксис:

InputBox(Prompt [, Title] [, Default] [, xpos] [, ypos] [, Helpfile, Context])

Функция имеет один обязательный параметр Prompt– запрос, отображаемый в окне ввода. Также можно указать заголовок окна (Title), значение по умолчанию, вставляемое в поле ввода (Default), позицию окна на экране (xpos,ypos) и раздел справочной системы (Helpfile,Context). Окно ввода имеет две кнопки –ОКиОтмена. При нажатии кнопкиОтменафункция возвращает пустую строку.

Dim str As String

str = InputBox("Введите строку")

Для ввода значений не строкового, а другого типа необходимо использовать функции преобразования – CBool,CByte,CCur,CDate,CDbl,CInt,CLng,CSng,CStr,CVar.

Dim n As Integer, str As String

On Error Resume Next

n = CInt(InputBox("Введите n:", "Ввод", 5))

If Err.Number <> 0 Then Exit Sub

...

On Error GoTo 0

    1. Метод InputBox объектаApplication

Метод InputBoxобъектаApplicationимеет три преимущества по сравнению с функциейInputBox:

  • возможность задать тип возвращаемого значения;

  • возможность указать диапазон рабочего листа;

  • автоматическая проверка правильности введённых данных.

Метод InputBoxимеет следующий синтаксис:

InputBox(Prompt [, Title] [, Default] [, Left] [, Top] [, Helpfile, Context] [, Type])

Метод InputBoxимеет те же параметры, что и функцияInputBox, и один дополнительный параметрType, который указывает, данные какого типа должен возвращать метод. Этот параметр является необязательным, и в случае его отсутствия метод возвращает строку. Если введённое значение не соответствует требуемому типу, приложениеMicrosoftExcelвыдаёт сообщение об ошибке и позволяет пользователю ввести другое значение.

Код

Тип возвращаемого значения

0

Формула

1

Число

2

Строка

4

Логическое значение

8

Диапазон

16

Ошибка

Range("F2").value=Application.InputBox("Введите число", "Ввод числа",Type:=1)

Range("F3").value=Application.InputBox("Введите строку", "Ввод строки",Type:=2)

Range("F4").value=Application.InputBox("Введите логическое значение", _

"Ввод логического значения", Type:=4)

Range("F1").value=Application.InputBox("Введите формулу", "Ввод формулы",Type:=0)

Sub EraseRange()

Dim userRange As Range

On Error GoTo Canceled

Set userRange = Application.InputBox(Prompt:="Удаляемый диапазон:", _ Title:="Удаление диапазона", _ Default:=Selection.Address, Type:=8)

userRange.Clear

userRange.Select

Canceled:

End Sub

    1. Функция vba MsgBox

Функция VBA MsgBoxпредоставляет пользователю простой способ отображения сообщения. Также она возвращает реакцию пользователя на запрос. ФункцияMsgBoxимеет следующий синтаксис:

MsgBox(Prompt [, Buttons] [, Title] [, Helpfile, Context])

Параметр Buttonsопределяет, какие кнопки и значки будут отображены в окне.

Константа

Значение

Назначение

vbOKOnly

0

Отображается только кнопка ОК (по умолчанию)

vbOKCancle

1

Отображаются кнопки OK и Отмена

vbAbortRetryIgnore

2

Отображаются кнопки Прервать, Повтор и Пропустить

vbYesNoCancel

3

Отображаются кнопки Да, Нет и Отмена

vbYesNo

4

Отображаются кнопки Да и Нет

vbRetryCancel

5

Отображаются кнопки Повтор и Отмена

vbCritical

16

Отображается значок важного сообщения

vbQuestion

32

Отображается значок запроса

vbExclamation

48

Отображается значок предупреждающего сообщения

vbInformation

64

Отображается значок информационного сообщения

vbDefaultButton1

0

По умолчанию выделена первая кнопка

vbDefaultButton2

256

По умолчанию выделена вторая кнопка

vbDefaultButton3

512

По умолчанию выделена третья кнопка

Функция MsgBoxвозвращает число, соответствующее кнопке, нажатой пользователем.

Константа

Значение

Нажатая кнопка

vbOK

1

ОК

vbCancel

2

Отмена

vbAbort

3

Прервать

vbRetry

4

Повтор

vbIgnore

5

Пропустить

vbYes

6

Да

vbNo

7

Нет

MsgBox("Сообщение", vbOKOnly + vbInformation, "Заголовок")

ans = MsgBox("Сообщение", vbOKCancel + vbQuestion, "Заголовок")

...

ans = MsgBox("Сообщение", vbRetryCancel + vbCritical, "Заголовок")

...

ifMsgBox("Сообщение", vbYesNo + vbExclamation +vbDefaultButton2, _ "Заголовок") =vbYesThen

...

Else

...

End If

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]