Просматривая комментарии, я увидел пару вопросов читателей о том, как работать с окнами ввода и сообщений 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 "Синь чао как бан да ден voi Hoc Excel Online" |
| |
Конец субтитра |
| |
|
| |
Sub HeoBasicMessageBoxWithTitle() |
| |
MsgBox "Синь чао как бан да ден voi Hoc Excel Online", , "HEO" |
| |
Конец субтитра |
| |
|
| |
СубHeoBasicMessageBox2() |
| |
MsgBox «Hoc Excel Online», _ |
| |
vbOKОтмена + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
Конец субтитра |
| |
|
| |
СубHeoBasicMessageBox3() |
| |
MsgBox «Hoc Excel Online», _ |
| |
vbOKОтмена + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult1() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
|
| |
ответ = MsgBox("Hoc Excel Online", vbДаНет + vbCritical) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult2() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
|
| |
ответ = MsgBox("Hoc Excel Online", vb YesNo + vbQuestion) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult3() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
|
| |
ответ = MsgBox("Hoc Excel Online", vbДаНет + vbExclamation) |
| |
Ответ MsgBox |
| |
|
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult4() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
|
| |
ответ = MsgBox("Hoc Excel Online", vbДаНет + vbInformation) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult5() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
ответ = MsgBox("Ошибка", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult6() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
ответ = MsgBox("Ошибка", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult7() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
ответ = MsgBox("Ошибка", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult8() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
ответ = MsgBox("Ошибка", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult9() |
| |
Тусклый ответ как VbMsgBoxResult |
| |
ответ = MsgBox("Хотите попробовать еще раз?", vbRetryCancel + vbQuestion, "Ошибка") |
| |
Ответ MsgBox |
| |
Конец субтитра |
| |
|
| |
СубHeoMsgBoxResult10() |
| |
MsgBox «Произошла критическая ошибка», vbCritical, «Системная ошибка». |
| |
Конец субтитра |