Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_vba.doc
Скачиваний:
3
Добавлен:
29.04.2019
Размер:
217.6 Кб
Скачать

1. Запис макросів

MS Excel може створити макрос, записуючи дії користувача по вибору команд меню, натискання клавіш і т.д., необхідні для виконання тієї чи іншої задачі.

Процес запису макросу складається із трьох кроків.

1 крок. Спочатку активізують режим запису макросу і присвоюють йому ім`я.

2 крок. Виконують дії, які повинен виконувати макрос.

3 крок. Це припинення запису макросу.

Нехай потрібно створити простий макрос, який вставляє в робочий лист назву та адресу фірми. Для цього поступають так.

  1. Закривають усі книги. Перевіряють чи ознака «Переход к другой ячейке после ввода» в команді СервисПараметрыПравка знято.

  2. Виконують команду СервисМакроНачать запись. MS Excel виведе на екран вікно діалогу «Запись макроса» (рис.1)

  3. Призначити ім`я макросу, наприклад Реквізити. Призначають макросу комбінацію клавіш у полі «Сочетание клавиш».

  4. Щоб зберегти макрос в поточній книзі вставляють в полі «Сохранить в» значення «Эта книга». Макрос зберігається в книзі макросів, стає доступним одразу після запуску MS Excel, в той час, як перед використанням макросу, збереженого в довільній іншій книзі, необхідно відкрити цю книгу.

  5. Можна ввести короткий коментар у полі «Описание». Щоб розпочати запис натискають ОК. MS Excel виведе в рядку стану повідомлення «Запись» і на екрані появиться панель інструментів «Остановка записи» з кнопкою «Остановить запись» та «Относительная ссылка».

  6. Вводять в потрібну комірку текст. Можна його відформатувати, в наступній комірці – адресу.

  7. Натискають кнопку «Остановить запись» на панелі інструментів або виконують команду СервисМакро Остановить запись.

  8. Щоб перевірити роботу макроса натискають Ctrl+Shift+буква (та, що була введена у першому вікні). MS Excel Повторить вказану послідовність дій.

Щоб запустити макрос, можна використати вікно діалогу «Макрос». Для цього виконують наступне.

  1. Виконують команду СервисМакросМакросы.

  2. Вибирають ім`я макросу і натискають кнопку Выполнить.

2.Середовище Visual Basic

При записі макроса MS Word чи MS Excel вставляє в поточний документ / поточну книгу так званий модуль. При введенні в активному документі / аркуші послідовності дій макроса всі дії MS Excel записує і вставляє в модуль відповідні інструкції Visual Basic. Щоб побачити модуль виконують команду СервисМакросМакросы і у вікні «Макросы» натискають кнопку Изменить. Завантажується незалежна від MS Word чи MS Excel програма – редактор Visual Basic. І появляється модуль, що містить вибраний макрос. Це вікно не схоже на робочий аркуш MS Excel. Це вікно текстового процесора, яке містить меню, команди, які дозволяють редагувати, відлагоджувати і завантажувати програми VB. В модулі можна вводити, копіювати, вставляти, переміщати та знищувати інструкції VB і коментарі. Можна переходити із редактора в MS Word чи MS Excel і в зворотньому напрямку.

Перший та останній рядки є початковою та кінцевою точками макроса, тобто починається він інструкцією Sub Ім`я макроса (), а закінчується End Sub. Спеціальні терміни VB відображаються синім кольором (т.. ключові слова).

VB – це об`єкто-зорієнтована мова. Всі елементи MS Excel розглядаються в ній, як об`єкти, а не абстрактна множина структур даних чи пікселів на екрані. Кожен об`єкт є контейнером для всіх об`єктів, що знаходяться в середині нього. Найбільший об`єкт – це сама програма MS Excel, що містить усі інші об`єкти.

Об`єкти VB мають методи, тобто набір дій, які вони «вміють» виконувати. Подібно до об`єктів реального світу об`єкти VB мають властивості . Властивість – це якість або характеристика об`єкта, напрклад, його колір. Властивості об`єкта задаються інструкцією, яка включає в себе ім`я властивості, знак (=), потрібне значення (Колір=червоний).

