Вступ до Debug.Print та MsgBox
Свайпніть щоб показати меню
Обидва способи дозволяють переглядати значення під час виконання коду, але призначені для різних аудиторій, і плутанина між ними — поширена початкова звичка, яку варто свідомо виправляти.
Debug.Print
Debug.Print [outputlist]
outputlist— один або декілька виразів для виведення, які можна об'єднувати за допомогою;або&;- Без дужок, без повернення значення — це оператор, а не функція;
- Завжди виводить у Вікно негайного виконання.
Debug.Print total ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space
MsgBox
MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done." ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm") ' function form — parentheses required
Дужки навколо аргументів MsgBox використовуються лише тоді, коли потрібно зберегти повернуте значення. Якщо використовується як простий оператор (без присвоєння), дужки — це помилка: MsgBox("Done.") все ще виконається, але якщо додати другий аргумент без присвоєння, MsgBox ("Continue?", vbYesNo) викличе синтаксичну помилку. Не використовуйте дужки для операторної форми, додавайте їх лише при написанні result = MsgBox(...).
Для чого насправді використовується кожен з них
Простий тест: запитайте себе, для кого насправді призначене повідомлення. Якщо відповідь — «для мене, поки я пишу й тестую цей код», використовуйте Debug.Print — його легко залишити тимчасово й так само легко видалити пізніше, оскільки він ніколи не з’явиться для користувача готової книги. Якщо відповідь — «для людини, яка зараз запускає цей макрос і має це побачити», використовуйте MsgBox — підтвердження, попередження чи повідомлення про завершення належать саме до цієї категорії, оскільки вони є частиною фінального досвіду, а не допомогою для налагодження.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат