Файл: regeda_v_v_regeda_o_n_osnovy_programmirovaniya_na_vba.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.12.2019

Просмотров: 3191

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

    
          
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 
 
 

 

 

 

 

 

 

 

 

 

 

Изм

 

Лист

 

 

докум

Подп

.  

Дата

 

 

Разраб

.  

 

 

Литера

 

Лист

 

Листов

 

Пров

.  

 

 

 

 

 

 

 

 

 

 

 

Н

контр

.  

 

 

Утв

.  

   

 
 

 

Рис

. 9.1

 

7    10         23            15      10 

   

15            17            18 

120

ccOsn 

ccRazd 

ccList 

ccListov 

ccGrupa 

Body 


background image

ccGrupa

 – 

указывает

 

место

куда

 

вводится

 

номер

 

группы

Body

 – 

указывает

 

место

куда

 

по

 

завершению

 

макроса

 

будет

 

поме

-

щена

 

точка

 

вставки

Именно

 

здесь

 

должен

 

вводится

 

текст

 

отчета

Установить

 

на

 

месте

 

всех

 

закладок

 

выравнивание

 

по

 

центру

размер

 

шрифта

 

на

 

месте

 

закладки

 

ccOsn

 – 20, 

а

 

для

 

всех

 

остальных

 

закладок

 – 10. 

На

 

этом

 

разработка

 

шаблона

 

завершена

.  

Для

 

сохранения

 

разработанного

 

шаблона

 

выберите

 

из

 

меню

 

Файл

 

команду

 

Сохранить

 

как

В

 

поле

 

Имя

 

файла

 

введите

 

имя

 

шаблона

ФИО

_

Лист

1

 

а

 

в

 

раскрывающемся

 

списке

 

Тип

 

файла

 

установите

 

Шаблон

 

документа

Щелкните

 

на

 

кнопке

 

ОК

чтобы

 

завершить

 

команду

В

 

резуль

-

тате

 

шаблон

 

будет

 

сохранен

 

в

 

файле

 

с

 

именем

 

ФИО

_

Лист

1.dot.

 

7.2.

 

Разработка

 

пользовательского

 

интерфейса

 

Для

 

ввода

 

текста

 

в

 

штамп

 

удобно

 

воспользоваться

 

специальной

 

пользовательской

 

формой

Среда

 

проектирования

 VBA 

предлагает

 

вам

 

очень

 

удобный

 

способ

 

разработки

 

собственных

 

диалоговых

 

окон

которые

 

позволяют

 

ввести

 

текст

 

в

 

документ

 

сразу

 

в

 

необходимом

 

формате

Это

 

да

-

ет

 

возможность

 

пользователю

 

не

 

заботиться

 

о

 

правильном

 

положении

 

тек

-

ста

 

в

 

документе

 

или

использовать

 

переменные

 

документа

 

для

 

сохранения

 

текста

Используя

 

различные

 

списки

переключатели

кнопки

 

и

 

другие

 

управляющие

 

элементы

 

пользовательских

 

форм

можно

 

оказывать

 

некото

-

рую

 

информационную

 

помощь

 

пользователю

Можно

 

написать

 

свою

 

программу

 

так

что

 

прежде

 

чем

 

допустить

 

пользователя

 

к

 

следующему

 

этапу

 

работы

будет

 

проверяться

например

правильность

 

введенных

 

данных

 

и

 

использованных

 

параметров

Благодаря

 

наличию

 

хорошо

 

разработанных

 

пользовательских

 

форм

ввод

 

данных

 

бу

-

дет

 

происходить

 

гораздо

 

быстрее

Однако

 

прежде

 

чем

 

приступать

 

к

 

разработке

 

форм

необходимо

 

про

-

думать

 

саму

 

форму

например

рассмотреть

 

все

 

виды

 

информации

которые

 

вам

 

нужно

 

получить

 

от

 

пользователя

Также

 

необходимо

 

определить

ка

-

кие

 

элементы

 

управления

 

процессом

 

создания

 

документа

 

можно

 

предоста

-

вить

 

пользователю

.  

Разработать

 

пользовательскую

 

форму

 

MemoForm1

 (

Рис

. 9.2) 

для

 

за

-

полнения

 

штампа

