VBA - Відкриття та використання редактора Visual Basic (VBE) у Excel

Цей підручник покаже вам, як відкривати та програмувати у редакторі Visual Basic у VBA.

Відкриття редактора Visual Basic

Є кілька способів доступу до редактора Visual Basic (VBE) у Excel.

Натисніть Alt + F11 на клавіатурі.

АБО

Натисніть Перегляд> Макроси> Переглянути макроси. Звідси можна Редагувати існуючий макрос або Створити новий. Будь -який варіант відкриває редактор VB.

АБО

Розробник> Visual Basic

Примітка. Якщо ви не бачите стрічку розробника, її потрібно ввімкнути.

Щоб увімкнути стрічку розробника

Натисніть на Файл на стрічці та перейдіть вниз Варіанти. В Налаштуйте стрічку варіанти, позначте Розробник прапорець. Це за замовчуванням вимкнено, тому вам потрібно буде ввімкнути його, щоб побачити вкладку на стрічці.

Натисніть в порядку.

На головній стрічці з’явиться вкладка «Розробник». Натисніть на Visual Basic на початку стрічки, щоб отримати доступ до редактора Visual Basic.

Розуміння екрану VBE

Екран VBE показаний на графіку нижче.

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

Провідник проектів дозволяє побачити, як організований проект, у якому ви працюєте. Ви можете побачити, скільки модулів і форм зберігається в проекті, і ви можете переміщатися між цими модулями та формами. Модуль - це місце, де зберігається код у вашій книзі, коли ви записуєте макрос, він зберігатиметься у стандартному модулі, який за замовчуванням буде називатися "Модуль 1 '.

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

Двічі клацніть по модулю, щоб перейти до коду цього модуля.

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

Тип модулів

Модулі організовані в 5 різних типів.

  1. Стандартні модулі - більшість вашого коду піде в модулі такого типу. Коли ви записуєте макрос, він поміщається у стандартний модуль. Коли ви пишете загальну процедуру, яка буде використовуватися у вашій книзі, вона також зазвичай входить у стандартний модуль.
  2. Модулі робочого зошита - цей модуль містить код, унікальний для цієї окремої книги. Більшість коду в модулях такого типу відомі як ПОДІЇ. Подія може статися, наприклад, під час відкриття або закриття книги. Модуль також може містити код, написаний вами самостійно та використаний подіями.
  3. Листові модулі - цей модуль містить унікальний для цього аркуша код. Вони можуть виникати, наприклад, при натисканні на аркуші ( Натисніть Подія) або при зміні даних у клітинці. Цей модуль також може містити код, написаний вами самостійно та викликаний подіями.
  4. Формуйте модулі - це модуль за користувацькою формою, яку ви можете створити. Наприклад, ви можете створити форму для зберігання реквізитів рахунку -фактури з кнопкою OK, код за кнопкою (подія клацання) містить код, який буде запускатися при натисканні на кнопку.
  5. Модулі класу - цей модуль використовується для створення об'єктів під час виконання. Модуль класу використовується передовими програмістами VBA і буде розглянуто пізніше.

Вставка модуля або форми у ваш код

Щоб вставити новий модуль у свій код, натисніть на Вставити на панелі меню та натисніть Модуль.

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

Щоб вставити нову форму користувача у свій код, виберіть UserForm варіант.

Нова форма користувача з'явиться у Провідник проектів і буде показано у вікні коду праворуч.

Ви також можете вставити Модуль класу

Модуль класу використовується для вставлення об’єктів у ваш проект VBA.

Видалення модуля або форми з Провідника проектів

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

Натисніть Видалити (в цьому випадку UserForm1… )

АБО

Натисніть на Файл меню, а потім натисніть Видалити (UserForm1).

З'явиться вікно попередження із запитом, чи хочете ви експортувати форму або модуль, перш ніж видалити їх. Експорт форми або модуля дозволяє зберегти її як окремий файл для використання в іншому проекті Excel в інший час.

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

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

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

Натисніть F4 або клацніть Перегляд, Вікно властивостей.

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

Коли ви записуєте макрос, він автоматично поміщається у стандартний модуль. Модуль буде називатися "Модуль 1 ' і будь -який код, що міститься в цьому модулі, доступний для використання у вашому проекті. Вам слід перейменувати ваш модуль на щось важливе, що полегшить пошук вашого коду, якщо ви додасте до проекту кілька модулів.

Ви також можете перейменувати свої форми.

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

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

Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!

Вікно коду

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

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

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

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

Розуміння Кодексу

Існує 2 види процедур - Додаткові процедури та Функціональні процедури.

Підпроцедури

Макрореєстратор може записувати лише підпроцедури. Процедура Sub робить речі. Вони виконують такі дії, як форматування таблиці або створення зведеної таблиці, або у прикладі сітки, змінюючи параметри перегляду вашого активного вікна. Більшість написаних процедур - це підпроцедури. Усі макроси є підпроцедурами.

