Найти в Дзене
VBA for EXCEL

Запись №3. Первое знакомство с формами VBA.

Продолжим поверхностное знакомство с инструментами и возможностями встроенного в MS Excel языка программирования VBA. Ранее мы уже узнали, что совсем не страшно написать программу, которая вызывает определенные действия, мы создали первую свою личную формулу, которую можно использовать в своей работе. Эти первые шаги в изучении VBA как шаги ребенка, впервые встающего на ноги, они кажутся нелепыми, но именно так и начинается познание окружающего мира. Сегодня наша задача, немного узнать о пользовательской форме VBA. Пользовательская форма - это поле определенного размера на котором мы можем размещать элементы управления. Вот пример одной из самых известных форм - калькулятор: Пользовательская форма (UserForm) на изображении состоит из табло калькулятора и кнопок управления. Табло калькулятора - это элемент управления называемый TextBox, а кнопки управления калькулятором являются очень важными элементами в VBA и называются они CommandButton. С помощью кода мы настраиваем поведение элеме

Продолжим поверхностное знакомство с инструментами и возможностями встроенного в MS Excel языка программирования VBA. Ранее мы уже узнали, что совсем не страшно написать программу, которая вызывает определенные действия, мы создали первую свою личную формулу, которую можно использовать в своей работе. Эти первые шаги в изучении VBA как шаги ребенка, впервые встающего на ноги, они кажутся нелепыми, но именно так и начинается познание окружающего мира.

Сегодня наша задача, немного узнать о пользовательской форме VBA. Пользовательская форма - это поле определенного размера на котором мы можем размещать элементы управления. Вот пример одной из самых известных форм - калькулятор:

Пользовательская форма (UserForm) на изображении состоит из табло калькулятора и кнопок управления. Табло калькулятора - это элемент управления называемый TextBox, а кнопки управления калькулятором являются очень важными элементами в VBA и называются они CommandButton. С помощью кода мы настраиваем поведение элементов формы. Например, при нажатии на кнопку "5", нам в коде программы необходимо указать следующее задание для VBA: "К тексту на табло справа приписать цифру 5" (TextBox1.Text=TextBox1.Text & "5"). При нажатии кнопки "С" на калькуляторе, мы задаем с помощью кода следующее задание: "Необходимо удалить текст на табло калькулятора" ( TextBox1.Text= "").

Теперь давайте попробуем своими руками создать очень простую пользовательскую форму, которая будет записывать данные текстовых полей из формы на лист MS Excel. И вновь все выполняем строго по инструкции. Наша задача почувствовать, что такое пользовательская форма и как она работает, поэтому детальное описание опускаем для следующих встреч.

1. Для чистоты эксперимента надо полностью закрыть MS Excel и открыть его создав новую книгу.

2. Сочетанием клавиш "ALT+F11" запускаем редактор VBA.

-2

3. Создаем пользовательскую форму. Для этого на стандартной панели меню выбираем последовательно "Insert>UserForm".

-3

В случае, если у Вас не отображается панель элементов управления "Toolbox", то для отображения Toolbox необходимо на стандартной панели меню выбрать последовательно "View>Toolbox".

-4

4. Нажимая на элементы панели Toolbox и указывая мышью место элемента на форме добавим на пользовательскую форму 2 элемента TextBox и 2 элемента CommandButton. При этом с помощью мыши можно растягивать размеры нашей формы и размеры самих элементов TextBox и CommandButton.

-5

5. Теперь надо задать действие для кнопки CommandButton1. Действие будет заключаться в записи данных текстовых полей (TextBox) в ячейки A1 и A2 на листе MS Excel. Для этого сделаем двойной клик мышью по этой кнопке. И в открывшемся модуле пропишем следующий код.

Private Sub CommandButton1_Click()

Cells(1, 1).Value = TextBox1.Text

Cells(1, 2).Value = TextBox2.Text

End Sub

-6

6. Вернемся обратно к нашей форме. Для этого на стандартной панели меню выбираем последовательно "View>Object".

-7

7. Пропишем действие для кнопки CommandButton2. Действием будет являться закрытия нашей пользовательской формы. Для этого сделаем двойной клик мышью по этой кнопке. И в открывшемся модуле пропишем следующий код.

Private Sub CommandButton2_Click()

Unload Me

End Sub

-8

8. Возвращаемся на нашу пользовательскую форму. Для этого выполняем пункт 6.

9. Запускаем в работу нашу форму. Для этого на стандартной панели меню выбираем последовательно "Run>Run Sub/UserForm".

-9

10. Перед нами должна загрузиться в рабочий режим наша пользовательская форма. Записываем в текстовые поля любой текст и по нажатию кнопки CommandButton1 мы должны увидеть, что данные текстовых полей отражаются в ячейках A1 и A2. Для закрытия формы нажимаем кнопку CommandButton2.

-10

Я очень надеюсь, что у Вас все получилось с первого раза. Не бойтесь экспериментов. Теперь за три прошедшие встречи мы своими руками почувствовали, что такое программный код, как он работает, что такое персональная формула, а также провели небольшой эксперимент с пользовательской формой и увидели, что она очень просто взаимодействует с листами MS Excel.

Для меня очень важно знать о Ваших успехах в этих небольших экспериментах. Пишите комментарии, критика очень приветствуется. И не забывайте подписываться. Больших Вам успехов, до новых встреч.