Створення макроса за допомогою макрорекордера

Автор работы: Пользователь скрыл имя, 01 Ноября 2012 в 20:02, реферат

Краткое описание

Мета роботи: освоєння прийомів виготовлення макроса в середовищі додатків до Windows 95, програмування макроса шляхом виконання певного переліку операцій над документом і автоматичного запису цих операцій у вигляді інструкцій мови Visual Basic for Application, запуску та перевірки роботи макроса.
Макрос представляє собою програму, написану мовою Visual Basic for Application. Він призначений для автоматизації рутинної та непродуктивної роботи з документами. Як правило, макроси використовують для розширення можливостей додатків до Windows 95, зокрема MS Word, MS Excel та ін. Зберігається макрос у тому самому файлі, де знаходиться документ, який він обробляє.

Содержимое работы - 1 файл

Створення макроса за допомогою макрорекордера.docx

— 31.60 Кб (Скачать файл)

Теоретична частина

1. Створення макроса за  допомогою макрорекордера

 Мета роботи: освоєння  прийомів виготовлення макроса  в середовищі додатків до Windows 95, програмування макроса шляхом  виконання певного переліку операцій  над документом і автоматичного  запису цих операцій у вигляді  інструкцій мови Visual Basic for Application, запуску  та перевірки роботи макроса.

 Макрос представляє  собою програму, написану мовою  Visual Basic for Application. Він призначений  для автоматизації рутинної та  непродуктивної роботи з документами.  Як правило, макроси використовують  для розширення можливостей додатків  до Windows 95, зокрема MS Word, MS Excel та ін. Зберігається макрос у тому  самому файлі, де знаходиться  документ, який він обробляє.

 Макрос можна виготовити  за допомогою макрорекордера  або редактора Visual Basic. Макрос, виготовлений  за допомогою макрорекордера, має  обмежені можливості, бо може  виконувати лише види робіт,  передбачені додатком. Рекомендується  виготовляти макрос за допомогою  макрорекордера, а потім доповнювати  його засобами Visual Basic за допомогою  редактора макросів.

 Для виготовлення макроса  за допомогою макрорекордера  служить команда головного меню: Сервіс – Макрос – Почати  запис. Під час виконання цієї  команди появляється вікно Запис  макроса, призначене для найменування  макроса. Макрорекордер пропонує  свої варіанти імен – Макрос1, Макрос2 і т. д., можна погодитися  з ним і натиснути клавішу  Ok. Після цього необхідно виконати  всі роботи, які повинен буде  повторити макрос. Для закінчення  запису макроса служить команда  Припинити запис із одноіменного  віконця, розташованого на фоні  документа. Якщо це віконце  випадково виявилося відсутнім,  його можна встановити командою  головного меню: Вигляд – Панелі  інструментів – Припинити запис.

 Всі операції над  документом, виконані під час  запису макроса, виявляться записаними  у вигляді інструкцій Visual Basic. Текст  макроса можна переглянути і  відредагувати за допомогою команди  головного меню: Сервіс – Макрос – Макроси,   яка викликає  вікно Макрос. У цьому вікні  вибираємо команду Змінити, після  чого появляється вікно редактора  макросів Microsoft Visual Basic з текстом  макросів. Запуск готового макроса  забезпечується командою Виконати  з вищезгаданого вікна Макрос.

 

 Приклад.

 Постановка задачі: виготовити  макрос, який додає в кінець  тексту відкритого документа  MS Word слова “До зустрічі”, окрашені  в червоний колір. Описати команди  одержаного макроса.

 Виготовлення макроса:

відкриваємо документ MS Word;

виконаємо команду головного  меню: Сервіс – Макрос – Почати запис;

у вікні Запис макроса  погодимось на пропозицію рекордера  назвати новий макрос Макрос1 (може бути Макрос2, Макрос3 і т.д.), натиснемо  клавішу Ok;

появляється вікно Документ MS Word, у ньому перенесемо курсор на кінець тексту командою Ctr+End;

вносимо текст До зустрічі.;

натискаємо клавішу Home для  переводу курсора на початок рядка;

натискаємо клавіші Shift+End для виокремлення рядка;