Можна переглядати типи об`єктів, що є в MS Excel, їх методи і властивості. Для цього виконують команду СервисМакросРедакторVB. Потім в меню Вид (View) видирають команду Просмотр объектов ( Object Browser).

Список в лівій частині цього вікна містить класи об`єктів, що є в MS Word чи MS Excel. Клас – це шаблон або опис типу об`єкта. У VB класи належать проекту або бібліотеці. Якщо вибрати пункт Excel в списку, що розкрисвається Project/Library (Проекты/Библиотеки), то в списку Classes (Классы) будуть виведені класи об`єктів, що належать MS Excel.

Можна мати декілька екземплярів того чи іншого об`єкта VB. Всі разом ці екземпляри утворюють сімейство (collection). Конкретний екземпляр в сімействі об`єктів ідентифікується за допомогою імені або індекса. Наприклад, сімейство усіх аркушів - Sheets (), конкретний аркуш - Sheets (3) або Sheets («Назва»).

У VB кожний елемент сімейства має власний індекс, але інтервал значень індексів не обов`язково неперервний і тому при знищенні одного екземпляра можуть залишитися такими ж.

Для роботи із сімейством VB пропонує конструкцію For Each … Next, яка застосовує ряд інструкцій до кожного елемента сімейства без врахування їх індексів. Наприклад, щоб присвоїти ім`я аркуша у комірці А1 кожного аркуша, можна так:

Sub EnterSheetNum()

N=0

For Each Sheet In Sheets()

n=n+1

Sheets.Activate

Range (“A1”).Select

ActiveCell.FormulaR1C1=”Аркуш”+ Str(n)

Next

End Sub

Інструкція Range (“Адреса комірки”).Select виділяє комірку (-и) вказазної(-их) адрес.

Можна також встановити властивість об`єкта, який міститься в іншому об`єкті, задавши «під-об`єкт» у вигляді послідовності вкладених об`єктів. Наприклад, для прискорення виконання створенного макроса можна встановити властивість FormulaR1C1 комврки А1 кожного аркуша без його попередньої активізації

Sheets.Activate

Range (“A1”).Select

ActiveCell.FormulaR1C1=”Аркуш”+ Str(n)

Sheets.Range(“A1”).FormulaR1C1=” Аркуш”+ Str(n)

У VB багато методів мають аргументи, які дозволяють задати параметри виконуваних дій. Порядок вказання параметрів, виконання методів приведені у довідковій системі MS VB. Підкреслення в кінці рядка вказує VB, що наступний рядок є продовженням тієї ж інструкції. Використання цього символу спрощує читання списку заданих аргументів і дозволяє добавити коментарі до конкретних аргументів.

Щоб добавити інструкції в існуючий макрос, можна записати дії у тимчасовий макрос і потім скопіювати інструкції з нього в макрос, що буде змінюватись.

Наприклад, щоб добавити в макрос запису назви фірми та її реквізитів та відформатувати цю назву, виконують такі дії.

  1. Переходять на аркуш, де раніше було введено адресу та назву фірми, виділити комірку, де введено назва.

  2. Виконану команду СервисМаросНачать запись. Відкривається вікно «Запись макроса». Вводять ім`я макросу (нове) в полі «Имя макроса» і натискають ОК. MS Word чи MS Excel виведе на екран панель інструментів «Остановка записи».

  3. Виконують команду ФорматЯчейки. Вибирають у вікні форматування потрібний шрифт, накреслення, висоту. Натискають кнопку ОК.

  4. Натискають кнопку «Остановить запись» на панелі інструментів.

  5. Виконують команду Сервис МакросРедактор VB. Вікно проекту міститиме список об`єктів, які належать активній книзі, аркуші, об`єкт, який представляє книгу в цілому, і один модуль.

  6. Двічі натискають ліву клавішу мишки на рядку Module1. Появиться вікно, що містить записані макроси.

  7. Знаходять тільки що створений макрос, виділяють всі рядки конструкції With … End With, виконують копіювання (ПравкаКопировать).

  8. Переходять у перший створений макрос, вставляють текст перед Range (“A7”).Select.

  9. Перевірити роботу макроса (Ctrl+Shift+буква), модуль якого матиме такий вигляд.

Sub Реквізити ()

Range (“A6”).Select

ActiveCell.FormulaR1C1= “Назва відомої фірми”

With Selection.Font

.Name=”Arial”

.FontStyle=”полуж.курсив”

.Size=14

.Strikethrough=False

.Superscript=False

.Shadow=False

.Underline=x1UnderlineStyleNone

.ColorIndex=x1 Automatic

End With

Range (“A7”).Select

ActiveCell.FormulaR1C1= “Адреса 1”

Range (“A8”).Select

ActiveCell.FormulaR1C1= “продовження адреси”

End Sub

Зауваження 1. У певному макросі, який створюється у MS Excel адреса комірок вказується у вигляді абсолютних посилань. У VB виділення комірок записується у вигляді абсолютних посилань, поки не натиснута кнопка «Относительная ссылка» на панелі інструментів «Остановка записи». Після її натиснення запис макросу буде здійснюватися у відносних посиланнях.

Зауваження 2. Якщо потрібно створити макрос введення реквізитів фірми в активну комірку на момент запису макросу, використовують відносні посилання замість абсолютних.

  1. Переходять в потрібний робочий аркуш, очищають діапазон комірок (команда Правка Очистить все). Виділяють одну комірку, наприклад, А6.

  2. Виконують команду СервисМакросНачать запись. Вказують ім`я макросу, гарячі клавіші виклику макросу, опис, натискають ОК.

  3. На панелі інструментів «Остановка записи» натискають кнопку «Относительная ссылка».

  4. Здійснюють форматування комірки. (14, Times New Roman, Ж, К).

  5. Вводять потрібний текст, натискають <>, вводять адресу і <  >

  6. Зупиняють запис макроса кнопкою «Остановить запись». Текст макроса буде таким.

