Теоретична довідка до Практичної роботи 23 на тему VBA, Запис макросів у середовищі MS Word та MS Excel
« НазадТеоретична довідка до Практичної роботи №23 Мова програмування VBA
VBA — це мова програмування, вбудована в багатьох окремих програмах та прикладних пакетах — від додатків Microsoft Office (включаючи Microsoft Project та Microsoft Visio) і до таких потужних пакетів, як AutoCAD, CorelDraw та Adobe Creative Suite, не говорячи вже про численні спеціалізовані додатки, призначені для управління виробничими процесами, обліку фінансовими ресурсами чи інформаційної підтримки клієнтів. VBA містить інтегроване середовище, що містить набір вікон для спрощення проектування, відладки та тестування програм. Інтегроване середовище називається редактор Visual Basic. Цей редактор встановлений у додатках за замовчуванням, але у Office 2010 його потрібно включити у стрічку. Всі додатки Office 2010 використовують стрічку. Однією із вкладинок на стрічці є вкладинка Разработчик, на якій можна викликати редактор Visual Basic та інші інструменти розробника. Оскільки в Office 2010 вкладинка Разработчик не показана за замовчуванням, то необхідно вивести її на екран, виконавши наступну процедуру. На вкладниці Файл вибрати Параметры і відкрити діалогове вікно Параметры. Клацнути Настройка ленты в лівій частині діалогового вікна. У розділі Выбрать команды из, розміщеному зліва у вікні, вибрати Популярные команды. У розділі Настройка ленты, який знаходиться з права у діалоговому вікні, вибрати Основные вкладки у списку, що розкривається, а потім встановити прапорець Разработчик та натиснути кнопку ОК. Після включення у стрічку вкладинки Разработчик можна легко знайти кнопки Visual Basic та Макросы. При розв’язуванні багатьох задач часто виконують одну і ту ж послідовність операцій. Але в Microsoft Office 2010 замість багаторазового повторення однієї і тієї ж послідовності дій можна написати макрос (Macro), який буде автоматично виконувати потрібну послідовність дій багаторазово. Для багатьох VBA-додатків— серед яких Microsoft Word, Excel, Assess, PowerPoint і т.д. — макроси можна створювати як за допомогою мови Visual Basic for Application, так і за допомогою спеціальних функцій Microsoft Office 2010, що використовуються для інтерактивного запису макросів (найпростіший спосіб за допомогою засобу MacroRecorder). Щоб записати макрос за допомогою спеціального засобу MacroRecorder, наприклад у середовищі Microsoft Excel 2010, треба на стрічці вибрати вкладинку Вид (клацнути на ній лівою кнопкою мишки). Потім у групі Макросы клацнути на кнопці Макросы і вибрати команду Запись макроса — як показано на рис.1. У результаті цих дій на екрані розкриється діалогове вікно Запись макроса (рис.2). Діалогове вікно Запись макроса в різних додатках Microsoft Office 2010 — Word, Excel чи PowerPoint — має різний вид, але правила запису нового макросу для всіх додатків одинакові, а саме: ■ ім’я макроса починається з букви, але всередині може містити цифри та символ підкреслення; ■ ім’я макроса не може містити пропуски чи спеціальні символи; ■ максимальна довжина імені макроса 80 символів. Наприклад, Підсумок_по_рядках, ПідсумокПоРядках. В залежності від додатку, в якому створюють макрос (редактор Visual Basic, Word, Excel), діалогове вікно Запись макроса може містити різні поля та опції — наприклад, поле опису макроса, поле для визначення місця зберігання тексту макроса, призначену макросу комбинацію клавіш для його виклику і т.д. Як видно з рис. 2, у діалоговому вікні Запись макроса у додатку Excel 2010 є поле Сочетание клавиш, у якому можна вказати бажану комбінацію клавіш, яка буде використовуватися для швидкого запуску даного макроса (комбінація клавіш <Ctrl+клавіша>). У додатку Word у діалоговому вікні Запись макроса (рис.3), на відміну від Excel, у групі Назначить макрос є ще дві додаткові кнопки: кнопке і клавишам. Ці кнопки дозволяють або присвоїти функцію виклику макроса новій кнопці на панелі інструментів, або призначити для нього деяку комбінацію клавіш швидкого виклику. Після клацання на будь-якій з цих кнопок розкриється ще одне діалогове вікно, у якому необхідно буде виконати відповідні призначення. У всіх додатках Microsoft Office у діалоговому вікні Запись макроса є і деякі спільні елементи: ■ Поле Имя макроса — тут вказують ім’я нового макроса. За замовчуванням VBA вказує в це поле значення Макрос1. ■ Поле Описание — тут записують текст-коментар про призначення данного макроса. За замовчуванням VBA заповнює це поле інформацією про те, де і ким був створений даний макрос (дата запису макроса та ім’я користувача). ■ Список Макрос доступен для — містить перелік тих документів, в яких даний макрос може бути збереженим; слід вибрати зі списку документ, у якому буде збережено новий макрос. У Word 2010 макроси можуть зберігатися тільки у файлах документа формату.docm або у файлах шаблонів документів формату .dotm. Кріме того, макрос можна зберігати у документі або шаблоні формату Word 97-2003 (.doc або .dot). У Excel 2010 макроси можна зберігати у робочій книзі формату .xlsm або .xlsb, у шаблоні формату .xltm, а також у документах формату Excel 97-2003 (.xls). Для початку запису треба клацнути на кнопці ОК у діалоговому вікні Запись макроса. Після цього у вікні додатку з’явиться покажчик мишки з невеличким зображенням магнітофонної касети. Починаючи з цього моменту, всі дії будуть записані і вміщені до макросу. По закінченню виконання потрібних дій перейти на стрічці на вкладнику Вид, розкрити у групі Макроси меню та вибрати у ньому команду Остановить запись. Тепер запис макроса буде зупинено а всю послідовність команд буде збережено у вигляді VBА-програми, записаної як макрос з вказаним іменем в даному документі. ( При необхідності процес запису макроса можна призупинити, вибравши у групі Макроси вказівку Пауза). Приклад 1. Запис макросу, який впише шість назв місяців у верхній рядок робочого аркуша, починаючи з клітинки В1, використовуючи засіб MacroRecorder: 1) Вибрати чистий аркуш з виділеною за замовчуванням клітинкою А1. 2) Вибрати на стрічці додатку вкладинку Вид і у групі Макроси вибрати вказівку Запись макроса. 3) У діалоговому вікні Запись макроса ввести ім’я, що буде присвоєно новому макросу, — Півріччя1. У полі Сочетание клавиш ввести символ ф, тоді в подальшому натиснення комбінації клавіш <Ctrl+ф> буде викликати запуск даного макросу. 4) У полі Сохранить в вибрати значення Эта книга для збереження створеного макроса у активній книзі. 5) Після заповнення всіх полів у діалоговому вікні Запись макроса клацнути на кнопці ОК. Це початок процесу запису. 6) Клацнути на клітинці В1 та ввести в шість сусідніх клітинок назви місяців, як показано на рис.4.: 7) Тепер відформатувати введені значення. Виділити клітинки B1:G1, перейти на стрічці на вкладнику Главная і у групі Шрифт клацнути на кнопках і . Потім клацнути на клітинці В2 і зупинити запис макросу, для цього відкрити на стрічці вкладинку Вид і вибрати у групі Макроси команду Остановить запись. 8) Зберегти книгу під іменем Книга1.xlsm. 9) Виконати створений макрос. Приклад 2. Створення макросу, що здійснює зміну кольору фону документа MS Word відповідно до введених значень кольорів: 1) Запустити Microsoft Word; 2) Створити новий пустий документ; 3) клацнути вкладинку Разработчик на стрічці; 4) натиснути кнопку Mакросы і вибрати в полі Макросы из Normal.dotm (общего шаблона); 5) ввести ім’я ChangeColor і натиснути кнопку Создать. В редакторі Visual Basic з’явиться наступний фрагмент коду: Sub ChangeColor()' ' ChangeColor Макрос'' End Sub 6) Змінити код, щоб він мав такий вид: Sub ChangeColor()' ' ChangeColor Макрос' Dim intRed As Integer Dim intGreen As Integer Dim intBlue As Integer intRed = InputBox("Значення червоного? (0-255)") intGreen = InputBox("Значення зеленого? (0-255)") intBlue = InputBox("Значення синього? (0-255)") ActiveWindow.View = wdWebView With ActiveDocument.Background.Fill .Visible = msoTrue .ForeColor.RGB = RGB(intRed, intGreen, intBlue) End With MsgBox "Колір фону документа тепер RGB(" & intRed & ", " & intGreen & ", " & intBlue & ")." End Sub 7) В меню View (Вид) вибрати команду Microsoft Word; 8) Ввести в документі деякий текст, щоб бачити різницю між кольором фону і текстом; 9) Виконати макрос ChangeColor; 10) У діалоговому вікні тричі ввести ціле число в діапазоні від 0 до 255 (для значень червоного, зеленого і синього), кожного разу натискуючи кнопку ОК. Колір фону документа змінюється відповідно комбінації значень «червоний-зелений-синій» (RGB), введених на попередньому кроці. Приклад 3. Зміна кольору тексту документа Microsoft Word відповідно до введених значень кольорів. 1) клацнути вкладинку Разработчик на стрічці; 2) натиснути кнопку Mакроси, виділити ім’я ChangeColor і натиснути кнопку Изменить. В редакторі Visual Basic з’явиться фрагмент коду з попереднього Прикладу: 3) Змінити код, щоб він набув такого виду: Sub ChangeColor()' ' ChangeColor Макрос' Dim intRed As Integer Dim intGreen As Integer Dim intBlue As Integer intRed = InputBox("Значення червоного? (0-255)") intGreen = InputBox("Значення зеленого? (0-255)") intBlue = InputBox("Значення синього? (0-255)") ActiveWindow.View = wdWebView With ActiveDocument .Select .Range.Font.Color = RGB(intRed, intGreen, intBlue) End With MsgBox "Колір тексту документа тепер RGB(" & intRed & ", " & intGreen & ", " & intBlue & ")." End Sub 4) Виконати макрос ChangeColor; 5) У діалоговому вікні тричі ввести ціле число в діапазоні від 0 до 255 (для значень червоного, зеленого і синього), кожного разу натискуючи кнопку ОК. Колір тексту документа змінюється відповідно комбінації значень «червоний-зелений-синій» (RGB), введених на попередньому кроці. Код макросів та його редагуванняМакрос, збережений у вигляді VBA-програми називається вихідним кодом, який можна використовувати для створення власної програми, змінюючи оператори та додаючи нові. Відредагувати чи переглянути текст записаного макроса можна за допомогою команди Макросы в меню кнопки Макросы групи Макросы на вкладинці Вид додатку або команди меню редактора VBA Tools→Macros (Сервис→Макросы). В результаті на екран буде виведено діалогове вікно Макрос, показане на рис. 5. Вибрати зі списку ім’я макросу і клацнути на кнопці Изменить. На екрані відкриється вікно редактора VBA з програмним кодом вибраного макросу. У цьому вікні можна дописувати, видаляти, копіювати, змінювати, вирізати чи вставляти будь-які оператори мовою VBA, використовуючи команди меню Edit редактора VBA. Для зберігання програмного коду відредагованого макросу вибрати команду меню File→Save Имя_Документа (Файл^Сохранить в...) редактора VBA або клацнути на кнопці Save Имя_Документа (Сохранить в...) на панелі інструментів Edit (рис. 6). Для виконання макросу у будь-якому додатку Microsoft Office 2010 (Word, Excel чи PowerPoint) його необхідно спочатку вибрати зі списку і натиснути кнопку Выполнить (Run), або використати визначену комбінацію клавіш чи кнопку панелі швидкого доступу. Проблеми безпекиДля захисту користувачів Office 2010 від вірусів та шкідливих макросів неможна зберігати код макросів у стандартному документі Office 2010 із стандартним розширенням файлу. Його слід зберігати у файлі з особливим розширенням. Наприклад, неможна зберігати макроси у стандартному документі Word 2010 с розширенням DOCX; замість нього використовується спеціальний документ Word 2010 з використанням макросів з розширенням DOCM. При відкритті DOCM-файлу система безпеки Office 2010 може заборонити запуск макросів у документі, повідомляючи або не повідомляючи про це користувача в залежності від параметрів і налаштувань центру управління безпекою в даному додатку Office 2010. За замовчуванням макроси відключені, але користувач сповіщається про це і може включити їх. Можна вказати спеціальні папки, в яких будуть виконуватися макроси, створюючи надійні розміщення, надійні документи або надійних видавців. Найдинамічніший спосіб — використовувати надійних видавців, які працюють з документами з цифровими підписами, розповсюдженими користувачами. Для одержання додаткових відомостей про параметри безпеки в даному додатку Office 2010 у діалоговому вікні Параметри клацнути Центр управления безопасностью та вибрати Настройки центра управления безопасностью. З повагою ІЦ “KURSOVIKS”! |