Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Порядок выполнения итогового задания по VBA

Студент получает образец документа с выделенными цветом полями, которые будут обрабатываться в программе. Каждому цвету соответствует определенный элемент UserForm, который необходимо использовать в программе.

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

Последовательность выполнения работы рассматривается на примере документа – Анкета :

АНКЕТА № 22

Фамилия: Соболев

Имя: Семен

Отчество: Петрович

Место рождения: Санкт-Петербург

Год рожденя: 1975

Образование: высшее

Пол: Мужской

Семейное положение: Не в браке

Интересы:

Книги Кино Спорт

14.05.2009

Пояснение к цветовым заливкам в задании:

TextBox - поле для ввода

CheckBox – поле для выбора нескольких позиций

OptionButton - поле для выбора одного из 2-х состояний

ToggleButton - поле для установки одного из 2-х состояний

ComboBox - поле для выбора из списка

SpinButton – поле для установки показания счетчика

Дата из макроса - поле для ввода

Считает из Базы Excel - поле для ввода

Порядок действий:

1.  В новой книге Excel на листе (например №1) в 1-й строке по столбцам ввести названия полей(столбцов), отмеченных в задании цветной заливкой (либо слева от заливки, либо по смыслу контекста), кроме «даты из макроса» и «счет из базы».

У нас:

Фамилия

Имя

Отчество

Год

рождения

Место

рождения

Образование

Пол

Интересы

Семейное

положение

2. На листе (например №2) в столбцах (например A, B) внести списки для элементов ComboBox из задания. У нас:

НЕ нашли? Не то? Что вы ищете?

A

B

Города

Образование

Москва

начальное

Санкт-Петербург

среднее

высшее

3.  В редакторе VB создать UserForm с элементами, которые имеются в задании. У нас:


На форме рядом со счетчиком SpinButton установить текстовое поле TextBox, в котором будут отображаться значения счетчика при прокрутке.
Поля OptionButton и CheckBox окружить рамкой Frame (каждое своей).

