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

4.3. Элементы управления MultiPage, ScrollBar, SpinButton Коллекция Controls

      Для доступа к набору элементов управления диалогового окна можно использовать коллекцию Controls, включающую все элементы управления окна. Каждый элемент управления имеет в этой коллекции индекс, значение которого может быть числом или строкой. Для первого элемента управления индекс равен 0. Числовые индексы определяются порядком размещения элементов в коллекции. Строковое значение индекса соответствует имени (Name) элемента.        Пример 24. Создать форму, имеющую пять элементов: метка, текстовое поле, список, две кнопки. Ввести в текстовое поле и список по умолчанию текст «поле 1», «список 1» (свойство text соответственно у каждого элемента). Первая кнопка «Нажми» выполняет следующее действие: вызывается диалоговое окно, в котором запрашивается разрешение на удаление очередного элемента формы (их пять). Ответ «да» или «нет» выполняет соответствующее действие. Кнопка «Закрыть» закрывает диалоговое окно.        Примечание.Используя коллекцию Controls, программно в цикле организовать скрытие (не удаление!) элементов управления диалогового окна MyForm (свойство Name формы).        Технология выполнения       1. Запустите приложение Word, сохраните новый документ.       2. Создайте форму в режиме конструктора (рис. 42).  

       Рис. 42.Форма примера 24         3. Обработайте кнопки Нажмии Закрыть.        Кнопка Нажми

      Private Sub CommandButton1_Click()       For Each Ctrl In myForm.Controls 'цикл по всем элементам управления       msgCode = vbYesNo + vbQuestion       'Вопрос об очередном элементе управления:       Answer = MsgBox(prompt:="Cкрыть элемент " & Ctrl.Name,       Buttons:=msgCode, Title:="Bonpoc")       If Answer = vbYes Then 'ответ «Да»       Ctrl.Visible = False 'скрыть очередной элемент       End If       Next Ctrl       End Sub

       Кнопка Закрыть

      Private Sub CommandButton2_Click()       Unload Me       End Sub

      4. Откомпилируйте приложение.       5. Запустите на выполнение (рис. 43, 44, 45).        Примечание.Скрытие ненужных элементов в форме можно произвести и другим способом (например, если в форме слишком много элементов, то до нужного добираться по циклу нерационально). Для этого используют свойство Click элементов управления.  

       Рис. 43.Первоначальный запуск формы и вызов процедуры кнопки Нажми

       Рис. 44.Выполнение скрытия элемента label1 и следующий запрос  

       Рис. 45.Вид формы перед удалением последнего элемента управления         В этом случае необходимо только щелкнуть по нужному элементу и прописать код, для каждого элемента свой:

      Private Sub Label1_Click()       msgCode = vbYesNo + vbQuestion       Answer = MsgBox(prompt:="Cкрыть элемент",       Buttons:=msgCode, Title:="Вопрос")       If Answer = vbYes Then       Label1.Visible = False       Else       Label1.Visible = True       End If       End Sub

      В результате работа формы будет более рациональной (рис. 46).  

       Рис. 46.Работа формы по щелчку скрываемого элемента