Додаткова процедура починається з a Підп вираз і закінчується на End Sub заяву. За назвою процедури завжди йдуть дужки.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = НеправдаEnd Sub

Функціональні процедури

Процедура функції повертає значення. Це значення може бути єдиним значенням, масивом, діапазоном клітинок або об’єктом. Функції зазвичай виконують певний тип обчислення. Функції в Excel можна використовувати з майстром функцій або їх можна викликати з підпроцедур.

123 Функція Кілограми (фунти як подвійні)Кілограми = (фунти/2.2)Функція завершення

Цю функцію можна використовувати в діалоговому вікні Вставити функцію в Excel для перетворення фунтів у кілограми.

Створення нового Порядку

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

або ви можете натиснути на значок на панелі інструментів

З'явиться таке діалогове вікно

  1. Введіть назву вашої нової процедури у вікні з назвою - вона повинна починатися з літери алфавіту і може містити літери та цифру та мати максимум 64 символи.
  2. Ви можете мати Додаткова процедура, а Процедура функціонування або a Власність процедуру. (Властивості використовуються в модулях класу та встановлюють властивості для елементів керування ActiveX, які ви могли створити).
  3. Ви також можете визначити обсяг процедури Громадські або Приватний. Якщо процедура є загальнодоступною (за замовчуванням), то її можуть використовувати всі модулі проекту, тоді як, якщо процедура є приватною, її зможе використовувати лише цей модуль.
  4. Ви можете оголосити локальні змінні в цій процедурі як статику (це стосується області дії змінної та робить змінну рівня локальної процедури відкритою для всього модуля). Ми не будемо використовувати цю опцію.

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

Потім ви вводите свій код між операторами Sub і End Sub.

АЛЬТЕРНАТИВНО - Ви можете вводити оператори Sub та End Sub у своєму модулі точно так, як показано вище. Вам не потрібно ставити слово Public перед словом sub - якщо це слово пропущено, усі процедури в модулі автоматично вважаються відкритими.

Потім набираєте Підп а потім назву вашої процедури, за якою йдуть дужки.

тобто:

1 Підтест ()

The End Sub заява з'явиться автоматично.

Програмування VBA | Генератор коду працює для вас!

Написання коду, який легко зрозуміти та орієнтуватись

Додавання коментарів

Візьміть за звичку додавати коментарі у своєму коді, щоб на пізнішому етапі нагадати про функціональність коду.

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

Клацніть правою кнопкою миші на панелях інструментів.

Виберіть Редагувати.

Натисніть кнопку коментаря, щоб вставити коментар у свій код.

ПРИМІТКА: Ви зазвичай використовуєте лише кнопку блокування коментарів, коли у вас є кілька рядків коду, які ви хочете коментувати (а не видаляти). Для одного коментаря легше використати апостроф.

Відступи

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

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

UpperCase проти LowerCase

VBA налаштовує весь код на належний регістр, тому, якщо ви введете ВСЕ ВІЛЬНО З ВЕЛИКИХ ЗАЛОГІВ або все в нижньому регістрі, він змінить код, щоб він був у належному регістрі!

Програмування VBA | Генератор коду працює для вас!

Автозаповнення

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

Помилки перехоплення та налагодження

Під час написання коду VBA можуть виникнути 4 типи помилок - синтаксичні помилки, помилки компіляції, помилки під час виконання та логічні помилки.

Синтаксичні помилки

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

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

Помилки компіляції

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

Програмування VBA | Генератор коду працює для вас!

Помилки під час виконання

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

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

Натисніть Відлагоджувати. Код зупиниться на помилці і виділить помилку жовтим кольором, що дозволить виправити помилку.

Змініть аркуш 4 на аркуш 2 (оскільки аркуш 2 існує, а аркуш 4 не існує).

Натисніть F5 або натисніть на Продовжити на панелі інструментів.

Логічні помилки

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

Існує 2 типи пасток помилок

У разі помилки Перейдіть до

Нижче наведено код, щоб відкрити діалогове вікно «Відкрити файл» - воно видасть нам помилку, якщо користувач натисне Скасувати.

Під час запуску коду з'являється діалогове вікно Відкрити файл.

Після натискання кнопки «Скасувати» виникла помилка.

Наступна пастка помилок продовжить код до функції виходу коду та поверне повідомлення.

Для виходу з цієї функції використовується On Error GoTo.

Після запуску коду та натискання кнопки «Скасувати» з’явиться вікно повідомлення.

Увімкнути Помилка Відновити Далі

Якщо ви поставите Увімкнути Помилка Відновити Далі Заява у вашому коді, рядок, що містить помилку, буде проігноровано, і код продовжиться.

Наприклад, якщо користувач натисне «Скасувати» у наведеному нижче коді, код не видасть вам помилку під час виконання, він просто завершиться без того, що код нічого не зробить.

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

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

wave wave wave wave wave