När jag gick igenom kommentarerna har jag sett ett par läsarfrågor om hur man arbetar med Visual Basic Input och Message Boxes i PowerPoint.
I den här handledningen ger vi en mycket grundläggande grundläggande kunskap som hjälper dig att använda dessa funktioner när du automatiserar din presentation.
Konfigurera fliken Utvecklare
Först och främst måste vi aktivera utvecklarmiljön för PowerPoint. Följ den här handledningen för att ställa in din utvecklingsflik.
I PowerPoint, gå till Utvecklarmenyn och tryck på Visual Basic.
Högerklicka på din presentation i projektträdet, tryck på Infoga och välj sedan Modul. En ny VBA-modul kommer att skapas, det är den plats där du ska skriva din kod.
Meddelanderutor i PowerPoint
Meddelanderutor är lite självförklarande, deras mål är att visa användbar information för slutanvändaren. Skriv följande kod i din modul:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Tryck på F5 eller Kör och se resultatet:

Exempel på meddelande och inmatningsruta
Till skillnad från meddelandeboxar används inmatningsboxar för att få feedback från användaren. Låt oss titta på exemplet nedan. Skriptet infogar automatiskt nya bilder i presentationen.
Här är vad vi kommer att implementera:
- Vi kommer först att fråga användaren om antalet bilder som ska läggas till (med hjälp av en inmatningsruta).
- Vi kommer sedan att meddela användaren om antalet bilder som ska skapas (med hjälp av en meddelanderuta)
- Sist, kommer att gå vidare och skapa bilderna programmatiskt.
- Sist sparar vi den ändrade presentationen
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
Förhoppningsvis hjälpte det, lämna gärna kommentarer efter behov.
Kontrollera värdena som returneras från MsgBox-funktionen
När dialogrutan MsgBox dyker upp för användarinteraktion, vill du veta vilket alternativ användaren klickade på, kan du använda följande kod för att kontrollera att:
Koden kontrollerar vilken knapp användaren väljer på MsgBox
Motsvarar varje användares val kan du fortsätta att köra olika koder, dessa VBA-koder kan du lära dig i VBA-kurser med ledande experter på Learn Excel Online.
Stöder MsgBox accentuerad vietnamesiska? Svaret är nej, varför? För att Microsoft programmerade det så. Men finns det något annat sätt? Svaret är ja, du kan läsa artikeln Using accented Vietnamese with MsgBox VBA
All kod i artikeln kan du se på Gist:
| |
Sub HeoBasicMessageBox() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
| |
Avsluta Sub |
| |
|
| |
Sub HeoBasicMessageBoxWithTitle() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
| |
Avsluta Sub |
| |
|
| |
Sub HeoBasicMessageBox2() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKCancel + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
Avsluta Sub |
| |
|
| |
Sub HeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKCancel + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult1() |
| |
Dim svar Som VbMsgBoxResult |
| |
|
| |
svar = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Dim svar Som VbMsgBoxResult |
| |
|
| |
svar = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Dim svar Som VbMsgBoxResult |
| |
|
| |
svar = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
MsgBox svar |
| |
|
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Dim svar Som VbMsgBoxResult |
| |
|
| |
svar = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Dim svar Som VbMsgBoxResult |
| |
respons = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Dim svar Som VbMsgBoxResult |
| |
respons = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Dim svar Som VbMsgBoxResult |
| |
response = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Dim svar Som VbMsgBoxResult |
| |
response = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Dim svar Som VbMsgBoxResult |
| |
response = MsgBox("Vill du försöka igen?", vbRetryCancel + vbQuestion, "Fel") |
| |
MsgBox svar |
| |
Avsluta Sub |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox "Kritiskt fel uppstod", vbCritical, "Systemfel" |
| |
Avsluta Sub |