задав

 

следующие

 

значения

 

свойству

 

Name

 

для

 

тексто

-

вых

 

полей

txtOsn

txtListov

txtGrupa

а

 

для

 

комбинированного

 

поля

 

– txtRazd


background image

 

Рис

. 9.2 

7.3.

 

Написание

 VBA-

программы

 

После

 

разработки

 

шаблона

 

и

 

формы

 

приступают

 

к

 

написанию

 VBA-

программы

Необходимо

 

создать

 

несколько

 

процедур

 VBA, 

которые

 

ото

-

бражают

 

и

 

проверяют

 

форму

– 

Макрос

 

для

 

отображения

 

формы

В

 

нашем

 

шаблоне

 

это

 

будет

 

про

-

цедура

которая

 

запускается

 

при

 

создании

 

нового

 

документа

.  

– 

Процедура

 

отмены

 

формы

Это

 

обычная

 

процедура

 

для

 

одной

 

из

 

командных

 

кнопок

 

формы

.  

– 

Процедуры

которые

 

будут

 

обрабатывать

 

события

происходящие

 

при

 

работе

 

с

 

формой

Эти

 

процедуры

 

состоят

 

из

 

команд

 

инициализации

 

формы

введения

 

и

 

проверки

 

данных

обработки

 

щелчков

 

и

 

т

.

д

Каждый

 

проект

 

содержит

 

модуль

 

документа

 

с

 

именем

 

ThisDocu-

ment

для

 

открытия

 

которого

 

необходимо

дважды

 

щелкнуть

 

на

 

его

 

знач

-

ке

Для

 

каждого

 

документа

 

обязательно

 

задаются

 

три

 

процедуры

Document_New

 

выполняется

 

каждый

 

раз

 

при

 

создании

 

нового

 

до

-

кумента

 

с

 

заданным

 

шаблоном

Document_0pen

 

выполняется

 

каждый

 

раз

когда

 

открывается

 

до

-

кумент

 

с

 

заданным

 

шаблоном

Document_Close

 

выполняется

 

перед

 

тем

как

 

документ

 

с

 

задан

-

ным

 

шаблоном

 

будет

 

закрыт

Создайте

 

процедуру

 

в

 

модуле

 

документа

 

ThisDocument

которая

 

будет

 

выполняться

 

при

 

создании

 

нового

 

документа

 

на

 

основе

 

шаблона

 

Лист

1.dot.

 

Private Sub Document_New() 

'

Отображение

 

формы

 

на

 

экране

 

MemoForm1.Show 

'

Выбор

 

закладки

 ccOsn  

ActiveDocument.Bookmarks("ccOsn").Select 

'

Перенос

 

данных

 

из

 

соответствующего

 

окна

  

'

пользовательской

 

формы

 

в

 

документ

 


background image

Selection.TypeText Text:=MemoForm1.txtOsn.Text 

ActiveDocument.Bookmarks("ccGrupa").Select 
Selection.TypeText Text:=MemoForm1.txtGrupa.Text 

ActiveDocument.Bookmarks("ccRazd").Select 
Selection.TypeText Text:=MemoForm1.CboRazd.Text 

ActiveDocument.Bookmarks("ccListov").Select 
Selection.TypeText Text:=MemoForm1.txtListov.Text 

'

Выбор

 

закладки

 ccList 

и

 

вставка

 

поля

 PAGE 

ActiveDocument.Bookmarks("ccList").Select 
Selection.Fields.Add  Range:=Selection.Range, Type:= _ 

wdFieldEmpty, Text:= "PAGE \* Arabic ", 

PreserveFormatting:=True 

'

Переход

 

на

 

закладку

  

для

 

начала

 

ввода

 

информации

 

ActiveDocument.Bookmarks("Body").Select 

End Sub 

Для

 

ячейки

 

таблицы

  «

Лист

» 

удобно

 

использовать

 

поле

 MS Word 

Page

которое

 

вставляет

 

номер

 

текущей

 

страницы

Для

 

переключения

 

ме

-

жду

 

отображением

 

результата

 

кодов

 

полей

 

и

 

отображением

 

самих

 

кодов

 

нажмите

 

комбинацию

 

Alt+F9

чтобы

 

включить

 

