Редактор Visual Basic - як відкрити та використовувати його в Excel

Першим кроком до роботи з VBA в Excel є ознайомлення з редактором Visual Basic (також називається редактором VBA або редактором VB).

У цьому підручнику я висвітлю все, що потрібно знати про редактор VBA та деякі корисні параметри, які ви повинні знати під час кодування в Excel VBA.

Що таке редактор Visual Basic в Excel?

Редактор Visual Basic - це окрема програма, яка є частиною Excel і відкривається щоразу, коли ви відкриваєте книгу Excel. За замовчуванням він прихований, і щоб отримати до нього доступ, його потрібно активувати.

VB Editor - це місце, де ви зберігаєте код VB.

Отримати код у редакторі VB можна кількома способами:

  1. Коли ви записуєте макрос, він автоматично створює новий модуль у редакторі VB і вставляє код у цей модуль.
  2. Ви можете вручну ввести код VB у редакторі VB.
  3. Ви можете скопіювати код з іншої книги або з Інтернету та вставити його у редактор VB.

Відкриття редактора VB

Відкрити редактор Visual Basic в Excel можна різними способами:

  1. Використання комбінації клавіш (найпростіший і швидкий)
  2. Використання вкладки Розробник.
  3. Використання вкладок робочого аркуша.

Швидко пройдемося по кожному з них.

Комбінація клавіш для відкриття редактора Visual Basic

Найпростіший спосіб відкрити редактор Visual Basic - скористатися комбінацією клавіш - ALT + F11 (утримуйте клавішу ALT і натисніть клавішу F11).

Як тільки ви це зробите, він відкриє окреме вікно для редактора Visual Basic.

Цей ярлик працює як перемикач, тому при повторному використанні він поверне вас до програми Excel (без закриття редактора VB).

Ярлик для версії Mac - це Opt + F11 або Fn + Opt + F11

Використання вкладки Розробник

Щоб відкрити редактор Visual Basic зі стрічки:

  1. Натисніть вкладку Розробник (якщо ви не бачите вкладку Розробник, прочитайте, як її отримати).
  2. У групі Код натисніть Visual Basic.

Використання вкладки Робочий лист

Це менш використовуваний метод відкриття редактора Vb.

Перейдіть на будь-яку вкладку робочого аркуша, клацніть правою кнопкою миші та виберіть «Переглянути код».

Цей метод не просто відкриє редактор VB, він також перенесе вас до вікна коду для цього об’єкта аркуша.

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

Анатомія редактора Visual Basic в Excel

Коли ви вперше відкриваєте редактор VB, це може виглядати трохи приголомшливо.

Існують різні варіанти та розділи, які спочатку можуть здатися абсолютно новими.

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

У цьому розділі я розповім вам про різні частини програми Visual Basic Editor.

Примітка: Коли я почав користуватися VBA кілька років тому, я був у захваті від усіх цих нових опцій і вікон. Але коли ви звикнете працювати з VBA, вам буде зручно працювати з більшістю з них. І в більшості випадків вам не доведеться використовувати всі варіанти, лише повні руки.

Нижче наведено зображення різних компонентів редактора VB. Потім вони докладно описані в наступних розділах цього підручника.

Тепер давайте швидко пройдемося по кожному з цих компонентів і зрозуміємо, що він робить:

Рядок меню

Тут у вас є всі варіанти, які можна використовувати у редакторі VB. Це схоже на стрічку Excel, де у вас є вкладки та параметри для кожної вкладки.

Ви можете вивчити доступні параметри, натиснувши кожен елемент меню.

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

Панель інструментів

За замовчуванням у редакторі VB є панель інструментів, яка містить деякі корисні параметри, які вам, ймовірно, знадобляться найчастіше. Це так само, як панель швидкого доступу в Excel. Це дає вам швидкий доступ до деяких корисних опцій.

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

У більшості випадків панель інструментів за замовчуванням - це все, що вам потрібно під час роботи з VB Editor.

Ви можете перемістити панель інструментів над панеллю меню, натиснувши на три сірі крапки (на початку панелі інструментів) і перетягнувши її над панеллю меню.

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

Провідник проектів

Провідник проектів - це вікно зліва, у якому відображаються всі об’єкти, які зараз відкриті в Excel.

Коли ви працюєте з Excel, кожна відкрита книга або надбудова є проектом. І кожен із цих проектів може мати у собі колекцію об’єктів.

