Při procházení komentářů jsem viděl několik čtenářských otázek o tom, jak pracovat s poli pro vstup jazyka Visual Basic a pole zpráv v PowerPointu.
V tomto tutoriálu vám poskytneme velmi základní základní znalosti, které vám pomohou tyto schopnosti používat při automatizaci vytváření prezentací.
Nastavení karty Vývojář
Nejprve musíme povolit vývojářské prostředí pro PowerPoint. Podle tohoto návodu nastavte kartu vývoje.
V PowerPointu přejděte do nabídky Vývojář a klepněte na Visual Basic.
Ve stromu projektu klikněte pravým tlačítkem na prezentaci, stiskněte Vložit a vyberte Modul. Vytvoří se nový modul VBA, to je místo, kde budete psát svůj kód.
Schránky zpráv v PowerPointu
Schránky zpráv jsou svým způsobem samozřejmé, jejich cílem je zobrazit některé užitečné informace koncovému uživateli. Napište do svého modulu následující kód:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Stiskněte F5 nebo Spustit a podívejte se na výsledek:

Příklad zprávy a vstupního pole
Na rozdíl od schránek zpráv se vstupní pole používají k získání zpětné vazby od uživatele. Podívejme se na příklad níže. Skript automaticky vloží do prezentace nové snímky.
Zde je to, co implementujeme:
- Nejprve uživatele vyzveme k zadání počtu snímků, které má přidat (pomocí vstupního pole).
- Poté upozorníme uživatele na počet snímků, které mají být vytvořeny (pomocí pole zpráv)
- Poslední bude pokračovat a vytvářet snímky programově.
- Jako poslední uložíme upravenou prezentaci
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
Doufám, že to pomohlo, klidně zanechte komentáře podle potřeby.
Zkontrolujte hodnoty vrácené funkcí MsgBox
Když se zobrazí dialogové okno MsgBox pro interakci uživatele, chcete vědět, na kterou možnost uživatel klikl, můžete pomocí následujícího kódu zkontrolovat, že:
Kód kontroluje, jaké tlačítko uživatel zvolí na MsgBox
V závislosti na volbě každého uživatele můžete nadále spouštět různé kódy, tyto kódy VBA, které se můžete naučit v kurzech VBA s předními odborníky na adrese Learn Excel Online.
Podporuje MsgBox vietnamštinu s diakritikou? Odpověď zní ne, proč? Protože Microsoft to tak naprogramoval. Ale existuje nějaký jiný způsob? Odpověď je ano, můžete si přečíst článek Používání vietnamštiny s diakritikou pomocí MsgBox VBA
Celý kód v článku, který můžete vidět na 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“, _ |
|
vbOKCancel + _ |
|
vbCritical + _ |
|
vbDefaultButton1 + _ |
|
vbApplicationModal |
|
End Sub |
|
|
|
Sub HeoBasicMessageBox3() |
|
MsgBox „Hoc Excel Online“, _ |
|
vbOKCancel + _ |
|
vbCritical + _ |
|
vbDefaultButton1 + _ |
|
vbSystemModal |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult1() |
|
Špatná odezva As VbMsgBoxResult |
|
|
|
odpověď = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult2() |
|
Špatná odezva As VbMsgBoxResult |
|
|
|
odpověď = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult3() |
|
Špatná odezva As VbMsgBoxResult |
|
|
|
odpověď = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
|
Odpověď MsgBox |
|
|
|
End Sub |
|
|
|
Sub HeoMsgBoxResult4() |
|
Špatná odezva As VbMsgBoxResult |
|
|
|
odpověď = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult5() |
|
Špatná odezva As VbMsgBoxResult |
|
odpověď = MsgBox("Chyba", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult6() |
|
Špatná odezva As VbMsgBoxResult |
|
odpověď = MsgBox("Chyba", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult7() |
|
Špatná odezva As VbMsgBoxResult |
|
odpověď = MsgBox("Chyba", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult8() |
|
Špatná odezva As VbMsgBoxResult |
|
odpověď = MsgBox("Chyba", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult9() |
|
Špatná odezva As VbMsgBoxResult |
|
odpověď = MsgBox("Chcete to zkusit znovu?", vbRetryCancel + vbQuestion, "Chyba") |
|
Odpověď MsgBox |
|
End Sub |
|
|
|
Sub HeoMsgBoxResult10() |
|
MsgBox "Došlo ke kritické chybě", vbCritical, "Systémová chyba"; |
|
End Sub |