Przeglądając komentarze, spotkałem się z kilkoma pytaniami czytelników, jak pracować z Visual Basic Input i Message Boxs w PowerPoint.
W tym samouczku dostarczymy bardzo podstawowej podstawowej wiedzy, która pomoże Ci wykorzystać te możliwości podczas automatyzacji tworzenia prezentacji.
Konfigurowanie karty programisty
Po pierwsze, musimy włączyć środowisko programistyczne dla programu PowerPoint. Postępuj zgodnie z tym samouczkiem, aby skonfigurować kartę programistyczną.
W programie PowerPoint przejdź do menu Deweloper i naciśnij Visual Basic.
W drzewie projektu kliknij prawym przyciskiem myszy prezentację, naciśnij Wstaw, a następnie wybierz Moduł. Powstanie nowy moduł VBA, czyli miejsce, w którym będziesz pisał swój kod.
Skrzynki wiadomości w PowerPoint
Skrzynki z wiadomościami nie wymagają wyjaśnień, ich celem jest wyświetlenie przydatnych informacji użytkownikowi końcowemu. Napisz następujący kod w swoim Module:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Naciśnij F5 lub Uruchom i zobacz wynik:

Przykład wiadomości i pola wprowadzania
W przeciwieństwie do skrzynek wiadomości, pola wprowadzania są używane w celu uzyskania informacji zwrotnej od użytkownika. Spójrzmy na poniższy przykład. Skrypt automatycznie wstawia nowe slajdy do prezentacji.
Oto, co wdrożymy:
- Najpierw zapytamy użytkownika o liczbę slajdów do dodania (za pomocą pola wprowadzania).
- Następnie powiadomimy użytkownika o liczbie slajdów do utworzenia (za pomocą pola wiadomości)
- Na koniec programowo utworzy slajdy.
- Na koniec zapiszemy zmodyfikowaną prezentację
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
Mam nadzieję, że to pomogło, w razie potrzeby możesz zostawić komentarze.
Sprawdź wartości zwrócone przez funkcję MsgBox
Gdy pojawi się okno dialogowe MsgBox umożliwiające interakcję użytkownika i chcesz wiedzieć, którą opcję kliknął użytkownik, możesz użyć poniższego kodu, aby to sprawdzić:
Kod sprawdza jaki przycisk wybrał użytkownik na MsgBox
Zależnie od wyboru każdego użytkownika możesz nadal uruchamiać różne kody, te kody VBA, których możesz się uczyć na kursach VBA z czołowymi ekspertami pod adresem Learn Excel Online.
Czy MsgBox obsługuje język wietnamski z akcentem? Odpowiedź brzmi: nie, dlaczego? Ponieważ Microsoft tak to zaprogramował. Ale czy jest jakiś inny sposób? Odpowiedź brzmi: tak, możesz przeczytać artykuł Używanie akcentowanego języka wietnamskiego w MsgBox VBA
Cały kod w artykule możesz zobaczyć na Gist:
| |
Sub HeoBasicMessageBox() |
| |
MsgBox „Xin chao cac ban da den voi Hoc Excel Online” |
| |
Napis końcowy |
| |
|
| |
Sub HeoBasicMessageBoxWithTitle() |
| |
MsgBox „Xin chao cac ban da den voi Hoc Excel Online”, , „HEO” |
| |
Napis końcowy |
| |
|
| |
Sub HeoBasicMessageBox2() |
| |
MsgBox „Hoc Excel Online”, _ |
| |
vbOKAnuluj + _ |
| |
vbKrytyczny + _ |
| |
vbDomyślnyPrzycisk1 + _ |
| |
vbAplikacjaModalna |
| |
Napis końcowy |
| |
|
| |
Sub HeoBasicMessageBox3() |
| |
MsgBox „Hoc Excel Online”, _ |
| |
vbOKAnuluj + _ |
| |
vbKrytyczny + _ |
| |
vbDomyślnyPrzycisk1 + _ |
| |
vbSystemModalny |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult1() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
|
| |
odpowiedź = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
|
| |
odpowiedź = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
|
| |
odpowiedź = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
Odpowiedź MsgBox |
| |
|
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
|
| |
odpowiedź = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
odpowiedź = MsgBox("Błąd", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
odpowiedź = MsgBox("Błąd", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
odpowiedź = MsgBox("Błąd", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
odpowiedź = MsgBox("Błąd", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Ciemna odpowiedź Jako VbMsgBoxResult |
| |
odpowiedź = MsgBox(„Chcesz spróbować ponownie?”, vbRetryCancel + vbQuestion, „Błąd”) |
| |
Odpowiedź MsgBox |
| |
Napis końcowy |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox „Wystąpił błąd krytyczny”, vbKrytyczny, „Błąd systemu” |
| |
Napis końcowy |