Наприклад, на зображенні нижче Провідник проектів показує дві відкриті книги (Книга1 та Книга2) та об’єкти в кожній книзі (аркуші, Ця робоча книга та Модуль у Книзі1).

Ліворуч від об’єктів є значок плюса, який можна використовувати для згортання списку об’єктів або розгортання та перегляду повного списку об’єктів.

Наступні об’єкти можуть бути частиною Провідника проектів:

  1. Усі відкриті книги - у кожній книзі (яку також називають проектом) ви можете мати такі об’єкти:
    • Об’єкт робочого аркуша для кожного робочого аркуша у робочій книзі
    • Об'єкт thisWorkbook який представляє саму книгу
    • Діаграма об'єкт для кожного аркуша діаграми (вони зустрічаються не так часто, як аркуші)
    • Модулі - Ось куди йде код, який генерується за допомогою макрореєстратора. Ви також можете написати або скопіювати та вставити код VBA тут.
  2. Усі відкриті надбудови

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

Комбінація клавіш для відкриття Провідника проектів - це Control + R (утримуйте клавішу керування, а потім натисніть R). Щоб закрити його, просто натисніть значок закриття у верхньому правому куті вікна Провідника проектів.

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

Вікно властивостей

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

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

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

Пов'язані: Приховування робочого аркуша в Excel (його неможливо легко приховати)

Вікно коду

Для кожного об’єкта, переліченого в Провіднику проектів, є вікно коду. Ви можете відкрити вікно коду для об’єкта, двічі клацнувши на ньому в області Провідника проектів.

Вікно коду - це місце, де ви напишете свій код або скопіюєте вставити код з іншого місця.

Коли ви записуєте макрос, його код потрапляє у вікно коду модуля. Excel автоматично вставляє модуль для розміщення коду в ньому під час запису макросу.

Пов'язані: Як запустити макрос (код VBA) у Excel.

Негайне вікно

Вікно Негайне найчастіше використовується при налагодженні коду. Одним із способів використання вікна Негайного є використання оператора Print.Debug у коді, а потім запуск коду.

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

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

За замовчуванням негайне вікно не відображається у редакторі VB. Ви можете отримати його за допомогою комбінації клавіш Control + G (або перейдіть на вкладку «Перегляд» та натисніть «Негайне вікно»).

Куди додати код у редакторі VB

Сподіваюся, тепер у вас є базове уявлення про те, що таке VB Editor і які всі його частини.

У цьому розділі цього підручника я покажу вам, де додати код VBA у редакторі Visual Basic.

Існує два місця, де можна додати код VBA в Excel:

  1. Вікно коду для об'єкта. Ці об’єкти можуть бути робочою книгою, аркушем, формою користувача тощо.
  2. Вікно коду модуля.

Вікно коду модуля проти вікна коду об'єкта

Дозвольте мені спочатку швидко прояснити різницю між додаванням коду в модулі та додаванням коду у вікні об’єктного коду.

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

У цьому випадку тригер відкриває книгу.

Аналогічно, якщо ви хочете захистити аркуш, як тільки активується інший аркуш, код для цього буде розміщено у вікні коду аркуша.

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

Пов'язані: Дізнайтесь більше про події у VBA.

Навпаки, код у модулі потрібно виконувати або вручну (або його також можна викликати з інших підпрограм).

Коли ви записуєте макрос, Excel автоматично створює модуль і вставляє в нього записаний код макросу. Тепер, якщо вам доведеться запустити цей код, вам потрібно вручну виконати макрос.

Додавання коду VBA до модуля

Під час запису макросу автоматично створюється модуль і вставляється в нього код, існують деякі обмеження при використанні записувача макросів. Наприклад, він не може використовувати цикли або умови If Then Else.

У таких випадках краще або скопіювати і вставити код вручну, або написати код самостійно.

Модуль можна використовувати для зберігання таких типів кодів VBA:

  1. Декларації: Ви можете оголошувати змінні в модулі. Оголошення змінних дозволяє вказати, який тип даних може містити змінна. Ви можете оголосити змінну лише для підпрограми або для всіх підпрограм у модулі (або всіх модулях)
  2. Підпрограми (процедури): Це код, який містить кроки, які потрібно виконати VBA.
  3. Функціональні процедури: Це код, який повертає єдине значення, і ви можете використовувати його для створення користувацьких функцій (також називаються функціями, визначеними користувачем, або UDF у VBA)

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