4.  Настроить свойства счетчика SpinButton. Для этого в таблице его свойств установить минимальное (у нас Min=1900) и максимальное (у нас Max=2000) значения, а также шаг (у нас SmallChange =1). Свойство Value установить равным числу (у нас – 1980), которое будет выводится по умолчанию в рядом стоящий TextBox (у нас – 1980 установлено в свойства TextBox4 – Text и Value.

5.  Настроить свойства раскрывающегося списка, указав откуда берутся данные. Для этого в таблице его свойств установить в против поля RowSource адрес листа и ячеек (у нас один - =Лист2!A2:A4, другой - =Лист2!B2:B4).

6.  Щелкнуть по кнопке CommandButton (у нас - Сохранить/Печать) и в открывшемся окне начать запись программы.

7.  Объявить строковые переменные. У нас -

Private Sub CommandButton1_Click()

Dim pol, brak, interes As String

8.  Записать код, обрабатывающий элемент выбора из 2-х вариантов – OptionButton. (У нас – выбор пола М/Ж). Названия полей записываются в свойство – caption (у нас – мужской и женский):

If (OptionButton1.Value = True) Then pol = OptionButton1.Caption

If (OptionButton2.Value = True) Then pol = OptionButton2.Caption

Наличие точки в первоначальном состоянии при выводе формы на экран определяется
установкой свойства OptionButton – Value в значение True или False.

Оба поля OptionButton обрамляются рамкой Frame с названием, записываемым в свойство caption (у нас – Выберите пол).

9. Записать код, обрабатывающий элемент установки одного из 2-х состояний – ToggleButton (У нас – выбор семейного положения):

If (ToggleButton1.Value = True) Then

brak = "Не в браке"

Else

brak = "В браке"

End If

10.Записать код, обрабатывающий элемент установки нескольких условий – CheckBox (У нас это – выбор интересов):

interes = ""

If (CheckBox1.Value = True) Then interes = interes & CheckBox1.Caption & " "

If (CheckBox2.Value = True) Then interes = interes & CheckBox2.Caption & " "

If (CheckBox3.Value = True) Then interes = interes & CheckBox3.Caption & " "

If (CheckBox4.Value = True) Then interes = interes & CheckBox4.Caption & " "

Названия полей записываются в свойство – caption (у нас – книги, кино, музыка, спорт).

Отсутствие флажка в поле CheckBox в первоначальном состоянии при выводе формы на экран определяется установкой свойства Value в значение False.

Все поля CheckBox1-4 окружить рамкой Frame с названием, записываемым в свойство caption (у нас – интересы).

11. Выбрать вторую строку Листа1(в первой идут названия столбцов), куда будут записываться каждый раз новые данные, вводимые в форму, записав строку кода:
Worksheets("Лист1").Activate

ActiveSheet. Rows("2:2").Select

И осуществить сдвиг предыдущих записей на одну строку вниз, записав код:
Selection. Insert Shift:=xLDown

После чего пишем код, который заносит все данные из полей формы в соответствующие ячейки Листа1 (там, где создается основная таблица базы):

Worksheets("Лист1").Range("a2").Value = TextBox1.Text

Worksheets("Лист1").Range("b2").Value = TextBox2.Text

Worksheets("Лист1").Range("c2").Value = TextBox3.Text

Worksheets("Лист1").Range("d2").Value = TextBox4.Text

Worksheets("Лист1").Range("e2").Value = ComboBox1.Text

Worksheets("Лист1").Range("f2").Value = ComboBox2.Text

Worksheets("Лист1").Range("g2").Value = pol

Worksheets("Лист1").Range("h2").Value = interes

Worksheets("Лист1").Range("i2").Value = brak

В конце добавляем сообщение, что данные сохранены и заканчиваем процедуру командной кнопки:

MsgBox "Сохранено удачно"

End Sub

И далее добавляем код обработки счетчика – запись данных из счетчика в рядом стоящее текстовое поле (Обработка счетчика – это комментарий, поясняющий код):

Private Sub SpinButton1_Change()

'Обработка счетчика

TextBox4.Text = SpinButton1.Value

End Sub

12. Подсчет количества записей в таблице

count = 0

For Each cell In Columns("a").Cells

If cell. Value <> "" Then

count = count + 1

End If

Next

Количество будет храниться в переменной count

13. Запуск из программы редактора MS WORD и создание документа с введенными данными.

14. Предварительное действие:

1) В конце программы ввести следующий код

Dim oWord As Word. Application

Dim oDoc As Word. Document

Set oWord = CreateObject("Word. Application")

Set oDoc = oWord. Documents. Add()

oWord. Visible = True

oDoc. Activate

With oWord

Код предназначен для открытия MS WORD

2) Добавить в VBA поддержку работы с MS WORD

Зайти в меню Tools – Reference

И выбрать Microsoft Word 11.0 Object Library

15. Откройте редактор MS WORD. Начните запись макроса (Сервис->Макрос->Начать запись…)

16. Аккуратно без ошибок напечатайте ваш документ, если у вас есть поле с текущей даты, то вставьте его следующим образом: Вставка ->Дата и время…

17. Остановите запись макроса

18. Зайти в Сервис->Макрос->Макросы выбрать только что созданный макрос и нажать кнопку Изменить

19. Скопировать код программы (между Sub …()” и End Sub”) и перенести его в конец создаваемой программы

20. После скопированного фрагмента напишите команду End With

21. В скопированном фрагменте перед каждым употреблением Selection поставить точку ( . )

Например:

Было: Selection. TypeParagraph

Сделать .Selection. TypeParagraph

22. Необходимо подставить переменные с информацией из UserForm в документ. (Все необходимые переменные уже использовались в пункте 11)

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

Необходимо вывести фамилию заполнившего бланк

Находим в программе слово имя:

.Selection. TypeText Text:="Имя: "

.Selection. Font. Bold = wdToggle

.Selection. Font. Italic = wdToggle

.Selection. TypeText Text:="Семен"

.Selection. TypeParagraph

Там же видим команду выводящее само имя Семен

.Selection. TypeText Text:="Семен"

вместо этого имени пишем нашу переменную хранящую имя (TextBox2.Text )

.Selection. TypeText Text:= TextBox2.Text