ТОП 10:

Теоретична довідка до ПР №23



Код макросів та його редагування

Макрос, збережений у вигляді VBA-програми називається вихідним кодом, який можна використовувати для створення власної програми, змінюючи оператори та додаючи нові.

Відредагувати чи переглянути текст записаного макроса можна за допомогою команди Макросы в меню кнопки Макросы групи Макросы на вкладинці Вид додатку або команди меню редактора VBA Tools→Macros (Сервис→Макросы). В результаті на екран буде виведено діалогове вікно Макрос, показане на рис. 6.

Вибрати зі списку ім’я макросу і клацнути на кнопці Изменить. На екрані відкриється вікно редактора VBA з програмним кодом вибраного макросу. У цьому вікні можна дописувати, видаляти, копіювати, змінювати, вирізати чи вставляти будь-які оператори мовою VBA, використовуючи команди меню Edit редактора VBA. Для зберігання програмного коду відредагованого макросу вибрати команду меню File→Save Имя_Документа (Файл^Сохранить в...) редактора VBA або клацнути на кнопці Save Имя_Документа (Сохранить в...) на панелі інструментів Edit (рис. 7).

 

Рис.6. Діалогове вікно Макрос в Microsoft Word 2010

 

Рис. 7. Кнопка Save панелі інструментів Edit редактора VBA

 

Для виконання макросу у будь-якому додатку Microsoft Office 2010 (Word, Excel чи PowerPoint) його необхідно спочатку вибрати зі списку і натиснути кнопку Выполнить (Run), або використати визначену комбінацію клавіш чи кнопку панелі швидкого доступу.

Проблеми безпеки

Для захисту користувачів Office 2010 від вірусів та шкідливих макросів неможна зберігати код макросів у стандартному документі Office 2010 із стандартним розширенням файлу. Його слід зберігати у файлі з особливим розширенням. Наприклад, неможна зберігати макроси у стандартному документі Word 2010 с розширенням DOCX; замість нього використовується спеціальний документ Word 2010 з використанням макросів з розширенням DOCM.

При відкритті DOCM-файлу система безпеки Office 2010 може заборонити запуск макросів у документі, повідомляючи або не повідомляючи про це користувача в залежності від параметрів і налаштувань центру управління безпекою в даному додатку Office 2010. За замовчуванням макроси відключені, але користувач сповіщається про це і може включити їх.

Можна вказати спеціальні папки, в яких будуть виконуватися макроси, створюючи надійні розміщення, надійні документи або надійних видавців. Найдинамічніший спосіб — використовувати надійних видавців, які працюють з документами з цифровими підписами, розповсюдженими користувачами. Для одержання додаткових відомостей про параметри безпеки в даному додатку Office 2010 у діалоговому вікні Параметри клацнути Центр управления безопасностью та вибрати Настройки центра управления безопасностью.

Теоретична довідка до ПР №24

Середовище VBA

Редактор Visual Basic, вбудований у більшість програм Microsoft Office, це середовище для створення, редагування макросів Office та управління ними, створення користувацьких вікон та для розв’язування інших задач, пов’язаних з опрацюванням програм написаних мовою VBA.

Вихідний код макросу зберігається у спеціальній частині файлу даних, яка називається модулем. Файл документа відповідного типу будь-якого з VBA-додатків може містити один або декілька модулів чи не містити їх взагалі. Модулям, збереженим у документах Word, за замовчуванням присвоюється загальна назва Project (проект), а в документах Excel — VBAProject.

Щоб переглянути збережені модулі необхідно запустити редактор VBA. Для цього на стрічці вибрати вкладинку Разработчик і у групі Код клацнути на кнопці Visual Basic або натиснути комбінацію клавіш <Alt+Fll>. Загальний вигляд вікна редактора VBA подано на рис.8:

 

Рис. 8. Загальний вигляд вікна редактора VBA при першому запуску у програмі Word 2010

 

Вікно має стандартну структуру: рядок меню, панелі інструментів, робоча область та рядок стану.

Меню File (Файл) містить команди, необхідні для збереження змін у проекті VBA та виведення на екран чи на друк вихідного коду макросів.

Меню Edit (Правка) містить команди, призначені для управління вихідним кодом макроса у вікні Code, а також об’єктами у формах.