Додавання модуля в редактор VB

Нижче наведено кроки для додавання модуля:

  1. Клацніть правою кнопкою миші будь-який об’єкт книги (у якому ви хочете модуль).
  2. Наведіть курсор на опцію Вставка.
  3. Натисніть на модуль.

Це негайно створить папку під назвою Module та додасть об’єкт під назвою Module 1. Якщо у вас уже вставлений модуль, вищевказані кроки вставлятимуть інший модуль.

Після вставлення модуля ви можете двічі клацнути на об’єкті модуля в Провіднику проектів, і він відкриє вікно коду для нього.

Тепер ви можете скопіювати та вставити код або написати його самостійно.

Зняття модуля

Нижче наведено кроки для видалення модуля в Excel VBA:

  1. Клацніть правою кнопкою миші модуль, який потрібно видалити.
  2. Натисніть на опцію Видалити модуль.
  3. У діалоговому вікні, що відкриється, натисніть Ні.

Примітка: Ви можете експортувати модуль перед його видаленням. Він зберігається як файл .bas, і ви можете імпортувати його в інший проект. Щоб експортувати модуль, клацніть правою кнопкою миші на модулі та натисніть «Експортувати файл».

Додавання коду до вікна коду об’єкта

Щоб відкрити вікно коду для об’єкта, просто двічі клацніть на ньому.

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

Зауважте, що деякі об’єкти дозволяють вибрати подію, для якої потрібно написати код.

Наприклад, якщо ви хочете написати код для того, щоб щось сталося при зміні виділення на аркуші, вам потрібно спочатку вибрати робочі аркуші зі спадного меню у верхньому лівому куті вікна коду, а потім вибрати подію зміни зі спадного меню -вниз праворуч.

Примітка: Ці події є специфічними для об’єкта. Відкривши вікно коду для книги, ви побачите події, пов’язані з об’єктом книги. Коли ви відкриваєте вікно коду для аркуша, ви побачите події, пов'язані з об'єктом аркуша.

Налаштування редактора VB

Хоча налаштування редактора Visual Basic за замовчуванням достатньо хороші для більшості користувачів, вони дозволяють вам додатково налаштувати інтерфейс та кілька функціональних можливостей.

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

Щоб налаштувати середовище редактора VB, клацніть Інструменти на панелі меню, а потім натисніть Параметри.

Це відкриє діалогове вікно Параметри, яке надасть вам усі параметри налаштування у редакторі VB. У діалоговому вікні "Параметри" є чотири вкладки (як показано нижче), які мають різні параметри налаштування для редактора Visual Basic.

Давайте швидко переглянемо кожну з цих вкладок та важливі параметри в кожній.

Вкладка редактора

Хоча вбудовані налаштування в більшості випадків працюють нормально, дозвольте мені все -таки переглянути параметри на цій вкладці.

Оскільки ви набуваєте навичок роботи з VBA в Excel, можливо, ви захочете налаштувати редактор VB, використовуючи деякі з цих опцій.

Автоматична перевірка синтаксису

Під час роботи з VBA в Excel, як тільки ви зробите синтаксичну помилку, вас зустріне спливаюче діалогове вікно (з деяким описом помилки). Щось, як показано нижче:

Якщо вимкнути цю опцію, це спливаюче вікно не з'явиться, навіть якщо ви зробите синтаксичну помилку. Однак у тексті коду буде змінено колір, щоб вказати на помилку.

Якщо ви новачок, рекомендую залишити цю опцію включеною. Оскільки ви набуваєте більше досвіду кодування, ви можете почати вважати ці спливаючі вікна дратівливими, а потім ви можете вимкнути цю опцію.

Вимагати декларації змінних

Це один з варіантів, який я рекомендую включити.

Коли ви працюєте з VBA, ви б використовували змінні для зберігання різних типів даних та об’єктів.

Коли ви вмикаєте цю опцію, вона автоматично вставляє оператор "Option Explicit" у верхній частині вікна коду. Це змушує вас оголосити всі змінні, які ви використовуєте у своєму коді. Якщо ви не оголошуєте змінну і намагаєтесь виконати код, вона покаже помилку (як показано нижче).

У наведеному вище випадку я використовував змінну Var, але не оголошував її. Тому, коли я намагаюся запустити код, він показує помилку.

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

Примітка: Коли ви вмикаєте цю опцію, вона не впливає на існуючі модулі.

Учасник автоматичного списку

Ця опція є досить корисною, оскільки допомагає отримати список властивостей методів для об’єкта.

Наприклад, якщо я хочу видалити аркуш (Sheet1), мені потрібно використовувати рядок Sheet1.Delete.

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

Функція автоматичного списку чудова, оскільки дозволяє:

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

Ця опція увімкнена за замовчуванням, і я рекомендую залишити її такою.

Автоматичні параметри швидкої інформації

Коли ви вводите функцію на робочому аркуші Excel, вона показує вам деяку інформацію про функцію - наприклад, аргументи, які вона приймає.

Аналогічно, коли ви вводите функцію у VBA, вона показує вам деяку інформацію (як показано нижче). Але щоб це сталося, вам потрібно переконатися, що опція Автоматична швидка інформація включена (за замовчуванням).

Параметри автоматичних даних

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

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

У наведеному вище прикладі, як тільки я наводжу курсор на змінну (var), вона показує значення, яке вона утримує.

Ця опція увімкнена за замовчуванням, і я рекомендую залишити її такою.

Автовідступ

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

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

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

У наведеному вище прикладі, після того як я напишу рядок Debug.Print і натисну Enter, він почнеться прямо під ним (з тим самим рівнем відступу).

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

Ви можете змінити значення відступу, якщо хочете. Я зберігаю значення за замовчуванням.

Редагування тексту перетягуванням

Якщо цей параметр увімкнено, він дозволяє вибрати блок коду та перетягнути його.

Це економить час, оскільки вам не потрібно спочатку вирізати, а потім вставляти його. Ви можете просто вибрати та перетягнути його.

Ця опція увімкнена за замовчуванням, і я рекомендую залишити її такою.

За замовчуванням для перегляду повного модуля

Якщо цей параметр увімкнено, ви зможете побачити всі процедури в модулі в одному списку, який можна прокручувати.

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

Ця опція увімкнена за замовчуванням, і я рекомендую залишити її такою.

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

Роздільник процедур

Якщо цей параметр увімкнено, ви побачите лінію (своєрідний роздільник) між двома процедурами.

Я вважаю це корисним, оскільки воно візуально показує, коли одна процедура закінчується, а інша починається.

Він увімкнено за замовчуванням, і я рекомендую залишити його таким.

Вкладка Формат редактора

За допомогою параметрів на вкладці Формат редактора ви можете налаштувати вигляд коду у вікні коду.

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

Щоб внести зміни, спочатку потрібно вибрати параметр у полі Кольори коду. Після вибору параметра ви можете змінити для нього передній план, фон та колір індикатора.

На цій вкладці також можна встановити тип і розмір шрифту. Рекомендується використовувати шрифт із фіксованою шириною, наприклад Courier New, оскільки він робить код більш читабельним.

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

Нижче наведено зображення, де я вибрав точку зупину, і я можу змінити її форматування.

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

За замовчуванням панель індикатора полів увімкнена, і я рекомендую залишити її такою.

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

Загальна вкладка

На вкладці Загальні є багато варіантів, але вам не потрібно нічого змінювати.

Я рекомендую залишити всі варіанти такими, як вони є.

Одним з важливих варіантів, про які слід знати на цій вкладці, є обробка помилок.

За замовчуванням вибрано «Перерва на необроблені помилки», і я рекомендую залишити його таким.

Ця опція означає, що якщо у вашому коді трапляється помилка, і ви ще не обробляли цю помилку у своєму коді, вона розривається і зупиняється. Але якщо ви усунули помилку (наприклад, за допомогою опцій On Error Resume Next або On Error Goto), вона не зламається (оскільки помилки не обробляються).

Док -станція

На цій вкладці ви можете вказати, які вікна ви хочете закріпити.

Стикування означає, що ви можете виправити положення вікна (наприклад, дослідника проектів або вікна властивостей), щоб воно не плавало навколо, і ви можете переглядати всі різні вікна одночасно.

Якщо ви не док-станції, ви зможете переглядати одне вікно за раз у повноекранному режимі, і вам доведеться переключитися на інше.

Я рекомендую зберегти налаштування за замовчуванням.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave