Негайне вікно Excel VBA - 5 чудових способів його використання!

"Негайне вікно" може бути корисним інструментом для роботи з VBA в Excel.

Негайне вікно дозволяє швидко виконувати такі дії, як:

  • Отримайте інформацію про файли Excel (наприклад, кількість аркушів у книзі або назву книги)
  • Швидко отримуйте інформацію про Debug.Print
  • Запустити рядок коду за лічені секунди
  • Виконати макрос (або викликати функцію)
  • Отримати інформацію про змінні (або встановити значення або змінні)

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

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

Давайте розпочнемо!

Що таке негайне вікно в Excel VBA?

Негайне вікно є частиною редактора VB, яке можна використовувати для швидкої роботи.

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

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

Де знайти негайне вікно?

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

Нижче наведено кроки, щоб відкрити редактор VB та зробити вікно негайного перегляду видимим:

  1. Натисніть вкладку «Розробник» на стрічці Excel (якщо ви не бачите вкладку Розробник, натисніть тут, щоб дізнатися, як її отримати)
  2. У групі кодів натисніть «Visual Basic». Відкриється редактор VB
  3. У редакторі VB натисніть опцію «Перегляд» у меню
  4. Натисніть на Негайне вікно. Це призведе до того, що негайне вікно з'явиться у редакторі VB.

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

  • Щоб відкрити редактор VB - ALT + F11 (це працює, навіть якщо у вас немає вкладки Розробник на стрічці)
  • Щоб показати негайне вікно - Control + G (використовуйте цей, редактор VB відкритий)

Приклади використання негайного вікна в Excel VBA

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

Отримайте інформацію про файли/робочі зошити

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

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

? ActiveWorkbook.Sheets.Count

Це миттєво повідомить вам загальну кількість аркушів у активній книзі.

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

The? (знак питання) слід використовувати перед запитом, щоб VBA могла зрозуміти, що ви ставите запитання. Якщо ви не використовуєте цей знак питання, негайне вікно не надасть вам подробиць/відповіді.

Тепер це дійсно простий приклад, коли вікно «Негайне вікно» дає вам деяку інформацію та економить час.

Нижче наведено ще кілька прикладів:

Щоб отримати назву активної книги

? ActiveWorkbook.Name

Щоб отримати назву активного аркуша

? ActiveSheet.Name

Щоб отримати шлях до книги (адреса, де вона збережена)

? ActiveWorkbook.Path

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

Отримайте інформацію про Debug.Print

У Excel VBA Debug.Print використовується для миттєвого відображення значення змінної у вікні безпосереднього доступу.

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

Sub DisplayMessage () Debug.Print "Good Morning" End Sub

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

Наприклад, якщо ви хочете отримати назви всіх аркушів у книзі, ви можете скористатися наведеним нижче кодом:

Sub GetSheetNames () Для кожного sh в ActiveWorkbook.Sheets Debug.Print sh.Name Next sh End Sub

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

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

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

Запуск макросу (або функції)

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

Щоб запустити макрос, все, що вам потрібно зробити, це ввести ім’я макросу у вікні безпосередньо та натиснути клавішу Enter (курсор повинен знаходитися в кінці імені макросу, щоб це працювало).

Нижче наведено приклад, коли як тільки ви вводите ім’я макросу у вікні безпосередньо, він запускає код (де код відображає повідомлення “Доброго ранку” у вікні безпосередньо).

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

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

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

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

Виконання рядка коду (або декількох рядків коду)

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

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

Варіант використання, коли це може бути корисним,-це коли потрібно швидко показати всі аркуші у книзі.

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

Для кожного аркуша в цій книзі. Аркуші: Sheet.Visible = True: Наступний аркуш

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

Кожна частина розділена символом: (двокрапка), що діє як розрив рядка. Це дозволяє використовувати цикл For Next у безпосередньому вікні, щоб пройти кожен аркуш і змінити видиму властивість на TRUE (що відкриває будь -який прихований аркуш).

Отримати змінні значення

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

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

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

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 To 10 k = k + i Next i Debug.Print i, k End Sub

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

Якщо він не дає очікуваних результатів, ви можете налагодити код.

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

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

Встановіть значення змінної під час налагодження

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

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

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

Це стає набагато кориснішим, коли ви пишете складні коди і хочете налагодити певні цикли.

Припустимо, у вас є код, як показано нижче:

Sub UnhideSheets () For i = 1 To Worksheets.Count Debug.Print Sheets (i) .Name Next i End Sub

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

Якщо ви не хочете перераховувати назви всіх аркушів, а лише аркушів після 10 -го аркуша, ви можете розмістити точку зупину у другому рядку циклу (щоб після цього рядка нічого не виконувалося), а потім змінити змінна "i" на 11.

Щоб змінити назву змінної у безпосередньому вікні, введіть наступний рядок:

i = 11

Це гарантуватиме, що перші 10 разів циклу будуть проігноровані, а значення змінної встановлено на 11.

Стикування/розблокування негайного вікна

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

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

Нижче описано, як можна змінити налаштування док -станції для безпосереднього вікна:

  1. Натисніть опцію Інструменти в меню редактора VB
  2. Натисніть «Параметри»
  3. У діалоговому вікні Параметри натисніть на останню вкладку - Стикування
  4. Установіть прапорець Негайне вікно, щоб зробити його стикувальним, і зніміть прапорець, щоб його не можна було закріпити.
  5. Натисніть OK

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

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

Негайне вікно не відображається - ось кілька способів його отримати

Причин цього може бути кілька.

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

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

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

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

  1. Відкрийте редактор VB
  2. Натисніть Ctrl-G, щоб зосередити увагу на безпосередньому вікні (або клацніть опцію Перегляд у меню, а потім клацніть миттєве вікно)
  3. Утримуйте клавішу ALT, а потім натисніть клавішу пробілу. Це покаже випадаючі параметри для негайного вікна.
  4. Натисніть M (для переміщення)
  5. Для переміщення вікна використовуйте клавіші зі стрілками
  6. Як тільки ви зрозумієте, де він знаходиться, зробіть його більшим

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

Інша річ, яку ви можете спробувати, це зробити нерозблоковане негайне вікно (перейдіть до Інструменти -> Параметри -> Док -станція та зніміть прапорець біля негайного вікна). Це спрацювало для деяких людей.

Вам також можуть сподобатися такі статті:

  • Зошит особистих макросів Excel | Зберегти та використовувати макроси у всіх робочих книгах
  • Цикли Excel VBA: для наступного, Do while, Do Until, для кожного (з прикладами)
  • Робота з робочими листами за допомогою Excel VBA
  • Створення користувальницької функції (UDF) у Excel VBA
wave wave wave wave wave