отображение

 

кодов

 

полей

 

нажмите

 

Alt+F9

 

еще

 

раз

Все

 

время

пока

 

форма

 

находится

 

на

 

экране

должна

 

работать

 

опре

-

деленная

 VBA-

процедура

чтобы

 

выполнять

 

действия

 

по

 

обработке

 

проис

-

ходящих

 

в

 

форме

 

событий

Процедуры

обрабатывающие

 

данные

 

события

генерируются

 

в

 VBA 

автоматически

 

во

 

время

 

создания

 

формы

 

и

 

ее

 

управ

-

ляющих

 

элементов

И

 

тогда

 

все

что

 

вам

 

остается

 

сделать

, – 

это

 

написать

 

код

 

для

 

всех

 

действий

которые

 

вы

 

хотите

 

связать

 

с

 

определенными

 

собы

-

тиями

Процедура

 

Activate

 

выполняется

 

каждый

 

раз

 

при

 

загрузке

 

формы

Этой

 

процедурой

 

обычно

 

пользуются

 

для

 

выполнения

 

любых

 

предвари

-

тельных

 

действий

которые

 

должны

 

произойти

 

перед

 

тем

как

 

допустить

 

пользователя

 

к

 

работе

 

с

 

формой

Метод

 

AddItem

 

поля

 

со

 

списком

 

вызы

-

вается

 

три

 

раза

 

для

 

описания

 

данных

 

из

 

раскрывающегося

 

списка

  «

Вид

 

схемы

». 

Свойство

 

Text

 

для

 

текстовых

 

полей

 

устанавливает

 

начальное

пустое

 

значение

Private Sub UserForm_Activate() 

Me.CboRazd.Clear 
Me.CboRazd.AddItem "

Схема

 

структурная

", 0 


background image

Me.CboRazd.AddItem "

Схема

 

электрическая

 

функциональная

",1 

Me.CboRazd.AddItem "

Схема

 

электрическая

 

принципиальная

",2 

Me.txtOsn.Text = "" 
Me.txtListov.Text = "" 
Me.txtGrupa.Text = "" 

End Sub 

Написать

 

в

 

модуле

 

формы

 

следующий

 

программный

 

код

который

 

выполняется

 

при

 

нажатии

 

на

 

клавишу

 

Выход

расположенную

 

в

 

форме

Private Sub cmdExit_Click() 
Dim cmdExit As Integer 
cmdExit = True 
If Len(Me.txtOsn.Text)=0  Then cmdExit = False 
If Len(Me.CboRazd.Text)=0 Then cmdExit = False 
If Len(Me.txtListov.Text)=0 Then cmdExit = False 
If Len(Me.txtGrupa.Text)=0  Then cmdExit = False 

If cmdExit = True Then 

Me.Hide 

Else 

MsgBox "

Введите

 

информацию

 

во

 

все

 

поля

 

формы

",_ 

48, "

Ошибка

 

ввода

 

данных

End If 

End Sub 

Процедура

 

начинается

 

с

 

объявления

 

целочисленной

 

переменной

 

cmdExit

 

с

 

начальным

 

значением

 

True

Далее

 

функция

 

Len

 

проверяет

 

длину

 

введенных

 

строк

 

в

 

полях

 

формы

Если

 

хотя

 

бы

 

одно

 

из

 

полей

 

будет

 

пустым

то

 

на

 

экран

 

выводится

 

сообщение

предупреждающее

 

пользовате

-

ля

что

 

необходимо

 

заполнить

 

форму

 

до

 

конца

.  

На

 

этом

 

процесс

 

создания

 

шаблона

 

завершен

Сохраните

 

изменен

-

ный

 

шаблон

 

Лист

1.dot

Выйдите

 

из

 MS Word. 

Загрузив

 

снова

 MS Word, 

создайте

 

новый

 

документ

 

на

 

основе

 

своего

 

шаблона

 

Лист

1.dot

 

и

 

про

-

верьте

 

его

 

работу

.  

Лист

1.dot

 

а

 

в

 

раскрывающемся

 

списке

 

Тип

 

файла

 

установите

 

Шаблон

 

документа

Щелкните

 

на

 

кнопке

 

ОК

чтобы

 

завершить

 

команду