Меню View (Вид) містить команди для відображення на екрані різних вікон редактора VBA.

Команди меню Insert (Вставка) дозволяють додавати у проект різні об’єкти — процедури, модулі, форми, класи та ін.

Меню Format (Формат) містить команди для створення користувацьких діалогових вікон. Команди цього меню дозволяють вирівнювати об’єкти у формі, змінювати розміри та зовнішній вигляд елементів управління, а також виконувати багато інших операцій.

Меню Debug (Отладка) містить команди, призначені для тестування та відладки макросів. Команди даного меню дозволяють запускати макрос із заданої точки, відслідковувати виконання макроса по крокам і зупиняти макрос у будь-який момент його виконання.

Меню Run (Запуск) містить команди, призначені для запуску макроса на виконання, переривання чи відновлення його роботи, а також для повернення макроса у початковий стан.

Меню Tools (Сервис) містит , команди для вибору макроса або для одержання доступу до зовнішніх бібліотек макросів. За допомогою інших команд цього меню можна одержати доступ до діалогового вікна Option (Параметри) редактора VBA та вікна властивостей проекта VBA.

Меню Add-lns містить всього одну команду — Add-In Manager, яка виводить на екран діалогове вікно Add-In Manager, у якому можна завантажувати, вивантажувати, реєструвати та визначати поведінку програм-доповнень (надбудов).

Меню Window (Окно) містять команди ідентичні командам будь-яких інших додатків Windows.

Меню Help (Справка) команду для доступу до довідкової системи редактора VBA, їй прзначена стандартна клавіша <F1>.

Закінчити роботу у редакторі VBA або вийти з нього можна, вибравши команду меню File→Close and Return to <додаток> або натиснувши комбінацію клавіш <Alt+Q>.

Вікно редактора VBA містить чотири готові панелі інструментів.

Standard (Стандартная). Ця панель виводиться на екран при першому запуску редактора VBA. Панель інструментів Standard містить 19 кнопок, які виконують різні функції: збереження результатів роботи, додавання нових форм і модулів, редагування та виконання програм.

Edit (Правка). Кнопки цієї панелі інструментів дозволяють редагувати текст у вікні Code (вікні програмного коду). Вони дублюють команди меню Edit.

Debug (Отладка). Кнопки цієї панелі дозволяють запустити програму на виконання, простежити за ходом її роботи та , а также виявити різні помилки в програмах

UserForm (Пользовательская форма). Ця панель використовується при проектування форм. Більшість її кнопок дублюють команди меню Format.

У редакторі VBA використовується багато вікон, але слід пам’ятати, що вікон форм і програмного коду може бути кілька, вікна інших типів можуть бути тільки по одному.

Вікно провідника проекту (Project – <імя проекту>) містить список всіх файлів, що входять до даного проекту і призначене для швидкого доступу користувача до елементів списку.

Вікно Project (Проект) за звичай відкривається при запуску редактора Visual Basic. Якщо вікно Project (Проект) закрите, то відкрити його можна, вибравши в меню View (Вид) команду Project Explorer (Провідник по проектам).

Вікно властивостей об'єкту (Properties) містить список властивостей активної екранної форми або активного об'єкта управління, розташованого на активній формі. Властивості визначають зовнішній вигляд екранної форми або відповідного об'єкту управління та їх характеристики. Вікно властивостей поділено на дві колонки. В лівій знаходяться назви властивостей об'єкта, ім'я якого вказано у верхньому списку, а у правій – їх значення, які вибираються зі списку або вводяться з клавіатури. Список властивостей подано на двох закладинах – Alphabetic (Алфавітний) і Categorized (За категоріями).

Вікно редагування коду (Code) відображає програмний код для опрацювання подій. Щоб активізувати це вікно необхідно двічі клацнути на об’єкті управління.

Вікно редагування форм (UserForm) представляє собою робочу область, на якій користувач може розміщувати різні об’єкти або елементи управління: написи, поля, кнопки, перемикачі, малюнки тощо.

Елементи управління вибираються з панелі інструментів Toolbox, рис. 9.

 

Рис. 9. Елементи панелі інструментів

1. Pointer (Покажчик) - для позиціювання покажчика Мишки;

2. Label (Напис) - розміщує на формі текстові об’єкти типу написи, редагувати які під час виконання додатку неможливо;

