Private Sub SpinButton1_Change()




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

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

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

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

АНКЕТА № 22

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

Имя: Семен

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

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

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

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

Пол: Мужской

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

Интересы:

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

14.05.2009

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

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

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

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

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

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

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

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

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

 

Порядок действий – ЧАСТЬ1:

 

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").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 "Сохранено удачно"

 

Далее обнуляем все инструменты формы:

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

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

CheckBox1.Value = False

CheckBox2.Value = False

CheckBox3.Value = False

CheckBox4.Value = False

ToggleButton1.Value = False

ComboBox1.ListIndex = -1

ComboBox2.ListIndex = -1

End Sub

И далее добавляем код отображения значения SpinButton1 в текстовом поле (TextBox4.Text):

 

Private Sub SpinButton1_Change()

TextBox4.Text = SpinButton1.Value

End Sub

И далее считаем количество записей (строк с информацией) в таблице базы:

Dim kolich As Integer

kolich = 0

For Each cel In Worksheets("Лист1").Range("a2:a500")

If (cel.Value <> "") Then kolich = kolich + 1

Next

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

 

 

Порядок действий – ЧАСТЬ 2:

 

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

 

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

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

 

Далее открыть редактор MS WORD. Начать запись макроса (Сервис->Макрос->Начать запись…)

 

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

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

 

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

 

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

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

 

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

Например:

Было: Selection.TypeParagraph

Сделать. Selection.TypeParagraph

 

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

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

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

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

.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

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: