Кодування Excel VBA: робота з вікном коду

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

Згортання та розгортання вікон коду VBA

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

Кодування Excel VBA: робота з вікном коду

Перевантаження вікна коду не дуже приємне.

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

Щоб розгорнути вікно коду, натисніть кнопку Розгорнути на його рядку заголовка (прямо біля X). Або просто двічі клацніть його рядок заголовка, щоб розгорнути його. Щоб відновити початковий розмір вікна коду, натисніть кнопку Відновити. Коли вікно розгорнуто, його рядок заголовка не видно, тому ви знайдете кнопку Відновити під рядком заголовка VBE.

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

Ви можете швидко перемикатися між вікнами коду, натискаючи Ctrl+F6. Якщо ви повторюєте цю комбінацію клавіш, ви продовжуєте циклічно прокручувати всі відкриті вікна коду. Натискання Ctrl+Shift+F6 перемикає вікна в зворотному порядку. (Для отримання додаткової інформації перегляньте ці комбінації клавіш Excel VBA .)

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

Створення модуля VBA

Загалом, модуль Excel VBA може містити три типи коду:

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

Один модуль VBA може зберігати будь-яку кількість підпроцедур, процедур функцій і декларацій. Ну, є обмеження — близько 64 000 символів на модуль. Навряд чи ви навіть наблизитесь до межі в 64 000 символів. Але якщо ви це зробили, рішення просте: просто вставте новий модуль.

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

Отримання коду VBA в модулі

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

  • Введіть код безпосередньо.
  • Використовуйте записник макросів Excel, щоб записати свої дії та перетворити ці дії на код VBA.
  • Скопіюйте код з одного модуля та вставте його в інший.

Пряме введення коду Excel VBA

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

Використовуйте клавішу Tab, щоб зробити відступ у деяких рядках, щоб полегшити читання коду. Робити відступи не обов’язково, але це хороша звичка. Вивчаючи кодування Excel VBA, ви зрозумієте, чому відступи рядків коду корисні.

Один рядок коду VBA може бути стільки, скільки вам потрібно. Однак ви можете використовувати символи продовження рядка, щоб розбити довгі рядки коду. Щоб продовжити один рядок коду (також відомий як оператор) від одного рядка до наступного, закінчуйте перший рядок пробілом, за яким слід підкреслити (_). Потім продовжте твердження в наступному рядку. І не забувайте про простір. Символ підкреслення, перед яким не стоїть пробіл, не спрацює.

Ось приклад одного оператора, розділеного на три рядки:

Selection.Sort Key1:=Діапазон("A1"), _
  Order1:=xlAscending, Header:=xlGuess, _
  Орієнтація:=xlTopToBottom

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

Інженери в білих халатах, які розробили VBE, передбачали, що люди будуть робити помилки. Тому VBE має кілька рівнів скасування та повторного виконання. Якщо ви видалили непотрібну заяву, натисніть кнопку «Скасувати» на панелі інструментів (або натискайте Ctrl+Z), доки оператор не з’явиться знову. Після скасування ви можете натиснути кнопку Повторити, щоб виконати відмінені зміни.

Чи готові ви ввести реальний код? Спробуйте виконати такі дії:

Створіть нову книгу в Excel.

Натисніть Alt+F11, щоб активувати VBE.

Натисніть назву нової книги у вікні Проект.

Виберіть Вставити → Модуль, щоб вставити модуль VBA в проект.

Введіть наступний код у модуль:

Sub GuessName()
Msg = "Ваше ім'я " & Application.UserName & "?"
Відповідь = MsgBox(Msg, vbYesNo)
Якщо Ans = vbNo, тоді MsgBox "О, не варто забувати".
Якщо Ans = vbYes Тоді MsgBox "Я, мабуть, екстрасенс!"
Кінець суб

Розмістіть курсор у будь-якому місці введеного тексту та натисніть F5, щоб виконати процедуру.

F5 — це ярлик «Виконати» → «Виконати допоміжну форму/форму користувача». Якщо ви ввели код правильно, Excel виконує процедуру, і ви можете відповісти на просте діалогове вікно. Текст у діалоговому вікні буде відрізнятися від тексту, показаного тут.

Кодування Excel VBA: робота з вікном коду

Процедура GuessName відображає це діалогове вікно.

Коли ви вводите код, перерахований на кроці 5, ви можете помітити, що VBE вносить деякі зміни до тексту, який ви вводите. Наприклад, після введення оператора Sub, VBE автоматично вставляє оператор End Sub. І якщо ви пропустите пробіл перед або після знака рівності, VBE вставить пробіл для вас. Крім того, VBE змінює колір і великі літери деяких текстів. Це все цілком нормально. Це просто спосіб VBE зберігати речі акуратними та читабельними.

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

Для запису цей простий макрос Excel використовує такі поняття:

  • Визначення підпроцедури (перший рядок)
  • Призначення значень змінним (повідомлення та відповіді)
  • Конкатенація (приєднання) рядка (за допомогою оператора &)
  • Використання вбудованої функції VBA (MsgBox)
  • Використання вбудованих констант VBA (vbYesNo, vbNo і vbYes)
  • Використання конструкції If-Then (двічі)
  • Завершення підпроцедури (останній рядок)

Використання записувача макросів Excel VBA

Інший спосіб отримати код у модуль VBA – це записувати свої дії за допомогою записувача макросів Excel.

До речі, ви не можете записати описану вище процедуру GuessName. Ви можете записувати лише те, що можна робити безпосередньо в Excel. Відображення вікна повідомлення не входить у звичайний репертуар Excel. (Це справа VBA.) Записувач макросів корисний, але в багатьох випадках вам, ймовірно, доведеться ввести принаймні деякий код вручну.

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

Активуйте робочий аркуш у книзі.

Підійде будь-який аркуш Excel.

Перейдіть на вкладку Розробник і переконайтеся, що Використовувати відносні посилання не виділено.

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

Виберіть «Розробник» → «Код» → «Записати макрос» або клацніть піктограму поруч із індикатором «Готово» у лівому кінці рядка стану.

Excel відображає діалогове вікно запису макросу.

У діалоговому вікні «Запис макросу» введіть ім’я макросу TenByTen, вкажіть, що ви хочете, щоб макрос зберігався в цій книзі, і натисніть Shift+T для комбінації клавіш.

Макрос можна виконати, натиснувши Ctrl+Shift+T.

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

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

Натисніть значок «Новий аркуш» праворуч від останньої вкладки аркуша.

Excel вставляє новий аркуш.

Виділіть весь стовпець K (11-й стовпець) і натисніть Ctrl+Shift+стрілка вправо; потім клацніть правою кнопкою миші будь-який вибраний стовпець і виберіть у контекстному меню пункт Приховати.

Excel приховує всі вибрані стовпці.

Виділіть весь рядок 11 і натисніть Ctrl+Shift+стрілка вниз; потім клацніть правою кнопкою миші на будь-якому виділеному рядку та виберіть Сховати у контекстному меню.

Excel приховує всі вибрані стовпці.

Виберіть клітинку A1.

Виберіть Розробник → Код → Зупинити запис або натисніть кнопку Зупинити запис у рядку стану (маленький квадрат). Excel припиняє записувати ваші дії.

Щоб переглянути цей щойно записаний макрос, натисніть Alt+F11, щоб активувати VBE. Знайдіть назву книги у вікні проекту. Ви бачите, що в проекті вказано новий модуль. Назва модуля залежить від того, чи були у вас інші модулі в книзі, коли ви почали записувати макрос. Якщо ви цього не зробили, модуль називається Module1. Ви можете двічі клацнути модуль, щоб переглянути вікно коду для модуля.

Ось код, згенерований вашими діями:

Sub TenByTen()
'
' TenByTen Макрос
'
' Комбінація клавіш: Ctrl+Shift+T
'
  Sheets.Add After:=ActiveSheet
  Стовпці("K:K").Виберіть
  Діапазон(Вибір, Вибір. Кінець(xlToRight)).Вибрати
  Selection.EntireColumn.Hidden = True
  Рядки("11:11").Виберіть
  Діапазон(Вибір, Вибір. Кінець(xlDown)).Вибрати
  Selection.EntireRow.Hidden = True
  Діапазон ("A1"). Виберіть
Кінець суб

Щоб спробувати цей макрос, активуйте будь-який робочий аркуш і натисніть клавішу швидкого доступу, яку ви призначили на кроці 4: Ctrl+Shift+T.

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

Виберіть Розробник → Код → Макроси. Любителі клавіатури можуть натиснути Alt+F8.

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

Виберіть макрос у списку (у цьому випадку TenByTen).

Натисніть кнопку Виконати.

Excel виконує макрос, і ви отримуєте новий аркуш з десятьма видимими рядками і десятьма видимими стовпцями.

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

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

Копіювання коду VBA

Останнім методом отримання коду в модуль VBA є копіювання його з іншого модуля або з іншого місця (наприклад, з веб-сайту). Наприклад, процедура Sub або Function, яку ви пишете для одного проекту, також може бути корисною в іншому проекті. Замість того, щоб витрачати час на повторний введення коду, ви можете активувати модуль і використовувати звичайні процедури копіювання та вставки в буфер обміну. (Вам, мабуть, дуже подобаються комбінації клавіш Ctrl+C для копіювання та Ctrl+V для вставки.) Після вставки коду в модуль VBA ви можете змінити код, якщо необхідно.

До речі, ви знайдете багато прикладів коду VBA в Інтернеті. Якщо ви хочете спробувати їх, виберіть код у своєму браузері та натисніть Ctrl+C, щоб скопіювати його. Потім активуйте модуль і натисніть Ctrl+V, щоб вставити його.

Коли ви копіюєте код з веб-сайту, іноді це вимагає певного виправлення. Наприклад, символи лапок можуть бути «розумними лапками», і їх потрібно перетворити на прості символи лапок. А іноді навколо з’являються довгі черги. Помилкові твердження легко помітити у VBE, оскільки вони відображаються червоним кольором.


Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows. Microsoft Word відкриває файли в режимі лише для читання, що робить неможливим їх редагування? Не хвилюйтеся, методи наведено нижче

Як виправити неправильний друк документів Microsoft Word

Як виправити неправильний друк документів Microsoft Word

Як виправити помилки під час друку неправильних документів Microsoft Word Помилки під час друку документів Word зі зміненими шрифтами, безладними абзацами, відсутнім текстом або втраченим вмістом є досить поширеними. Однак не варто

Зітріть малюнки ручкою та маркером на слайдах PowerPoint

Зітріть малюнки ручкою та маркером на слайдах PowerPoint

Якщо ви використовували перо або маркер для малювання на слайдах PowerPoint під час презентації, ви можете зберегти малюнки для наступної презентації або стерти їх, щоб наступного разу, коли ви показуватимете їх, розпочали з чистих слайдів PowerPoint. Дотримуйтесь цих інструкцій, щоб стерти малюнки пером і маркером: Стирання рядків на одній з […]

Вміст бібліотеки стилів у SharePoint 2010

Вміст бібліотеки стилів у SharePoint 2010

Бібліотека стилів містить файли CSS, файли мови розширюваної мови таблиць стилів (XSL) та зображення, які використовуються попередньо визначеними основними сторінками, макетами сторінок та елементами керування в SharePoint 2010. Щоб знайти файли CSS у бібліотеці стилів сайту видавництва: виберіть «Дії сайту»→ «Перегляд». Весь вміст сайту. З’являється вміст сайту. Бібліотека Style знаходиться в […]

Форматуйте числа в тисячах і мільйонах у звітах Excel

Форматуйте числа в тисячах і мільйонах у звітах Excel

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

Як ділитися сайтами SharePoint і слідкувати за ними

Як ділитися сайтами SharePoint і слідкувати за ними

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

Як перетворити дати в юліанські формати в Excel

Як перетворити дати в юліанські формати в Excel

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

Як створити веб-програму Access

Як створити веб-програму Access

Ви можете створити веб-програму в Access 2016. Так що ж таке веб-програма? Ну, веб означає, що він онлайн, а додаток — це просто скорочення від «додаток». Користувацька веб-програма — це онлайн-додаток для баз даних, доступ до якого здійснюється з хмари за допомогою браузера. Ви створюєте та підтримуєте веб-програму у настільній версії […]

Панель швидкого запуску в SharePoint 2010

Панель швидкого запуску в SharePoint 2010

Більшість сторінок у SharePoint 2010 відображають список посилань навігації на панелі швидкого запуску ліворуч. Панель швидкого запуску відображає посилання на пропонований вміст сайту, наприклад списки, бібліотеки, сайти та сторінки публікації. Панель швидкого запуску містить два дуже важливі посилання: Посилання на весь вміст сайту: […]

Що означають повідомлення про помилки розв’язувача в Excel?

Що означають повідомлення про помилки розв’язувача в Excel?

Для простих задач Solver в Excel зазвичай швидко знаходить оптимальні значення змінної Solver для цільової функції. Але в деяких випадках Solver має проблеми з пошуком значень змінної Solver, які оптимізують цільову функцію. У цих випадках Solver зазвичай відображає повідомлення або повідомлення про помилку, що описує або обговорює проблему, яка […]