3. TextBox (Текстове поле) - розміщує на формі поле для введення текстової інформації, чисел, дат;

4. ComboBox (Поле зі списком) - створює на формі об’єкт, що містить одночасно поле введення тексту і список значень, введений текст додається до елементів списку;

5. ListBox (Список) - створює на формі список для вибо­ру одного чи декількох значень із запропонованого списку;

6. CheckBox (Прапорець) - розміщує на формі індикаторний перемикач, призначений для формування умов виконання чи певних налаштувань, значення якого (Value) при встановленій «галочці»- 1, за відсутньої - 0, позначений, але неактивний стан - 2;

7. OptionButton (Перемикач) - створює на формі альтернативний перемикач для вибору налаштування чи режиму виконання програми;

8. Togglebutton(Вимикач) – кнопка має два значення - увімкнено та вимкнено.

9. Frame (Рамка) - створює на формі рамку із заголовком для логічного групування об’єктів;

10. CommandButton (Командна кнопка) - роз­міщує на формі кнопки управління для ініціюван­ня дій, виконання команд і т.д.;

11. TabStrip (Набір вкладинок) додає на форму набір вкладинок

12. MultiPage (Набір сторінок) додає на форму багатосторінковий елемент (контейнер для інших об’єктів)

13. ScrollBar(Вертикальна смуга прокручування) - розміщує на формі вертикальну смугу прокручування;

14. Spinbutton(Лічильник) – кнопка додається до клітинки або текстового поля і використовується для збільшення або зменшення значення

15. Image (Зображення) - створює на формі поля для відображення графічних зображень;

16. RefEdit (Поле визначення посилання) додає на форму поле введення, призначене для спрощення запису посилань на клітинки та діапазони Excel. Ця кнопка наявна тільки у Microsoft Excel.

 

Щоб помістити на форму елемент необхідно знайти потрібний елемент на панелі інструментів і клацнути на ньому лівою кнопкою миші. Перемістити покажчик миші на те місце на формі, де буде знаходитися вибраний елемент, і клацнути лівою кнопкою миші — елемент буде додано на форму так, що у вказаній точці буде знаходитися його верхній лівий куточок.Розміри форм та елементів можна змінювати за допомогою маркерів або задавати у вікні властивостей.

Для створення нового модуля необхідно виконати наступні дії:

1. Вибрати потрібний документ.

2. Активізувати редактор VBA (<Alt+Fll>).

3. У вікні Project Explorer виділити сам проект або один з його компонентів.

4. Вибрати команду редактора VBA Insert→Module (Добавить→Модуль) або клацнути кнопку Insert на панелі інструментів Standard та вибрати команду Module.

У результаті редактор VBA відкриє на екрані вікно програмного коду нового модуля, ім’я якого за замовчування Modulen, где n— порядковий номер модуля.

Для створення нової процедури в існуючому модулі, необхідно спочатку відкрити вікно Code для даного модуля (View=>Code). Код процедури розміщують у будь-якому місці модуля. Процедура починається оператором Sub(підпрограма) і закінчується оператором End Sub або оператором Function (функція) і закінчується оператором End Function.

Об’єктна структура мови VBA

Головна перевага мови VBA полягає в тому, що вона належить до мов об’єктно-орієнтованого програмування. В основу програмування мовою VBA покладено таке поняття, як об’єкт. Об’єкт дозволяє інкапсулювати дані, що описують деякий елемент, разом з програмним кодом, призначеним для опрацювання цих даних, тобто об’єднати їх в одне ціле, що має назву об’єкт. У кожному VBA- додатку є свій унікальний набір об’єктів з власними властивостями (характеристиками даного елементу) і методами (командами для опрацювання цих властивостей). В результаті доступ до властивостей об’єкта (тобто характеристик стану деякого елемента у додатку) можливий тільки за допомогою його власних методів. Управління станом елемента здійснюється за допомогою надісланих йому повідомлень, що вказують об’єкту на необхідність виконати той чи інший метод для досягнення результату. Самі повідомлення генеруються системою у відповідь на дії користувача чи дії інших програм, що в даному випадку називаються подіями.

