Преглеждайки коментарите, видях няколко въпроса на читателя за това как да работя с полета за въвеждане и съобщения на Visual Basic в PowerPoint.
В този урок ще предоставим много основни основни познания, които да ви помогнат да използвате тези възможности, когато автоматизирате създаването на вашата презентация.
Настройка на раздела за програмисти
Първо, ще трябва да активираме средата за разработчици за PowerPoint. Следвайте този урок, за да настроите своя раздел за разработка.
В PowerPoint отидете в менюто Developer и натиснете 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" |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBoxWithTitle() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBox2() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKОтказ + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKОтказ + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult1() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
|
| |
отговор = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
|
| |
отговор = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
|
| |
отговор = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
Отговор на MsgBox |
| |
|
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
|
| |
отговор = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
отговор = MsgBox("Грешка", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
отговор = MsgBox("Грешка", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
отговор = MsgBox("Грешка", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
отговор = MsgBox("Грешка", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Затъмнен отговор Като VbMsgBoxResult |
| |
response = MsgBox("Искате ли да опитате отново?", vbRetryCancel + vbQuestion, "Грешка") |
| |
Отговор на MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox "Възникна критична грешка", vbCritical, "Системна грешка" |
| |
End Sub |