на панелі інструментів Малювання  вибираємо колір шрифту – Червоний;

у вікні Припинити запис  натискаємо клавішу Припинити запис, вона має вигляд заштрихованого синім  кольором квадратика.

 Перегляд тексту макроса:

у вікні Документ MS Word виконуємо  команду Сервіс – Макрос – Макроси;

у вікні Макрос вибираємо  ім’я макроса та команду  Змінити.

 Текст макроса у  вікні MS Visual Basic має вигляд:

Sub Макрос1()‘‘

Макрос1 Макрос‘

Макрос записан 30.11.02 DroNgo‘

Selection.EndKey Unit:=wdStory

Selection.TypeText Text:=”До зустрічі.”

Selection.HomeKey Unit:=wdLine

Selection.EndKey Unit:=wdLine, Extend:=wdExtend

Selection.Font.Color = wdColorRed

Selection.TypeParagraph

End Sub

 Опис інструкцій макроса:

Sub Макрос1() – початок  програми, назва макроса;‘

‘ Макрос1 Макрос

‘ Макрос записан  30.11.02 DroNgo

‘ – коментарі програми, які не виконуються, вони служать  для пояснення програми;

Selection.EndKey Unit:=wdStory – перенесення  курсора на кінець тексту відкритого  документа;

Selection.TypeText Text:=”До зустрічі.”  – занесення тексту До зустрічі;

Selection.HomeKey Unit:=wdLine – перенесення  курсора на початок рядка тексту;

Selection.EndKey Unit:=wdLine, Extend:=wdExtend – виокремлення рядка тексту;

Selection.Font.Color = wdColorRed – надання  виокремленому фрагменту червоного  кольору;

Selection.TypeParagraph – переведення  курсора на наступний рядок;

End Sub – кінець програми.

 Виконати макрос можна,  натиснувши кнопку-команду Виконати  у вікні Макрос або у   вікні редактора Microsoft Visual Basic.

2. Редагування макороса  за допомогою редактора Visual Basic

 Мета роботи: освоєння  прийомів редагування макроса  в середовищі додатків до Windows 95, налагодження, запуску та перевірки  роботи макроса.

 Редагування макроса  відбувається в режимі редактора  Visual Basic, який викликається командою  Змінити у вікні Макрос. Під  час редагування можна використовувати  конструкції мови Visual Basic. З них  найбільш вживаними є:

оголошення констант, які  не змінюються в процесі роботи програми

Const ім’я_константи=значення

 Приклад: Const Pi=3.1415926

оголошення простих змінних

Dim ім’я_змінної As тип_  змінної

Основними типами змінних  є:

Integer – ціле число  (наприклад, 238);

Long – велике ціле число;

Single – дійсне число  (наприклад 45.50);

Date – дата (наприклад, 04.08.02);

Boolean – логічний (True або  False);

String – рядок довжиною  до 256 літер;

Variant – будь-який тип  (програма сама визначає тип  залежно від даних);

Object – об’єкт Visual Basic.

 Приклад оголошення  двох змінних: а – цілого  типу і slovo – рядка літер  та присвоєння їм значень у  програмі:

Dim a As Integer, slovo As String

a=632: slovo=”Петренко П.П.”

розгалуження

If умовний_вираз Then інструкція

 або

If умовний_вираз Then інструкція1 Else інструкція2 EndIf’

Приклад: введення числа та його аналіз

Dim oplata As Single, slovo As String

oplata = MsgBox(“Введіть число”, “Вивід результата аналізу”, “100”)

If oplata < 300 then slovo = ”мало” Else slovo = ”небагато”

MsgBox “Введено число: ”  & oplata & “  Висновок: ”  + slovo

цикл 1 (з регулярною зміною параметра)

For ім’я_змінної=початкове_значення To кінцеве_значення Step крок

 тіло циклу

Next ім’я_змінної’

Приклад: видача чисел від 1 до 10

Dim i As Integer

For i=1 To 10

MsgBox “№ виконання циклу:  ” & i

Next i

цикл 2 (ітераційного типу)

While умовний вираз

тіло циклу

Wend’

Приклад: видача чисел від 1 до 10