Одне з важливих понять об’єктно-орієнтованого програмування — це поняття класу, що описує типову структуру схожих за призначенням елементів. В системі зберігається програмний опис кожного використаного класу, на основі якого при необхідності створюються екземпляри об’єктів. Наприклад, в програмі може бути описано клас кнопки, що відображається у вікнах додатків. Кожна окрема кнопка (екземпляр об’єкта цього класу) в будь-якому вікні додатку створюється на основі цього опису, але відрізняється від інших своїми властивостями (розміром, кольором, написом, виконуваною після клацання операцією і т.д.).

Крім методів і властивостей об’єкта, існує таке поняття, як подія. Подія – це деяка дія, що може бути виконана по відношенню до об’єкта і на яку необхідно запрограмувати відповідну реакцію даного об’єкта. Наприклад, подією може бути клацання на зображенні об’єкта, натиснення клавіші на клавіатурі чи переміщення покажчика миші над зображенням об’єкта. В цілому, суть програмування мовою VBA полягає у створенні коду програм (методів), які генерують необхідні відгуки на відповідні події.

Основні елементи мови програмування Visual Basic For Application (VBA)

Алфавіт мови складається з таких символів:

1. Латинські літери від A до Z;

2. Літери кирилиці;

3. Цифри від 0 до 9;

4. Знаки математичних операцій (^, *, /, \, Mod, +, -);

5. Знаки відношень (<, >, <=, >=, <>, =);

6. Розділові символи (. , : ; “ ” ( ) );

7. Спеціальні символи (‘, !, #, $, %, & і т.д.)

Використовуючи алфавіт, будують елементи мови: службові слова, імена констант і змінних, вирази, імена функцій і ін.

До основних службових слів відносять Data, Dim, Do – Loop, End, For – to – step, Gosub, Goto, If – then – else, Input, Next, On, Print, Read, Restore, Return, Stop, While, Select Case і т.д.

Змінна – це іменована зарезервована область оперативної пам’яті для тимчасового зберігання даних визначеного типу. Кожна змінна має ім’я, яке задається з використанням таких правил:

- ім’я може складатися з букв, цифр та символу підкреслення (_), але першим символом в імені повинна бути літера (буква)

- ім’я кожної змінної повинно бути унікальним і не співпадати з зарезервованими словами;

- ім’я не може містити більше 255 символів.

- ім'я не може містити розділових знаків, пробілів і наступних символів: %, &, !, #, @, $.

Наприклад, ClassName, Dobutok_Dodatnyh – правильні імена;

1Name, Print, Suma vsih – не правильні імена змінних.

Константа – це величина, значення якої не змінюється в процесі виконання програми, її ім’я задають за тими ж правилами, що і імена змінних.

Спосіб збереження змінних та констант визначається за типом даних VBA:

Byte-мале ціле число без знаку (от 0 до 255), що займає в пам’яті 1 байт

Integer - середнє ціле число із знаком (от –32768 до 32767), що займає в пам’яті 2 байта

Long-велике ціле число (від -2147483648 до 2147483647), що займає в пам’яті 4 байта

Single-число с плавающою точкою(від -3.402823E38 до 3.402823E38 ), що займає в пам’яті 4 байта

Double-число с плавающою точкою(від -1.79769313486232E308 до 1.79769313486232E308), що займає в пам’яті 8 байт

Currency-велике число у грошовому форматі(від -922337203685477.5808 до 922337203685477.5807), що займає в пам’яті 8 байт

Decimal-число с плавающою точкою(±79 228 162 514 264 337 593 543 950 335 без десяткової точки або 28 цифр після десяткової точки), що займає в пам’яті 14 байт

Date-дата або час, що займає в пам’яті 8 байт

Boolean-логічна змінна, що може набувати два значення: Trueі False, що займає 2 байта

String-рядоксимволів довільної довжини (1 байт на 1 символ), від 0 до 2 млрдю символів

String*k -рядоксимволів фіксованої довжини k(k – будь-яке число), від 0 до 65 400 символів

Variant-змінна може набувати будь-яке значення, не менше 16 байт пам’яті.

Перед використанням змінних у програмному коді їх попередньо треба оголосити. Оголошення змінних здійснюється за допомогою службових слів, що мають такий формат:

Dimім’я_змінної [As тип_даних]- для оголошення локальної змінної – видимої тільки у цій процедурі, при виході з процедури її значення буде втрачено.

Privateім’я_змінної [As тип_даних]- для оголошення локальної змінної - видимої у всіх процедурах одного модуля, до якого належать ці процедури, але опис такої змінної потрібно зробити у розділі Declarations.

Staticім’я_змінної [As тип_даних]- для оголошення локальної змінної – видимої тільки у цій процедурі, але після виходу з цієї процедури її значення не втратиться.

Publicім’я_змінної [As тип_даних]- для оголошення глобальної змінної – видимої у всіх процедурах усіх модулів. Вона може бути оголошена у стандартному модулі.

Наприклад.

Option Private Module

Dim a As Integer

Private b As Long

Public с As Single

Public Sub NewSubO

Dim x As Single ,

End Sub

Змінні а та b доступні у межах всього модуля. Змінна с буде доступна для всіх модулів, але тільки для даного проекту (т.я. вказано оператор Option Private Module). Змінна х буде доступна тільки всередині процедури NewSub, т.я. вона оголошена безпосередньо в ній.

Крім простих величин у VBA використовують структуровані величини – масиви.

Після оголошення змінної, їй можна задати деяке значення за допомогою оператора присвоєння. Оператор присвоєння надає змінній значення, обчислене за деякою формулою і має вид:

<змінна> = <вираз>

Вираз містить числа, константи, прості змінні, елементи масиву, круглі дужки та стандартні математичні функції., об’єднані знаками арифметичних операцій.

Стандартні функції для числових величин подано у таблиці 1.

Таблиця 1

Оператор виведення MsgBox

Цей оператор використовується для одержання від користувача відповідей (“Так” або “Ні”) на короткі повідомлення. Синтаксис:

MsgBox <повідомлення > [, число ] [, < заголовок > ]

Де <повідомлення > і < заголовок > - довільні символи, число – цифра в залежності від якої змінюється вигляд вікна (наприклад, 16 – повідомлення про помилку, 64 – інформаційне повідомлення, 3 – кнопки Да, Нет, Отмена). Повідомлення може включати арифметичний вираз, якій задається через функцію Str ().

Приклади:

1. MsgBox “Процес обчислення завершено”, 1, “Проект” (Рис.13)

Рис. 13

2. MsgBox (“х=” + Str (x) + “ “ + ” x+sin(x)=”+Str (x+Sin(x))), , "проект" (Рис.14)

Результатом виконання буде виведене вікно з результатом розрахунку, передбачається що значення “х” було вказано раніше :

Рис. 14

Оператор вибору Select Case

4) Оператор Select Case – оператор вибору, перевіряється одна умова і виконується один з декількох блоків операторів. Оператор заміняє серію операторів ElseIf, якщо один і той же вираз порівнюється з декількома значеннями

