Når jeg går gjennom kommentarene, har jeg sett et par leserspørsmål om hvordan du jobber med Visual Basic-inndata- og meldingsbokser i PowerPoint.
I denne opplæringen vil vi gi en veldig grunnleggende grunnleggende kunnskap for å hjelpe deg med å bruke disse egenskapene når du automatiserer presentasjonsopprettingen.
Sette opp Utvikler-fanen
Først og fremst må vi aktivere utviklermiljøet for PowerPoint. Følg denne veiledningen for å sette opp utviklingsfanen.
I PowerPoint, gå til Utvikler-menyen og trykk Visual Basic.
Høyreklikk presentasjonen i prosjekttreet, trykk Sett inn og velg Modul. En ny VBA-modul vil bli opprettet, det er stedet du skal skrive koden din.
Meldingsbokser i PowerPoint
Meldingsbokser er på en måte selvforklarende, målet deres er å vise noe nyttig informasjon til sluttbrukeren. Skriv følgende kode i modulen din:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Trykk F5 eller Kjør og se resultatet:

Eksempel på melding og inndataboks
I motsetning til meldingsbokser, brukes inndatabokser for å få tilbakemelding fra brukeren. La oss se på eksemplet nedenfor. Skriptet setter automatisk inn nye lysbilder til presentasjonen.
Her er hva vi skal implementere:
- Vi ber først brukeren om antall lysbilder som skal legges til (ved hjelp av en inndataboks).
- Vi vil da varsle brukeren om antall lysbilder som skal opprettes (ved hjelp av en meldingsboks)
- Sist, vil gå videre og lage lysbildene programmatisk.
- Til slutt lagrer vi den endrede presentasjonen
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
Forhåpentligvis hjalp det, legg gjerne igjen kommentarer etter behov.
Kontroller verdiene som returneres fra MsgBox-funksjonen
Når MsgBox-dialogboksen dukker opp for brukerinteraksjon, vil du vite hvilket alternativ brukeren klikket på, kan du bruke følgende kode for å sjekke at:
Koden sjekker hvilken knapp brukeren velger på MsgBox
Svarer til hver brukers valg, kan du fortsette å kjøre forskjellige koder, disse VBA-kodene kan du lære på VBA-kurs med ledende eksperter på Lær Excel Online.
Støtter MsgBox aksentvietnamesisk? Svaret er nei, hvorfor? Fordi Microsoft programmerte det slik. Men er det noen annen måte? Svaret er ja, du kan lese artikkelen Using accented Vietnamese with MsgBox VBA
All koden i artikkelen kan du se på 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() |
| |
Dim respons Som VbMsgBoxResult |
| |
|
| |
respons = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Dim respons Som VbMsgBoxResult |
| |
|
| |
respons = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Dim respons Som VbMsgBoxResult |
| |
|
| |
respons = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
MsgBox-svar |
| |
|
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Dim respons Som VbMsgBoxResult |
| |
|
| |
respons = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Dim respons Som VbMsgBoxResult |
| |
respons = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Dim respons Som VbMsgBoxResult |
| |
respons = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Dim respons Som VbMsgBoxResult |
| |
respons = MsgBox("Feil", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Dim respons Som VbMsgBoxResult |
| |
respons = MsgBox("Feil", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Dim respons Som VbMsgBoxResult |
| |
response = MsgBox("Vil du prøve igjen?", vbRetryCancel + vbQuestion, "Feil") |
| |
MsgBox-svar |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox "Kritisk feil oppstod", vbCritical, "Systemfeil" |
| |
End Sub |