Dim i As Integer

i=0

While i < 11

i=i+1

MsgBox “№ виконання циклу:  ” & i

Wend

ActiveDocument.Name – назва відкритого  файлу (документа); ’

Приклад:

Dim ss As   String

ss = ActiveDocument.Name

MsgBox “Назва відкритого  документа: ” + ss

TypeName(посилання на об’єкт) – тип об’єкта;’

Приклад:

Dim ss As String

ss = TypeName(ActiveDocument)

MsgBox “Відкритий документ  має тип: ” + ss

ActiveDocument.Characters.Count – кількість  літер відкритого документа;’

Приклад:

Dim k As Long

k = ActiveDocument.Characters.Count

MsgBox “Кількість літер  відкритого документа: ” & k

ActiveDocument.Words.Count – кількість  слів відкритого документа;

ActiveDocument.Paragraphs.Count – кількість  абзаців відкритого документа;

Set ім’я_змінної об’єктного  типу – присвоєння змінній об’єкта (частини тексту, таблиці, малюнка  MS Word, клітинки MS Excel, тощо);

ActiveDocument.Characters(i) – і-та  літера відкритого документа;’

Приклад: вивести 16-ту літеру відкритого документа

Dim s As Range

Set s = ActiveDocument.Characters(16)

MsgBox “16-та літера документа:  ” + s

ActiveDocument.Words(i) – текст  і-го слова відкритого документа;

ActiveDocument.Paragraphs(i).Range – текст  і-го абзацу відкритого документа;

ActiveDocument.Range – увесь текст  відкритого документа;

ActiveDocument.Range(m,n) – частина  тексту відкритого документа,  який знаходиться між літерами  з порядковими номерами m+1 та n (діапазон m+1:n) від початку тексту;

ActiveDocument.Paragraphs(i).Range.Start – кількість літер від початку  документа до початку і-го абзацу;

ActiveDocument.Paragraphs(i).Range.End – кількість літер від початку  документа до кінця і-го абзацу;

ім’я.Select – виокремлення частини тексту, поіменованого командою Set;

Selection.Text – посилання  на виокремлений фрагмент тексту;’

Приклад: виокремити 20-й абзац  тексту і вивести його на екран

Dim s As Range, kusok as String

Set s = ActiveDocument.Paragraphs(20).Range

s.Select

kusok= Selection.Text

MsgBox “Виокремлений текст:  ” + kusok

Лист1.Cells(k, i).Value – значення клітинки (рядок № k, стовпчик № i) листа1 у відкритій таблиці MS Excel.

3. Приклади виконання задач  для курсової роботи

 Приклад 1. Постановка  задачі: виготовити макрос, який  видає на екран порядкові номери  і текст абзаців відкритого  документа MS Word від першого до  останнього. Передбачити можливість  закінчення програми до завершення  кінця документа.

 Текст макроса має  вигляд:

Rem Видача на екран абзаців  тексту відкритого документа

Sub Макрос1()

Dim i As Integer, k As Integer, s As Range

k = ActiveDocument.Paragraphs.Count

i = 1

While i <= k

set s = ActiveDocument.Paragraphs(i).Range

rez = MsgBox(Str(i) + “    “  + s, vbOKCancel, “Читання абзаців відкритого  документа”)

If rez = vbCancel Then GoTo mmm

i = i + 1

Wend

mmm: End Sub

 При виготовленні цього  макроса (заготовки до макроса)  за допомогою макрорекордера  ніякі операції над текстом  не виконувалися. Як тільки появилося  на екрані вікно Зупинити запис,  була натиснена кнопка Зупинити  запис цього вікна, тому використані  лише ім’я та початок і  кінець макроса.

 У програмі оголошені  три змінні, які використовуються  для:

i – нумерації абцаців  під час читання тексту;

k – підрахунку загальної  кількості абзаців у документі;

s – запам’ятовування  тексту чергового абзацу.

 На початку програми  підраховується кількість абзаців  у тексті і це число присвоюється  змінній k (k= ActiveDocument.Paragraphs.Count). Робиться  це для того, щоб програма “знала”  скільки разів їй необхідно  читати абзаци. Далі, змінній і  присвоюється число 1 (i=1), це означає,  що програма повинна буде читати  абзаци, починаючи з 1-го. Основою  програми є цикл типу While, всі  інструкції, що знаходяться між  словами While i Wend, будуть багаторазово  повторюватися. Це такі чотири  інструкції:

s = ActiveDocument.Paragraphs(i) – читання  і присвоєння змінній s тексту  чергового абзацу;

rez = MsgBox(Str(i) + “  “ + s, vbOKCancel, “Читання абзаців відкритого  документ”) – запуск функції  MsgBox, яка видає на екран вікно  MsgBox;

If rez = vbCancel Then GoTo mmm – аналіз  змінної rez та перехід на мітку  mmm:;

i = i + 1 – нарощення змінної  і на одиницю.

 Дана програма має  дві можливості завершення циклу:

за умовою i <= k, тоді програма прочитає і видасть на екран всі  абзаци від першого (i=1) до останнього (і=k);

при натисканні клавіші Cancel у вікні MsgBox. Тоді функція MsgBox видасть  значення – системну константу vbCancel, яка буде присвона змінній rez. Змінну rez аналізує інструкція If rez=vbCancel Then GoTo mmm, яка забезпечує дострокове завершення циклу   шляхом виходу на мітку mmm:, установлену після слова Wend.  Параметр vbOkCancel дозволяє у вікні виводу мати дві кнопки: Ok i Cancel. Якщо в процесі  виконання макроса виявиться  натисненою кнопка Ok, то відбудеться  продовження роботи циклу.

 Приклад 2. Постановка  задачі: виготовити макрос, який  виокремлює частину тексту між  другим і сьомим абзацами.

 Текст макроса має  вигляд:

Sub Макрос4()

Dim s As Range

Set s = ActiveDocument.Range( _

Start:=ActiveDocument.Paragraphs(2).Range.Start, _

End:=ActiveDocument.Paragraphs(7).Range.End)

s.Select

End Sub

 Приклад 3. Постановка  задачі: виготовити макрос для  редагування рядків таблиці MS Excel, показаної на малюнку 1, яка  має стовпчики: Прізвище працівника, Місячний оклад, Дата обліку  і Коефіцієнт участі.

 Текст макроса має  вигляд:

Rem Редагування рядків  таблиці MS Excel

Sub Макрос2()

Dim k As Integer, i As Integer, b As Variant, naz(4) As String

naz(1) = "Прізвище працівника": naz(2) = "Місячний оклад": naz(3) = "Дата  обліку"

naz(4) = "Коефіцієнт участі"

k = InputBox("Введіть № рядка", "Редагування таблиці", “1”)

While k > 0

For i = 1 To 4

b = Лист1.Cells(k, i).Value

b = InputBox("Введіть значення " + naz(i), "Введення значень", b)

Лист1.Cells(k, i).Value = b

Next i

k = InputBox("Введіть № рядка,  для закінчення 0", "Редагування  таблиці", k)

Wend

End Sub

 Масив naz(4), оголошений  у програмі, призначений для зберігання  назв стовпчиків таблиці. Ці  назви будуть відображатися у  вікні InputBox як сервісне обслуговування  процесу вводу даних.

 Основою програми є  два вкладені цикли: зовнішній  типу While і внутрішній типу For. У  зовнішньому циклі відбувається  введення номера рядка таблиці  MS Excel за допомогою функції InputBox і присвоєння його значення змінній k. Також у цьому циклі знаходиться внутрішній цикл. Виконуватиметься зовнішній цикл доти, поки значення k > 0, тобто 1 або більше.

 Параметр внутрішнього  циклу змінна i змінюється від  1 до 4 – за кількістю заданих  стовпчиків. Тут зчитується вміст  чергової клітинки (b = Лист1.Cells(k, i).Value) у змінну b.   Це значення  появляється у вікні InputBox, що  надає можливість його редагувати  та скоротити кількість роботи  тому, хто буде вводити дані. Нове  значення b переноситься в клітинку (Лист1.Cells(k, i).Value = b).

Информация о работе Створення макроса за допомогою макрорекордера