Синтаксис:

Select Case <вираз>

Case <значення1>

<Блок операторів 1>

Case <значення2>

<Блок операторів 2>

Case Else

<Блок операторів N>

End Select

Приклад.

Sub SelectCase ( )

Dim a As Single

a = InputBox("Введіть ваш зріст у сантиметрах")

Select Case a

Case Is < 150

MsgBox "У вас дуже малий зріст"

Case 151 То 178

MsgBox "Ви людина середнього зросту"

Case Is > 178

MsgBox "Ви висока людина"

End Select

End Sub

Оператори циклів

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

Ітераційний цикл

Оператор циклу без лічильника Do … Loop використовується в одному з чотирьох варіантів:

Do While <умова продовження циклу> … Loop

Do Until <умова закінчення циклу > … Loop

Do … Loop While <умова продовження циклу>

Do … Loop Until <умова закінчення циклу>

Нехай, наприклад, треба розрахувати значення Y за­лежно від введеного значення X. Тоді фрагмент програ­ми матиме такий вигляд:

1) У даному прикладі цикл виконується, якщо введені значення Х задовольняють умову Х>0:

X = Input ("Значення X", Х)

Do While Х> 0

Y=sqr(3*Х+7)

Debug.Print X;Y

Loop

2) У наведеному нижче прикладі цикл виконується, якщо X<5:

X = InputBox ("Значення X")

Do Until X>5

Y=sqr(15-3*Х)

Debug.Print X;Y

Loop

Арифметичний цикл

