Переглядаючи коментарі, я побачив кілька запитань читачів про те, як працювати з вікнами введення та повідомлень Visual Basic у PowerPoint.
У цьому підручнику ми надамо базові базові знання, які допоможуть вам використовувати ці можливості під час автоматизації створення презентації.
Налаштування вкладки розробника
По-перше, нам потрібно ввімкнути середовище розробника для PowerPoint. Дотримуйтесь цього посібника, щоб налаштувати вкладку розробки.
У PowerPoint перейдіть до меню Розробник і натисніть Visual Basic.
У дереві проекту клацніть правою кнопкою миші свою презентацію, натисніть «Вставити», а потім виберіть «Модуль». Буде створений новий модуль VBA, це місце, куди ви будете писати свій код.
Вікна повідомлень у PowerPoint
Вікна повідомлень начебто зрозумілі самі, їх мета — показати деяку корисну інформацію кінцевому користувачеві. Напишіть наступний код у своєму модулі:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Натисніть F5 або Run і подивіться результат:

Приклад повідомлення та вікна введення
На відміну від вікон повідомлень, поля введення використовуються для отримання зворотного зв’язку від користувача. Давайте розглянемо приклад нижче. Сценарій автоматично вставляє нові слайди до презентації.
Ось що ми впровадимо:
- Спочатку ми підкажемо користувачеві кількість слайдів, які потрібно додати (за допомогою поля введення).
- Потім ми повідомимо користувача про кількість слайдів, які потрібно створити (за допомогою вікна повідомлення)
- Нарешті, буде створено слайди програмно.
- Останнім ми збережемо змінену презентацію
Sub CreateSlidesMessage()
Dim NumSlides As Integer
Dim MsgResult As VbMsgBoxResult
' How many slides to create
NumSlides = InputBox("Enter number of slides to create", "Create Slides")
'User confirmation
MsgResult = MsgBox("Powerpoint will create " & NumSlides & " slides. Proceed?", vbApplicationModal, "Create Slides")
'create the slides
If MsgResult = vbOK Then
For i = 1 To NumSlides
Set NewSlide = ActivePresentation.Slides.Add(Index:=i + 1, Layout:=ppLayoutBlank)
Next i
'Save the Presentation
ActivePresentation.SaveAs("Your Presentation.pptx")
MsgBox ("Presentation Saved.")
End If
End Sub
Сподіваюся, це допомогло, не соромтеся залишати коментарі, якщо потрібно.
Перевірте значення, які повертає функція MsgBox
Коли з’являється діалогове вікно MsgBox для взаємодії з користувачем, ви хочете знати, яку опцію натиснув користувач, ви можете використати такий код, щоб перевірити це:
Код перевіряє, яку кнопку користувач вибирає на MsgBox
Відповідно до вибору кожного користувача, ви можете продовжувати запускати різні коди, ці коди VBA ви можете вивчати на курсах VBA з провідними експертами на сайті Learn Excel Online.
Чи підтримує MsgBox в’єтнамську мову з акцентом? Відповідь - ні, чому? Тому що Microsoft це так запрограмувала. Але чи є інший спосіб? Відповідь так, ви можете прочитати статтю Використання в’єтнамської мови з акцентом за допомогою MsgBox VBA
Весь код у статті ви можете побачити на Gist:
| |
Sub HeoBasicMessageBox() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
| |
Кінець Під |
| |
|
| |
Sub HeoBasicMessageBoxWithTitle() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
| |
Кінець Під |
| |
|
| |
Sub HeoBasicMessageBox2() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKCancel + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
Кінець Під |
| |
|
| |
Sub HeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKCancel + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult1() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
|
| |
відповідь = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
|
| |
відповідь = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
|
| |
відповідь = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
Відповідь MsgBox |
| |
|
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
|
| |
відповідь = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
відповідь = MsgBox("Помилка", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
відповідь = MsgBox("Помилка", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
відповідь = MsgBox("Помилка", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
відповідь = MsgBox("Помилка", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Неяскрава відповідь Як VbMsgBoxResult |
| |
відповідь = MsgBox("Бажаєте спробувати ще раз?", vbRetryCancel + vbQuestion, "Помилка") |
| |
Відповідь MsgBox |
| |
Кінець Під |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox "Сталася критична помилка", vbCritical, "Системна помилка" |
| |
Кінець Під |