Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

388

Часть IV. Пользовательские формы

Использование окон ввода данных

Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоста­ вить пользователю возможность ввести текст, числа или даже диапазон значений. Для создания окна ввода предназначены две функции In p u t Box: одна — в VBA, а вторая является методом объекта A p p lic a tio n .

Функция inputBox в VBA

Данная функция имеет следующий синтаксис:

In p u tB o x (з а п р о с [, з а г о л о в о к ] [ , по_ум олчанию ] [ , x p o s ] [ , y p o s ] [, сп р а вка , р а зд е л ])

З а п р о с . Указывает текст, отображаемый в окне ввода (обязательный параметр).

З а г о л о в о к . Определяет заголовок окна ввода (необязательный параметр).

П о _ ум о л ча ни ю . Задает значение, которое отображается в окне ввода по умолча­

нию (необязательный параметр).

x p o s , ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).

С п р а в к а , р а з д е л . Указывают файл и раздел в справочной системе (необязатель­ ные параметры).

Функция In p u t Box запрашивает у пользователя одно значение. Она всегда возвра­ щает строку, поэтому результат нужно будет преобразовать в числовое значение.

Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допуска­ ется изменять в зависимости от ширины используемых символов). Кроме того, можно указать заголовок диалогового окна, значение по умолчанию и координаты окна ввода на экране. Также в данном коде указывается раздел справочной системы со всеми вспомо­ гательными сведениями. Если определить этот раздел, то в диалоговом окне будет ото­ бражена кнопка Справка.

В следующем примере, показанном на рис. 12.1, используется функция VBA Input- Box, которая запрашивает у пользователя полное имя (имя и фамилию). Затем програм­ ма выделяет имя и отображает приветствие в окне сообщения.

Sub

GetName()

As S tr in g

 

Dim

UserName

 

Dim

F irs tS p a c e

As

In te g e r

 

 

Do

U n t il UserName

<>

11"

 

 

 

UserName

=

In p u tB o x ( "Укажите имя и фамилию: ", _

 

 

"П редставьтесь,

пожалуйста")

 

Loop

In S tr(U se rN a m e ,

" ")

 

F irs tS p a c e =

 

I f

F irs tS p a c e

<>

0 Then

F irs tS p a c e - 1)

 

End

UserName

=

L eft(U serN am e ,

 

I f

 

"

& UserName

 

End

MsgBox "Привет

 

Sub

 

 

 

 

 

Обратите внимание: функция InputB ox вызывается в цикле Do Until. Это позво­ ляет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена (Cancel) или не введет текст, то переменная UserName будет содержать пустую

390

Часть IV. Пользовательские формы

В данном случае метод InputBox имеет следующий синтаксис.

In p u tB o x {з а п р о с ,

[, за г о л о в о к] ,

[,

по_умолчанию] , [, с л е в а ],

[, све рху] , [,

сп р а в ка , р а зд е л ]

,

[, тип] )

З а п р о с . Указывает текст, отображаемый в окне ввода (обязательный параметр).

З а г о л о в о к . Определяет заголовок окна ввода (необязательный параметр).

Р о _ ум о л ча н и ю . Задает значение, которое отображается в окне ввода по умолча­

нию (необязательный параметр).

С л е ва , с в е р х у . Определяют координаты верхнего левого угла окна ввода на эк­

ране (необязательные параметры).

С п р а в к а , р а з д е л . Указывают файл и раздел в справочной системе (необязатель­

ные параметры).

Тип. Указывает код типа данных, который будет возвращаться методом (необяза­

тельный параметр). Его возможные значения перечислены в табл. 12.1.

Таблица 12.1. Коды типов данных, возвращаемые методом Excel InputB ox

Код

Значение

0

Формула

1

Число

2

Строка (текст)

4

Логическое значение (истина или ложь)

8

Ссылка на ячейку как объект диапазона

16

Значение(например, #н/д)

64

Массив значений

Метод Excel InputBox достаточно гибок. Используя сумму приведенных выше значе­ ний, можно возвратить несколько типов данных. Например, для отображения окна ввода, которое принимает текстовый или числовой тип данных, установите код равным значению 3 (т.е. 1+2 или число+текст). Если в качестве кода типа данных применить значение 8, то пользователь сможет ввести в поле адрес ячейки или диапазона ячеек. Кроме того, пользо­ ватель имеет возможность указать диапазон на текущем рабочем листе.

В процедуре EraseRange, которая приведена ниже, используется метод InputBox. Таким образом, пользователь может указать удаляемый диапазон (рис. 12.3). Адрес диа­ пазона вводится вручную, мышь необходима для выделения диапазона на листе.

Метод InputBox с кодом 8 возвращает объект Range (обратите внимание на клю­ чевое слово Set). После этого выбранный диапазон очищается (с помощью метода Clear). По умолчанию в поле окна ввода отображается адрес текущей выделенной ячейки. Если в окне ввода щелкнуть на кнопке Отмена (Cancel), то оператор On Error завершит процедуру.

Sub EraseR ange()

 

 

Dim

UserRange

As Range

 

On

E rro r GoTo

C anceled

 

Set

UserRange

= A p p lic a tio n . In p u tB o x _

 

(P rom pt:= "Удаляемый д и а п а зо н :", _

 

T i t l e : ="Удаление диапазона",

_

 

D e fa u lt: = S e le c tio n .A d d re s s ,

_

 

T y p e :=8 )