Якщо необхідно виконати одні і ті ж дії задану кількість разів, але з різними значення деякої змінної, то використовують оператор циклу з лічильником For … Next.

For <змінна циклу = початкове значення> То <кінцеве значення> [Step<крок циклу>]

Тіло циклу

Next [змінна циклу]

Приклад:

Private Sub Prog2()

Dim add As String, n As Integer

add = ""

For n = 1 To 21 Step 2

add = add & n & " "

Next n

MsgBox "Це послідовність непарних чисел:" & " " & add

End Sub

 

Приклади програм з використанням об’єктів MS Excel у циклічних обчислювальних процесах:

1. Програма переписує вміст стовпчика «B2:B7» на аркуші «Лист1» у стовпчик «E2:E7», виконуючи операції з клітинками аркуша:

Sub example3 ()

Dim j as integer

Worksheets("Лист1").Activate ‘ Аркуш «Лист1» стає поточним активним аркушем

For j=2 To 7

Cells(j,5).Value = Cells(j,2).Value

Next j

End Sub

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

Sub example4 ()

Dim R1 as Range, R2 as Range, j as integer, k as integer, m as integer, n as integer

Set R1 = Worksheets("Лист1").Range ("B2:C7")

Set R2 = Worksheets("Лист1").Range ("E4:F9")

m = R1.Rows.Count

n = R1.Columns.Count

For j=1 to m

For k=1 to n

R2(j,k).Value = R1(j,k).Value

R1(j,k).Value = “ ”

Next k

Next j

End Sub

3. Цей приклад демонструє функцію, що обчислює суму вмісту всіх клітинок заданого діапазону:

Function summ (adr as string) as single

Dim j as integer, k as integer, m as integer, n as integer

Dim s as single

Dim RN as Range

Set RN = Range (adr)

Rem Встановити діапазон із заданою в параметрі функції адресою

m = RN.Rows.Count ‘Кількість рядків діапазону

n = RN.Columns.Count ‘Кількість стовпців діапазону

s = 0

For j = 1 to m

For k = 1 to n

s = s + RN(j, k).Value

Next k

Next j

summ = s

End Function

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

Function minm (adr as string) as Range

Dim j as integer, k as integer, m as integer, n as integer

Dim s as single

Dim RN as Range, RC as Range

Set RN = Worksheets ("Лист1").Range (adr)

m = RN.Rows.Count

n = RN.Columns.Count

Set RC = RN (1, 1)

For j = 1 to m

For k = 1 to n

IF RN (j, k).Value < RC.Value Then

Set RC = RN (j, k)

End IF

Next k

Next j

Set minm = RC

End Function

5. В наступному прикладі мінімум в діапазоні запишеться, наприклад, в клітинку B13.

Sub example5 ()

Cells (13, 2) = minm ("B2:C11").Value

End Sub

Рядкові величини

Для зберігання рядкових величин у мові VBA використовується тип даних String. Текстові дані у мовах програмування прийнято називати рядками. Значення рядкових величин завжди записують у лапках (" "). Приклад оголошення рядкових величин та присвоєння їм значень:

Dim s As String

s = "Це рядок з 22 символів"

 

Виділення підрядка

Функції Left и Right виділяють у символьному рядку підрядок визначеної довжини, починаючи з крайнього лівого або крайнього правого символу, а функція Mid дозволяє вибрати будь-який підрядок.

Синтаксис функцій:

Left(вираз, кількістьСимволів)

Right(вираз, кількістьСимволів)

Mid(вираз, номерПозиції [, кількістьСимволів])

Прикладивикористання цих функцій та їх значення:

c= "Виділення підрядка"

Print Left(c,3) ' Повертає "Вид"

Print Right (c, 5) ' Повертає "рядка"

Print Mid (c, 11,3) ' Повертає "під"

Перетворення рядків

Функції UCase() і LCase() використовуються у Visual Basic для перетворення малих букв у великі і великих у малі. Крім цього є функція StrConv, яка перетворює вираз у власне ім’я, що починається з великої букви. Т.я. функції UCase () та LCase () повертають значення типу Variant, тому щоб результат мав тип string, необхідно використовувати функції UCase$ () і Lcase$ ().

Синтаксис функцій:

UCase (символьний рядок)

LCase(символьний рядок)

Прикладивикористання цих функцій та їх значення:

1) c = "друк"

Print UCase(c) ' Повертає "ДРУК"

Print UCase$(c) ' Повертає "ДРУК"

2) c= "ДРУК"

Print LCase(c) ' Повертає "друк"

3) c = "Іванов іван іванович"

Print StrConv(c,vbProperCase) ' Повертає "Іванов Іван Іванович"

4) c = "ІВАНОВ ІВАН ІВАНОВИЧ"

Print StrConv(c, vbProperCase) ' Повертає "Іванов Іван Іванович"

Об’єднання рядків

У Visual Basic для роботи з рядками використовується тільки один оператор — оператор об’єднання. За допомогою даного оператора можна об’єднати кілька рядків в один. Цей оператор позначається символом амперсанда (&) або символом "плюс" (+).

Теоретична довідка до ПР №23

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 та Макросы.

Рисунок 1. Кнопки на вкладинці "Разработчик"

При розв’язуванні багатьох задач часто виконують одну і ту ж послідовність операцій. Але в Microsoft Office 2010 замість багаторазового повторення однієї і тієї ж послідовності дій можна написати макрос (Macro), який буде автоматично виконувати потрібну послідовність дій багаторазово. Для багатьох VBA-додатків— серед яких Microsoft Word, Excel, Assess, PowerPoint і т.д. — макроси можна створювати як за допомогою мови Visual Basic for Application, так і за допомогою спеціальних функцій Microsoft Office 2010, що використовуються для інтерактивного запису макросів (найпростіший спосіб за допомогою засобу MacroRecorder).

Щоб записати макрос за допомогою спеціального засобу MacroRecorder, наприклад у середовищі Microsoft Excel 2010, треба на стрічці вибрати вкладинку Вид (клацнути на ній лівою кнопкою мишки). Потім у групі Макросы клацнути на кнопці Макросы і вибрати команду Запись макроса — як показано на рис.2.

Рис. 2. Стрічка додатку Microsoft Excel 2010 з відкритою вкладинкою Вид, на якій у групі Макроси знаходиться команда меню Запись макроса

У результаті цих дій на екрані розкриється діалогове вікно Запись макроса (рис.3).

Рис. 3. Діалогове вікно Запись макроса в Microsoft Excel 2010

Діалогове вікно Запись макроса в різних додатках Microsoft Office 2010 — Word, Excel чи PowerPoint — має різний вид, але правила запису нового макросу для всіх додатків одинакові, а саме:

■ ім’я макроса починається з букви, але всередині може містити цифри та символ підкреслення;

■ ім’я макроса не може містити пропуски чи спеціальні символи;

■ максимальна довжина імені макроса 80 символів.

Наприклад: Підсумок_по_рядках, ПідсумокПоРядках.

В залежності від додатку, в якому створюють макрос (редактор Visual Basic, Word, Excel), діалогове вікно Запись макроса може містити різні поля та опції — наприклад, поле опису макроса, поле для визначення місця зберігання тексту макроса, призначену макросу комбинацію клавіш для його виклику і т.д.

Як видно з рис. 3, у діалоговому вікні Запись макроса у додатку Excel 2010 є поле Сочетание клавиш, у якому можна вказати бажану комбінацію клавіш, яка буде використовуватися для швидкого запуску даного макроса (комбінація клавіш <Ctrl+клавіша>).

У додатку Word у діалоговому вікні Запись макроса (рис.4), на відміну від Excel, у групі Назначить макрос є ще дві додаткові кнопки: кнопке і клавишам. Ці кнопки дозволяють або присвоїти функцію виклику макроса новій кнопці на панелі інструментів, або призначити для нього деяку комбінацію клавіш швидкого виклику. Після клацання на будь-якій з цих кнопок розкриється ще одне діалогове вікно, у якому необхідно буде виконати відповідні призначення.

Рис. 4. Діалогове вікно Запись макроса у Microsoft Word 2010

 

У всіх додатках 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 та ввести в шість сусідніх клітинок назви місяців, як показано на рис.5.:

Рис. 5. Введення значень у клітинки при створенні макросу

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), введених на попередньому кроці.







Последнее изменение этой страницы: 2016-07-11; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.215.62.41 (0.08 с.)