Урок 75 Інформатика 11(ІКТ)
Програмуванню можна навчитися , тільки програмуючи !
Поняття об’єкта, метода, властивості, події; базові елементи VBA: константи (числові, символьні), змінні, типи змінних, вбудовані функції, операції, вирази; структура редактора VBA; алгоритмічні конструкції (модулі, процедури); створення процедур; структура програми на VBA; розгалуження; цикли; обробка масивів.
Мета.
Навчальна. Ознайомити учнів з поняттям об’єкта, метода, властивості, події; базові елементи VBA: константи (числові, символьні), змінні, типи змінних, вбудовані функції, операції, вирази; структура редактора VBA; алгоритмічні конструкції (модулі, процедури); створення процедур; структура програми на VBA; розгалуження; цикли; обробка масивів.
Розвиваюча. Розвивати логічне мислення, самостійність, вміння застосовувати набуті знання до практичних завдань.
Виховна. Виховувати наполегливість, естетичність у оформленні, грамотно висловлювати свої думки.
Тип уроку. Засвоєння нових знань і навичок.
Матеріали для роботи з учнями:
Створення макросів за допомогою програми MacroRecorder
План
Хід уроку
1. Організація початку уроку.
2. Інструктаж БЖД.
3. Актуалізація опорних знань.
4. Мотивація навчальної діяльності.
Всім нам доводиться - кому рідше, кому частіше - повторювати одні й ті ж дії та операції в Excel. Будь-яка офісна робота передбачає якусь "рутинну складову" - одні й ті ж щотижневі звіти, одні й ті ж дії по обробці даних, що надійшли, заповнення одноманітних таблиць або бланків і т.д. Використання макросів і функцій користувача дозволяє автоматизувати ці операції, перекладаючи монотонну одноманітну роботу на плечі Excel. Іншою причиною для використання макросів у вашій роботі може стати необхідність додати в Microsoft Excel відсутні, але потрібні вам функції. Наприклад функцію складання даних з різних листів на один підсумковий лист, рознесення даних назад, висновок суми прописом і т.д.
Макрос - це запрограмована послідовність дій (програма, процедура), записана на мові програмування Visual Basic for Applications (VBA). Ми можемо запускати макрос скільки завгодно разів, змушуючи Excel виконувати послідовність будь-яких потрібних нам дій, які нам не хочеться виконувати вручну.
В принципі, існує безліч мов програмування (Pascal, Fortran, C + +, C #, Java, ASP, PHP ...), але для всіх програм пакета Microsoft Office стандартом є саме вбудована мова VBA. Команди цієї мови розуміє будь офісне застосування, будь то Excel, Word, Outlook або Access.
5. Вивчення нового матеріалу.
Що таке VBA ?
VВА ( Visual Basic for Application - Visual Basic для додатків) - це сучасна мова програмування, підтримуваний всіма додатками пакета версій Microsoft Оffiсе 2003 і вище , до складу якого входять такі популярні програми , як Microsoft Аccess , Microsoft Ехсе1 , Microsoft РоwerРоint , Microsoft Word і ін
VВА - це відносно нескладний мову програмування. Він дуже простий і зручний в освоєнні і дозволяє швидко отримати досить значущі і, головне , наочні результати - конструювати якісні програми для вирішення багатьох завдань у середовищі Microsoft Windows. У відомому сенсі , VBA - прямий спадкоємець популярного мови програмування Basic , але , в порівнянні з ним значно досконаліший і що володіє абсолютно новими якостями.
Тому і можливостей , як внутрішніх (наприклад , в частині виведення на екран всіляких форм), так і зовнішніх ( взаємодія з іншими додатками) , у нього набагато більше. Створювати власні офісні додатки з його допомогою набагато простіше і швидше , ніж за допомогою інших мов програмування.
Будучи розвиненою мовою програмування , VBA також включає в себе повноцінну інтегроване середовище розробки з повним набором стандартних спеціалізованих вікон , що спрощують проектування , налагодження і тестування програм. Інтегроване середовище розробки VBA - це редактор Visual Basic .
Він має своє вікно з панеллю меню і набором панелей інструментів , які дозволяють отримати доступ до цілого ряду вікон , що надають інструментальні засоби , необхідні для створення програм. Крім того , редактор VBA включає спеціалізовані засоби для швидкого створення користувальницького інтерфейсу , що перетворює його на візуальне середовище розробки додатків.
Основні поняття і елементи мови VBA: об'єкти, властивості, методи, події, класи об'єктів
Оскільки мова VBA відноситься до категорії об'єктно- орієнтований -них , то основними поняттями в ньому є об'єкти , властивості, методи , події і класи.
Об'єкти
У відповідній літературі даються різні визначення об'єктів. З об'єктів складається будь-яке програмне додаток . І кожен об'єкт володіє набором своїх специфічних характеристик ( властивостей, якостей ) .
Можна дати спрощене і зрозуміле визначення об'єкта.
Об'єкт - це готова програмна конструкція інтерфейсу "людина - комп'ютер" , яка наділена сукупністю властивостей (параметрів) і методів їх обробки.
Інакше кажучи, об'єкти - це ті "блоки" , з яких будується будинок конкретного додатка , що працює під управлінням операційної системи з сімейства Windows.
Але можна дати і більш строге визначення .
Об'єкт - це програмна конструкція , яка дозволяє инкапсулировать дані, що описують якийсь компонент прикладної області , разом з програмами , призначеними для обробки цих даних.
Під терміном "інкапсуляція" ( суто внутрішня приналежність ) мається на увазі що характеристики ( властивості), приписані об'єкту, недоступні впливів на них із зовнішнього середовища. Але разом з тим сам об'єкт повинен і може надати для цього свої , строго обмежені , спеціальні функції - методи .
Об'єктами програмного середовища можна назвати вікна ( звичайні або діалогові ), елементи інтерфейсу ( кнопка) , керуючі елементи ( прапорець , перемикач) , меню , поля введення і т.д. При цьому в об'єкті частина даних може бути відкрита для інших програмних конструкцій, а іншою частиною можуть оперувати тільки програмні компоненти , що відносяться тільки до даного об'єкта. Те ж саме відноситься і до процедур ( невеликим підпрограмам ) , що належить об'єкту , - деякі з них можуть бути викликані ззовні, а інші, навпаки, використовуються тільки всередині об'єкта.
Всі програмні продукти MS Office мають своїми стандартними наборами об'єктів. Так , в Excel це - осередки , робочі листи , вбудовані функції і методи аналізу , в Access - таблиці даних, форми , запити , програма " Будівник виразів " і т.д. Всі вони реалізовані і можуть бути прочитані або змінені в середовищі VBA.
Разом з тим , користувач , що володіє програмуванням в VBA , здатний створювати свої , унікальні і потрібні йому об'єкти з їх властивостями всередині цих офісних додатків.
Властивості і методи об'єкта. події
Будь-який об'єкт завжди має унікальне ім'я , за допомогою якого завжди можна звернутися до об'єкту, не сплутавши його з іншими.
Але , крім того , при описі будь-якого об'єкта вказують його розмір , колір , призначення і т.п. Інакше кажучи , він володіє цілим набором властивостей або певних характеристик. Кожна з них може приймати які-небудь значення . Властивості призначені для зберігання інформації про поточний стан окремих сторін , якостей об'єкта .
Властивості об'єкта - це характеристики його поточного стану в додатку , його параметри. Їх значення визначають унікальність об'єкта , його відмінність чи подібність в порівнянні з іншими об'єктами.
Якщо ми хочемо програмно надати об'єкту значення певної властивості , то потрібно суворо дотримуватися такий спосіб запису ( синтаксис ) :
Імя_об'екта . Імя_свойства = Значеніе_свойства
Правильні і строго певні зміни властивостей можливі тільки під впливом відповідних методів , властивих даному об'єкту .
Метод - команда або набір команд ( підпрограма ), призначених для цілеспрямованих змін властивості або властивостей об'єкта
Таким чином , доступ до властивостей об'єкта можливий тільки за допомогою його власних методів , тобто спеціально підготовлених команд обробки цих властивостей
Станом елемента керують за допомогою посилаються йому повідомлень , що вказують об'єкту на необхідність виконати той чи інший метод для досягнення необхідного результату .
Повідомлення видаються самою системою у відповідь на дії користувача або інших функціонуючих в ній програм , які в термінології VBA називаються подіями .
Класи об'єктів
Одне з найважливіших понять об'єктно -орієнтованого програмування - це поняття класу , яке описує типову структуру подібних за призначенням елементів . У системі зберігається програмне опис кожного використовуваного класу , на підставі якого при необхідності створюються екземпляри об'єктів , що представляють конкретні елементи програмного середовища .
Наприклад , в програмі може бути описаний клас "Кнопка" , яка повинна відображатися у вікнах програми. Кожна окрема кнопка ( екземпляр об'єкта цього класу) в будь-якому вікні додатку створюється на підставі цього опису , але відрізняється від інших своїми властивостями (розміром, кольором , написом , виконуваної після клацання операцією і т.д.).
У мові VBA клас зазвичай описується як певний прототип , на основі якого створюється конкретний об'єкт.
Таким чином, клас визначає для об'єкта його призначення, властивості і ті дії , які можуть бути виконані над ним і в цьому понятті об'єднує його з йому подібними.
Інакше кажучи , клас - це сімейство об'єктів, подібних один з одним по перерахованих характеристикам. Тому з точки зору програми інтерес представляє не стільки сам об'єкт , скільки , то , якими властивостями він володіє і які дії можна над ними вчинити .
Схематично зв'язок основних понять об'єктно- орієнтованого програмування можна проілюструвати так :
Однак , згадаймо розумне вислів: " Програмуванню можна навчитися , тільки програмуючи ! " .
Найлегше осягати нове на прикладах. Тому в наступному розділі перейдемо до їх розгляду . І ми почнемо це з макросів.
Макроси в додатках MS Office
Поняття макроса
Будь-якому користувачеві, який працює з додатками MS Office (Excel , Word , , Access і т. д.) , відомо , що при вирішенні багатьох завдань доводиться виконувати один і той же набір дій , причому , досить часто і завжди в однаковому порядку .
У Microsoft Оffiсе є дуже зручний засіб - замість багаторазового повторення однієї і тієї ж послідовності операцій можна створити макрос.
Макрос - це набір операцій, вироблених користувачем і автоматично зафіксованих у вигляді програми.
Така програма при кожному її запуску буде виконувати за користувача ту ж потрібну і виконану ним раніше послідовність дій.
Таким чином , макроси - це засіб, за допомогою якого можна описати довільну послідовність дій користувача б е із безпосереднього програмування для її подальшого багаторазового виконання .
Для багатьох VВА - додатків ( серед них - програми MS Office ) макроси можна створювати як за допомогою мови Visual Basic for Application , так і за допомогою спеціальних функцій MS Оffiсе , використовуваних для інтерактивної запису макросів . Ці функції дозволяють записувати всі виконувані користувачем дії при його роботі з додатком до тих пір , поки не буде подана команда про припинення запису.
Після зупинки процесу виконання користувачем потрібних дій записана їх послідовність зберігається у вигляді пойменованого макросу. Їм можна користуватися кожен раз , коли буде потрібно повторити виконання записаної там ланцюжка операцій .
Незалежно від того , чи йде робота в Word , Ехсеl, Ассess або РоwегРоint , створення нового макросу здійснюється одним і тим же способом.
Спільним для цього способу є те , що ім'я макросу можна давати , лише чітко дотримуючись таких правил :
ПРИМІТКА 2: якщо потрібно призначити ім'я, що складається з декількох частин (слів) , найкраще розділяти ці частини знаком підкреслення "_" або використовувати всередині імені заголовні букви , наприклад , ІмяНашегоМакроса .
Процес створення макросу
Розглянемо практичне створення не дуже складного макросу.
Процес створення макросів, їх дії і зміст будемо розглядати в середовищі Excel як найбільш популярного додатка MS Office.
Приклад.
Припустимо , що в робочій книзі ( РК) Excel треба автоматизувати підготовку введення даних з комерційних і державним банкам міста Казані. Під цим будемо розуміти виконання таких дій :
Пропонується такий порядок дій в Excel :
1 ) встановити курсор в початкову клітинку В3 ;
2 ) виконати одну з ланцюжків :
- Сервіс - Макроси - Почати запис ( в Excel 2003 ) ;
- Вкладка Вид - група Макроси - Запис макросу ( в Excel 2007 )
Рис. 8.1. Стрічка в Excel 2007 з обраної командою Запис макросу
3) на екрані - діалогове вікно Запис макросу (рис. 8.2):
Рис . 8.2 . Діалогове вікно для запису параметрів (імені та місцезнаходження ) нового макросу
4) у панелі "Ім'я макросу" потрібно ввести його майбутнє унікальне ім'я НазваніяБанковКазані;
5) у панелі " Зберегти в " залишити значення "Ця книга " , задане за умовчанням; це забезпечить доступ до макросу тільки з даної РК;
6 ) у цьому ж вікні користувачу пропонується використовувати поле " Поєднання клавіш " , в якому можна вказати бажану комбінацію клавіш для швидкого виклику даного макросу (поєднання клавіш < Сtrl + клавіша > ) . Це стане в нагоді в тому випадку , якщо буде потрібно часто використовувати записуваний макрос.
У В А Г А! Допускається використання сполучень CTRL + буква ( для малих літер ) або CTRL + SHIFT + буква ( для прописних літер) , де буква - будь-яка буквена клавіша на клавіатурі.
Неможна використовувати поєднання клавіш з цифрами і спеціальними знаками , такими як @ або # .
ПРИМІТКА 3: у вікні "Запис макросу" є ще необов'язкове поле "Опис" . У нього можна записати довільний текст , тобто коментар про те , для чого призначений даний макрос. За замовчуванням VBA заповнює це вікно інформацією про те , де і ким був створений даний макрос ( дата запису макросу і ім'я користувача) .
7 ) Коли всі дії у вікні «Запис макросу » будуть закінчені , можна натиснути ОК.
8 ) Excel переходить в режим запису макросу. З цього моменту треба бути особливо акуратними - адже запис макросу вже включена і будуть фіксуватися всі наші дії , в тому числі і невірні ! Послідовно проводимо всі задані нами дії . Коли всі вони будуть виконані і курсор буде встановлений в комірку В5 , зупинимо запис , виконавши ланцюжок дій :
вкладка Вид - група Макроси - Зупинити запис ( в Excel 2007).
ПРИМІТКА 4: крім команд «Почати запис» та « Зупинити запис » в спадному меню групи Макроси є ще параметр « Відносні посилання ».
Якщо його використовувати , то всі дії в макросі будуть записуватися щодо тієї комірки, в якій в момент виконання макросу знаходиться курсор. Наприклад , перед записом макросу , що переміщує курсор на 8 кроків з осередку A1 в клітинку A8 , була активна комірка А1. Якщо даний параметр був включений перед записом макросу , то при його запуску з осередку F1 він перемістить курсор на ті ж 8 кроків , але вже в осередок F8 ! Якщо ж параметр був відключений , то звідки б не запускався макрос , курсор завжди перейде в А1.
Запуск макросу на виконання
Коли макрос записаний, його можна запустити на виконання.
Для цього спочатку потрібно відкрити ту РК, в якій він збережений .
2 ) Якщо це вже зроблено , виконуємо ланцюжок :
вкладка Вид - група Макроси - Макроси ( в Excel 2007).
3 ) на екран виводиться діалогове вікно Макрос (рис. 8.3) :
Рис. 8.3. Вікно вибору макросів для виконання
3) вибираємо в панелі "ім'я макросу" назву потрібного нам макросу НазваніяБанков Казані і натискаємо кнопку Виконати.
Якщо все було зроблено правильно, на робочому листі РК з'явиться потрібна інформація (рис. 8.4):
АкБарсБанк
Рис . 8.4 . Результат виконання макросу НазваніяБанковКазані
Як і було задано , всі назви розміщені в зазначеному діапазоні клітинок , їм надано стиль " напівжирний курсив " , вони оформлені рамками , є і номери граф . Робота макросу завершилася тим , що курсор зупинився в комірці В5.
Код (текст) програми макросу і пояснення до нього
А тепер подивимося , як виглядає вихідний текст (код) макросу НазвиБанківКазані :
Sub НазвиБанківКазані () ' початок програми -процедури
' Апостроф - це початок коментаря , тобто пояснення до тексту
' НазвиБанківКазані Макрос
' Макрос записаний 19.04.2009 ( MINI_CORP )
'
Range ( " B3" ) . Select ' спочатку обрана й активована кдітинка В3
ActiveCell.FormulaR1C1 = " ІнтехБанк " 'текст " ІнтехБанк " розміщений в активній клітинці В3
Range ( " C3 " ) . Select
ActiveCell.FormulaR1C1 = " УрсаБанк "
Range ( " D3 " ) . Select
ActiveCell.FormulaR1C1 = " АкбарсБанк "
Range ( " E3 " ) . Select
ActiveCell.FormulaR1C1 = " СберБанк "
Range ( "F3" ) . Select
ActiveCell.FormulaR1C1 = " Енергобанк"
Range ( " G3 " ) . Select
ActiveCell.FormulaR1C1 = " СпуртБанк "
запрограмовані аналогічні дії для клітин C3 - G3
Columns ( "B : G" ). Select ' вибрані стовпці від B до G
Columns ( "B : G" ) . EntireColumn.AutoFit ' автободбор ширини стовпців
Range ( " B3 , C3 , D3 , E3 , F3 , G3 " ) . Select ' активізовані клітинки від В3 до G3
Range ( " G3 " ) . Activate ' активна комірка G3 і в ній зупинився курсор
Selection.Borders ( xlDiagonalDown ) . LineStyle = xlNone
Selection.Borders ( xlDiagonalUp ) . LineStyle = xlNone
'В останніх двох операторах об'єктам і властивостями обрамлення
" діагональ зверху вниз" і " діагональ знизу вгору" задане значення " ні"
With Selection.Borders ( xlEdgeLeft )
. LineStyle = xlContinuous
. Weight = xlMedium
. ColorIndex = xlAutomatic
End With
With Selection.Borders ( xlEdgeTop )
. LineStyle = xlContinuous
. Weight = xlMedium
. ColorIndex = xlAutomatic
End With
With Selection.Borders ( xlEdgeBottom )
. LineStyle = xlContinuous
. Weight = xlMedium
. ColorIndex = xlAutomatic
End With
With Selection.Borders ( xlEdgeRight )
. LineStyle = xlContinuous
. Weight = xlMedium
. ColorIndex = xlAutomatic
End With
запрограмованідії з рамками
Selection.Font.Bold = True ' вибрано шрифт Bold - напівжирний
Selection.Font.Italic = True ' вибрано шрифт Italic - курсив
Columns ( "B : G" ) . Select ' виділені стовпці від В до G
Columns ( "B : G" ) . EntireColumn.AutoFit ' включена команда автодобору ширини активних стовпців
Range ( " B4 " ) . Select
ActiveCell.FormulaR1C1 = " 1 "
Range ( " C4 " ) . Select
ActiveCell.FormulaR1C1 = " 2 "
Range ( " D4 " ) . Select
ActiveCell.FormulaR1C1 = " 3 "
Range ( " E4 " ) . Select
ActiveCell.FormulaR1C1 = " 4 "
Range ( " F4 " ) . Select
ActiveCell.FormulaR1C1 = " 5 "
Range ( " G4 " ) . Select
ActiveCell.FormulaR1C1 = " 6 "
Запрограмовано послідовне розміщення номерів граф від 1 до 6
Range ( " B4 , C4 , D4 , E4 , F4 , G4 " ) . Select
Range ( " G4 " ) . Activate
Selection.Borders ( xlDiagonalDown ) . LineStyle = xlNone
Selection.Borders ( xlDiagonalUp ) . LineStyle = xlNone
With Selection.Borders ( xlEdgeLeft )
. LineStyle = xlContinuous
. Weight = xlThin
. ColorIndex = xlAutomatic
End With
With Selection.Borders ( xlEdgeTop )
. LineStyle = xlContinuous
. Weight = xlThin
. ColorIndex = xlAutomatic
End With
With Selection.Borders ( xlEdgeBottom )
. LineStyle = xlContinuous
. Weight = xlThin
. ColorIndex = xlAutomatic
End With
With Selection.Borders ( xlEdgeRight )
. LineStyle = xlContinuous
. Weight = xlThin
. ColorIndex = xlAutomatic
End With
знову запрограмовані дії з рамками
With Selection ' для обраного -
. HorizontalAlignment = xlCenter ' горизонтальне вирівнювання вмісту по центру
. VerticalAlignment = xlBottom ' вертикальне вирівнювання - вниз
. WrapText = False ' заборонений перехід на наступний рядок
. Orientation = 0
. AddIndent = False
. IndentLevel = 0
. ShrinkToFit = False
. ReadingOrder = xlContext
. MergeCells = False
End With
Range ( " B5 " ) . Select ' На закінчення активізована комірка В5
End Sub
Рис . 8.5 . Оригінальний текст (код) макросу.
Початок і кінець коду макросу спеціально виділені автором більш великим шрифтом.
Крім того , в текст програми спеціально внесені деякі пояснення у вигляді коментарів до окремих операторам , оформлення курсивом.
Готова програма навіть такого нескладного макросу , складена в автоматичному режимі, досить велика. Цілком очевидно , що розібратися в ній , не знаючи призначення та правил запису окремих конструкцій мови , неможливо. А вже вносити туди доповнення або поправки - і поготів! Однак , все попереду , і дорогу здолає той, хто йде !
Коригування макросів
При записи макросу в будь-якому з обраних додатків (в Microsoft Word , Ехсе1 або РоwегРоiпt ) дії , виконані під час запису , будуть зафіксовані у вигляді послідовності відповідних операторів мови VВА . Вся сукупність цих операторів буде називатися вихідним кодом , або кодом макросу. Отриманий у такий спосіб код надалі можна буде використовувати при створенні власної програми . Причому в цій програмі можна буде як коригувати вже наявні , так і , при необхідності , додавати нові оператори . Отримати доступ до вихідного тексту макросу , переглянути або відредагувати його можна двома способами.
Спосіб 1 . Викликати вікно « Макроси » (див. рис. 8.3) , виконавши ланцюжок дій : вкладка Вид - група Макроси - Макроси ( в Excel 2007 ) , потім вибрати зі списку потрібний макрос і натиснути у вікні кнопку Увійти або Редагувати.
Спосіб 2 . На вкладці Разработчік2 в групі Код кнопкою Visual Basic включити редактор Visual Basic .
В обох випадках на екрані з'явиться вікно цього редактора (рис. 8.6 ) :
з програмним кодом обраного макросу , готовим для редагування. У цьому вікні можна додавати , видаляти , копіювати , змінювати , вирізати або вставляти будь оператори на мові VBA , користуючись командами меню Edit. Для збереження програмного коду відредагованого макросу виберіть команду меню File => Save Імя_Документа (Файл => Зберегти в ... ) редактора VBA або клацніть на кнопці Save Імя_Документа (Зберегти в ... ) панелі інструментів Edit.
Якщо ж був створений об'єкт « Кнопка » , то найлегший і природний спосіб - розкрити вихідний текст прямо з робочого листа РК Excel , на якому і відбувалася запис макросу. Для цього на вкладці Розробник треба спочатку включити режим Конструктор у групі Елементи керування . Потім , виділивши кнопку , викликати контекстне меню і вибрати там пункт «Вихідний текст» . На екрані - вікно редактора Visual Basic з вихідним текстом макросу , приписаного до даної кнопці .
Простий приклад складання і запису програми .
Почнемо з дуже простого прикладу: потрібно задати колір фону для будь-якої активної клітинки на аркуші Лист2 робочої книги Excel.
Спробуємо зробити це , скориставшись середовищем редактора VBA. Знову включимо редактор Visual Basic на вкладці Розробник .
Відкривається вікно редактора:
Рис. 8.7. Порожнє вікно редактора Visual Basic
У меню View (подання) включаємо команду Code, в результаті чого відкриється порожнє вікно для введення тексту майбутньої програми (рис. 8.8).
Рис . 8.8 . Вікно Code для введення тексту програми ( коду ) .
Цей текст з попутними поясненнями виглядає так:
Sub PaintCell () ' Заголовок процедури " Колір клітинки"
Dim n As Integer ' змінна n (код кольору) представлена як целочисленная
n = ( InputBox ("Введіть код кольору : " )) ' команда запиту введення коду кольору
ActiveCell.Interior.ColorIndex = n ' введений код n задає нове значення властивості
кольори активної комірки .
'Тут ActiveCell - об'єкт , активна комірка ,
Interior.ColorIndex - " двоступенева " властивість , задає колір об'єкта ActiveCell
End Sub () ' Кінець процедури " Колір осередку"
Рис . 8.9 . Текст (код) макросу для зміни кольору активної комірки
ПРИМІТКА 5: тут напівжирний шрифт - оператори та властивості , курсив - пояснення до них . Додамо : Paint - колір , Cell - осередок , Dim ( Dimension ) - надати (розміри) , Active - активізація об'єкта , ColorIndex - числове позначення (шифр , код ) кольору в середовищі VBA.
Розмістимо текст цієї крихітної програми у вікні Code , а потім натиснемо клавішу запуску програми на виконання F5 (або виконаємо Run - Run Sub / UserForm ) .
Рис . 8.10. Вікно запиту на введення коду кольору ( значення коду - від 0 до 56 )
Якщо до введення коду програми був активний Лист2 і будь-яка осередок на ньому , то в площі листа з'явиться вікно запиту (рис. 8.9 ) :
Якщо ми тепер введемо тут число 6 , то активна комірка отримає ЖОВТИЙ колір фону , якщо 8 , то - СМАРАГДОВИЙ , якщо 0 , то - БІЛИЙ , якщо 1 , то - ЧОРНИЙ і т. д.
Щоб переконатися в цьому , введіть вищевказаний вихідний текст у вікно Code редактора Visual Basic і потім виконайте цю програмку.
Хоча ця програма і проста, але вона вже має істотний недолік: в ній описується послідовний алгоритм і тому він виконується всього 1 раз. Щоб перепробувати кілька варіантів фарбування осередку , її кожен раз треба запускати заново. Для автоматичного повторення вибору цих варіантів потрібно перетворити її на циклічну програму.
Змінимо її , застосувавши один з варіантів циклу. Найбільш підходить для цього оператор з передумовою : While <умова > ... Wend . Він не обмежує число повторів циклу і , разом з тим , дозволяє перервати їх у будь-який момент , якщо правильно записати < умова> .
Оскільки відомо , що коди квітів займають закритий інтервал [ 1-56 ] , то введемо в розгляд змінну КодЦвета , будемо надавати їй різні значення і перевіряти їх за умовою : КодЦвета > = 0 і одночасно КодЦвета <= 56 .
Змінена програма прийме вигляд:
Sub PaintCell ( )
Dim n As Integer
n = 0
While КодЦвета > = 0 and КодЦвета <= 56
n = ( InputBox ("Введіть код кольору : " ))
ActiveCell.Interior.ColorIndex = n
Wend
MsgBox ( "До побачення . Робота закінчена !")
End Sub ' Кінець процедури " Колір осередку"
Рис . 8.11. Текст (код) макросу циклу зміни кольору активної комірки
Тепер програма буде працювати і міняти кольори в активній клітинці , поки в якості значення n не заміните негативне число.
Тоді замість запит введення коду кольору вона видасть у вікні повідомлення користувачу MsgBox фразу "До побачення . Робота закінчена ! "
Збереження макросів у вигляді модулів
Текстове представлення операторів на мові VBA , що міститься у вихідному коді макросу , зберігається в спеціальній частині файлу даних програми , званої модулем. Файл документа відповідного типу будь-якого з VBA - додатків може містити один або декілька модулів або не містити їх взагалі. Модулям , що зберігаються для документах Excel , за замовчуванням присвоюється загальну назву - VBAРгоject (VBA - проект).
При записи макросу в Ехсе1 у вікні " Запис макросу" потрібно вказати робочу книгу ( формату. Xlsm або . Хlsb ) , в якій буде збережений записаний макрос (рис. 8.2) . Для цього в списку Зберегти в слід вибрати одне з доступних значень , визначальне той документ , в якому буде збережений записаний макрос : " Особиста книга макросів ", "Нова книга " і "Ця книга " . Макроси , що мають безпосереднє відношення до поточної робочої книзі , рекомендується зберігати , вибравши в списку значення "Ця книга " . Після того як місце зберігання макросу буде вибрано , клацніть на кнопці ОК .
Якщо в документі , обраному для зберігання записуваного макросу , ще немає модуля , він буде створений з ім'ям Module1 .
Для того щоб знайти модуль з цікавлять вас макросом в будь-якому з додатків VВА , необхідно виконати наступні дії .
Відкрити редактор VВА , вибравши на стрічці додатки вкладку Розробник і клацнувши в групі Код на кнопці Visual Basic (крайня ліворуч) .
Відкрити вікно проектів , вибравши у вікні редактора VВА команду меню View → Ргоjесt Ехрlогег ( Вид = > Вікно проекту).
У вікні Project Ехр1огег знайти в ієрархії компонентів ім'я необхідного модуля і двічі клацнути на ньому.
Після виконання зазначених дій редактор VBA відкриє вікно коду з текстом обраного модуля . У списку Declaration ( Оголошення ) цього вікна ( справа вгорі ) виберіть ім'я необхідного макросу у відкритому модулі , після чого в даному вікні можна буде переглянути або відредагувати вихідний код цього макросу.
ПРИМІТКА 6 : при записі макросів в додатках Microsoft Office 2007 їх текст записується у вигляді послідовності операторів мови VВА . Таким чином , можна використовувати ці кошти для створення заготовок елементів програм , які належить написати на мові VВА . Замість того , щоб вручну програмно описувати деяку послідовність дій в тому чи іншому додатку Оffice , можна просто записати відповідний макрос , а потім скопіювати його код в текст створюваної програми .
6. Тест до уроку
а ) самостійне додаток роботи з даними ,
б) об'єктно- орієнтована мова програмування ,
в) процедурний мову програмування ,
г) інструмент обробки даних в додатках Microsoft Оffiсе .
а ) інтегровану візуальне середовище розробки ,
б) самостійний додаток Microsoft Оffiсе ,
в ) самостійне додаток Microsoft Windows ,
г) транслятор з мови Visual Basic .
а ) самостійна програма Microsoft Оffiсе ,
б) засіб управління роботою додатків Microsoft Оffiсе ,
в) пойменована запис послідовності дій користувача для спрощення її багаторазового повторення ,
г) фрагмент документа додатки Microsoft Оffiсе .
а ) в тілі документа додатки Microsoft Оffiсе ,
б) в шаблоні документа Microsoft Оffiсе ,
в) в окремому файлі з розширенням . vba ,
г) в системних бібліотеках.
а ) процедури і функції ,
б) об'єкти й події ,
в) константи і змінні ,
г) властивості і методи ,
д) класи .
а ) об'єкти ,
б) методи ,
в) процедури ,
г ) властивості .
а ) подія ,
б) об'єкт ,
в) клас об'єктів ,
г) інкапсуляція .
а ) поточний стан об'єкта ,
б) можливий стан об'єкта ,
в) схожість з іншим об'єктом ,
г) унікальність об'єкта.
а ) вікно ,
б) інформація, що вводиться ,
в) кнопка ,
г) прапорець .
а ) відповідь VBA на дії користувача ,
б) підпрограма для зміни властивостей об'єкта ,
в) засіб для зміни події ,
г) опис властивостей об'єкта.
а ) впорядковують об'єкти по їх важливості ,
б) об'єднують різні за призначенням об'єкти ,
в ) описують подібні властивості різних за призначенням об'єктів ,
г ) описують властивості подібних за призначенням об'єктів інтерфейсу .
а ) вікно ,
б) екранна форма ,
в) набір автоматично зафіксованих і однаково виконуваних операцій ,
г) набір властивостей об'єкта.
а ) літери ,
б) букви і цифри ,
в) знак підкреслення ,
г) прогалини .
а ) довжину його імені ,
б) ім'я макросу ,
в) вказівки на місце його збереження ,
г) опис макросу.
а ) ввести ім'я макросу ,
б) включати команди почала його записи ,
в) вказати місце його збереження ,
г ) включити команду кінця його записи .
а ) для автоматичного переходу в комірку , з якою повинен виконуватися макрос ,
б) для виконання макросу з поточної комірки ,
в) для виконання макросу з довільною осередку ,
г) для повного опис макросу.
а ) Range ("ім'я осередку" ) . Select ,
б) ActiveCell ,
в) Selection.Borders ( ) ,
г) Selection.Font.Bold
а ) Range ("ім'я осередку" ) . Select ,
б) ActiveCell ,
в) Selection.Borders ( ) ,
г) Selection.Font.Bold .
а ) Range ("ім'я осередку" ) . Select ,
б) Column ( ) . Select ,
в) Selection.Borders ( ) ,
г) Selection.Font.Bold .
а ) Range ("ім'я осередку" ) . Select ,
б) ActiveCell ,
в) With Selection.Borders ( ) ,
г) Selection.Font.Bold .
а ) в особистому книзі макросів ,
б) в цій (поточної) книзі ,
в) у новій книзі ,
г) в оперативній пам'яті ПК.
7. Самостійна робота
8. Підсумк уроку
9. Домашнє завдання