Sub Макрореквізити()

` Макрос

` Введення адреси

`Комбінація клавішCtrl+a

ActiveCell.FormulaR1C1=”Назва фірми”

With Selection.Font

.Name= “Times New Roman”

.FontStyle=”полуж.курсив”

.Size=14

.Strikethrough=False

.Superscript=False

.Shadow=False

.Underline=x1UnderlineStyleNone

.ColorIndex=x1 Automatic

End With

ActiveCell.Offset(1,0)=Range(“A1”).Select

ActiveCell.FormulaR1C1=”Адреса”

ActiveCell.Offset(1,0)=Range(“A1”).Select

ActiveCell.FormulaR1C1=”Адреса2”

End Sub

Зауваження 3. У VB можна розділити великий макрос на декілька невеликих або із декількох малих створити один великий. Макрос, який використовується другим макросом, називається процедурою. При використанні макроса в іншому викликають процедуру, вказуючи її ім`я. Наприклад, можна розділити створений макрос на два: один – форматування тексту, другий – безпосередньо введення тексту.

Для цього командами копіювання та вставки розділяють текст макросу, оформляючи їх так.

Sub Рреквізити()

ActiveCell.FormulaR1C1=”Назва фірми”

CampanyFont

ActiveCell.Offset(1,0)=Range(“A1”).Select

ActiveCell.FormulaR1C1=”Адреса”

ActiveCell.Offset(1,0)=Range(“A1”).Select

ActiveCell.FormulaR1C1=”Адреса2”

End Sub

Sub CamponyFont()

With Selection.Font

.Name= “Times New Roman”

.FontStyle=”полуж.курсив”

.Size=14

.Strikethrough=False

.Superscript=False

.Shadow=False

.Underline=x1UnderlineStyleNone

.ColorIndex=x1 Automatic

End With

End Sub

Якщо потрібно, щоб макрос був доступним завжди,його зберігають в особистій книзі макросів. Ця книга закрита, щоб вивести її на екран виконують команду ОкноОтобразить і вибирають книгу Personal.xls. Якщо в особистій книзі нічого не збкрігалось, то книги Personal.xls не буде. Щоб зберегти макрос, виконують команду Сохранить в Личная книга макроса у вікні діалога «Запись макроса».

Особиста книга спочатку містить тільки один модуль, в неї можна добавити інші модулі чи навіть робочі аркуші.

Щоб перенести існуючий макрос в особисту книгу макросів, виконують такі дії.

  1. В редакторі VB виконують команду ВидОкно проекта, відкриваючи модуль, що містить потрібний макрос.

  2. Виділяють макрос і виконують команду ПравкаВырезать.

  3. За допомогою выкна проекта выдкривають особисту книгу макросів Personal.xls, відкривають у ній модуль.

  4. Вставляють макрос командою ПравкаВставить.

  5. Заховують особисту книгу командою ОкноСкрыть. При закритті MS Excel підтвердити збереження.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]