Ввод и вывод данных

Наступила пора познакомиться тем, каким образом в VBA можно вводить и выводить данные. Рассмотрим различные варианты.

Ряд элементов управления имеют свойство LinkedCell (Ячейка связи). Если в окне свойств для этого свойства проставить адрес какой-нибудь ячейки, то содержимое этой ячейки и значение Value или Text элемента управления будут связаны между собой. Менять это содержимое можно как в элементе управления, так и в ячейке.

Обмен данными с помощью программных кодов происходит в соответствии с правилом: слева от знака "="располагается приемник информации, справа — источник. Приводим примеры

Х1 = Cells(3,8) - в переменную XI дублируется содержимое из ячейки, расположенной в 3 строке и 8 столбце.

Cells(3,8) = Х1 — здесь в ячейку копируется значение переменной. Важно помнить, что старое содержимое ячейки удаляется.

Х1 = TextBoxl.Text — в переменную XI копируется текст из элемента управления Textl.

TextBoxl.Text = Х1 в качестве текста в текстовом окне будет представлено содержимое переменной XI.

Естественно возможны и такие варианты

Cells(3,8) = Labell. Caption

Или

Labell.Caption = Cells(3,8)

Кроме того, в VBA существуют специальные функции ввода — вывода данных InputBox и MsgBox. О порядке работы с ними мы познакомим Вас позже.

В отдельных случаях, когда необходимо собрать разные данные в одном месте, целесообразно воспользоваться элементом управления UserForm (Пользовательская форма).

Упражнение

  • 7
  • 1. Откройте чистую рабочую книгу.
  • 2. Перейдите на Лист 2 и в ячейку ВЗ введите три пятерки — 555, затем в ячейку D3 Листа 3 введите три семерки — 777.
  • 3. Через меню Вид /Панели инструментов/Элементы управления откройте панель элементов управления
  • 4. Перейдите в редактор VBA и раскройте, если его нет, окно проектов. Выделите в этом окне строку VBAproject (Книга 1). Это книга, в которой Вы работаете.
  • 5. В меню выберите команду Insert/UserForm.
  • 6. После этих действий на экране появится окно с панелью серого цвета, покрытой точечной сеткой. Это и есть пользовательская форма.
  • 7. Через меню view/ToolBox вызовите панель элементов управления, связанную с пользовательской формой
  • 8. Щелчком мыши выделите пользовательскую форму
  • 9. Расположите на этой форме элемент управления Кнопка (CommandButton) и два текстовых окна (TextBox)
  • 10. Откройте окно свойств и если элемент Кнопка выделен, то Вы в этом окне увидите свойства этого элемента.
  • 11. Измените у этого элемента свойство Caption, так чтобы на поверхности кнопки было видно слово «Приветствие»
  • 12. Сделайте двойной щелчок по кнопке и откроется окно кодов для пользовательской формы (ее модуль), в которой будут заготовлены строчки для написания процедуры по щелчок по кнопке

Private Sub CommandButton1_Click()

End Sub

13. Теперь будем вписывать код. Сначала объявляем переменную а как строковую

Dim a As String

Не забывайте следить за типом шрифта. Код пишется латинскими буквами

14. Следующие команды копируют содержимое ячеек из Листа 2 и Листа 3. в текстовые окна

TextBoxl.Text = Worksheets(2).Cells(3, 2)

TextBox2.Text = Worksheets(3).Cells(3, 4)

15. Затем вызовем функцию InputBox. Эта функция предлагает пользователю ввести данные (фразы, слова), которые мы запомним в строковой переменной а. Код должен быть таким

а = InputBoxf'KaK Вас зовут", "Знакомство")

"Как Вас зовут" — это сообщение для пользователя

"Знакомство" — это заголовок окна

Пользователь введет свое имя, и оно сохранится в строковой переменной а

16. Теперь вызываем функцию Msg В ох, которая просто выводит сообщения, но в сообщение вставим слово «Привет» и имя пользователя

х = МздВохС'Привет" & а)

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

Worksheets(2).Cells(3, 2) = а

Worksheets(3).Cells(3, 4) = а

18. Общий вид кода

Private Sub CommandButton1_Click() Dim a As String

TextBoxl.Text = Worksheets(2).Cells(3, 2)

TextBox2.Text = Worksheets(3).Cells(3, 4) a = InputBoxf'KaK Вас зовут", "Знакомство") x = МздВох("Привет " & а) Worksheets(2).Cells(3, 2) = а Worksheets(3).Cells(3, 4) = а End Sub

  • 19. Следующая задача вывести форму вместе с кнопкой на рабочий лист. (Лист1). Для этого в окне проекта выделяем двойным щелчком строку Лист1 (Лист1), и раскрывается окно кодов для этого листа.
  • 20. В верхней строке слева из списка выбираем слово Worksheet (скорее всего, оно там и будет), а справа слово Activate. Тогда редактор предложит написать процедуру под событие «Лист1 стал активным». Вы увидите в окне строки

Private Sub Worksheet_Activate() End Sub

21. В этой процедуре сделаем так, чтобы пользовательская форма стала видна когда мы откроем Лист1. Полный вид процедуры

Private Sub Worksheet_Activate() UserForml.Show

End Sub

  • 22. Программа составлена. Теперь перейдите в рабочую книгу (Лист1), потом откройте лист2 и затем опять откройте (сделайте активным) лист 1. Должна появиться форма. Щелкните по кнопке и выполните «требования программы». Когда Вы «познакомитесь», проверьте — в ячейках на 2 и 3 листах вместо цифр должен быть текст, введенный при знакомстве.
  • 23. Действий, описанных в пункте 22 можно избежать, если «заказать» процедуру открытия формы под событие Workbo-ok_Open(). Для этого в окне проекта выделяем строчку «Эта книга», в верхней строке окна для кодов выбираем Workbook, а справа выбираем событие Open и создаем процедуру следующего содержания

Private Sub Workbook _Open

UserForml.Show

End Sub

Форма откроется сразу же при открытии книги.

Данное упражнение иллюстрируется файлами «Ввод-Вывод.хк» и «Ввод-Выводl.xls».

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >