Prolazeći kroz komentare, vidio sam nekoliko pitanja čitatelja o tome kako raditi s Visual Basic okvirima za unos i poruke u PowerPointu.
U ovom vodiču pružit ćemo vam vrlo osnovno temeljno znanje koje će vam pomoći da koristite te mogućnosti pri automatizaciji izrade prezentacije.
Postavljanje kartice Developer
Prije svega, morat ćemo omogućiti razvojno okruženje za PowerPoint. Slijedite ovaj vodič za postavljanje kartice za razvoj.
U PowerPointu idite na izbornik Developer i pritisnite Visual Basic.
U stablu projekta desnom tipkom miša kliknite svoju prezentaciju, pritisnite Umetanje i zatim odaberite Modul. Stvorit će se novi VBA modul, to je mjesto na koje ćete napisati svoj kod.
Kutije za poruke u PowerPointu
Okviri za poruke su na neki način razumljivi sami po sebi, cilj im je prikazati neke korisne informacije krajnjem korisniku. Napišite sljedeći kod u svoj modul:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Pritisnite F5 ili Run i pogledajte rezultat:

Primjer poruke i okvira za unos
Za razliku od okvira za poruke, okviri za unos koriste se za dobivanje povratnih informacija od korisnika. Pogledajmo primjer u nastavku. Skripta automatski umeće nove slajdove u prezentaciju.
Evo što ćemo implementirati:
- Prvo ćemo od korisnika zatražiti broj slajdova koje treba dodati (pomoću okvira za unos).
- Zatim ćemo obavijestiti korisnika o broju slajdova za izradu (pomoću okvira za poruke)
- Na kraju će ići naprijed i programski stvoriti slajdove.
- Na kraju ćemo spremiti izmijenjenu prezentaciju
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
Nadamo se da je to pomoglo, slobodno ostavite komentare prema potrebi.
Provjerite vrijednosti vraćene iz funkcije MsgBox
Kada se dijaloški okvir MsgBox pojavi za interakciju korisnika, želite znati koju je opciju korisnik kliknuo, možete upotrijebiti sljedeći kod da to provjerite:
Kod provjerava koji gumb korisnik odabire na MsgBoxu
U skladu s izborom svakog korisnika, možete nastaviti pokretati različite kodove, ove VBA kodove možete učiti na VBA tečajevima s vodećim stručnjacima na Learn Excel Online.
Podržava li MsgBox vijetnamski naglasak? Odgovor je ne, zašto? Jer Microsoft je to tako programirao. Ali postoji li neki drugi način? Odgovor je da, možete pročitati članak Korištenje vijetnamskog s naglaskom uz MsgBox VBA
Sav kod u članku možete vidjeti na Gist-u:
| |
SubHeoBasicMessageBox() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
| |
End Sub |
| |
|
| |
SubHeoBasicMessageBoxWithTitle() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
| |
End Sub |
| |
|
| |
PodHeoBasicMessageBox2() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKOdustani + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
End Sub |
| |
|
| |
PodHeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKOdustani + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult1() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
|
| |
odgovor = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult2() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
|
| |
odgovor = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult3() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
|
| |
odgovor = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
MsgBox odgovor |
| |
|
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult4() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
|
| |
odgovor = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult5() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
odgovor = MsgBox("Greška", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult6() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
odgovor = MsgBox("Greška", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult7() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
odgovor = MsgBox("Greška", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult8() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
odgovor = MsgBox("Greška", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult9() |
| |
Zatamnjeni odgovor Kao VbMsgBoxResult |
| |
response = MsgBox("Želite li pokušati ponovno?", vbRetryCancel + vbQuestion, "Greška") |
| |
MsgBox odgovor |
| |
End Sub |
| |
|
| |
SubHeoMsgBoxResult10() |
| |
MsgBox "Došlo je do kritične greške", vbCritical, "Sistemska greška" |
| |
End Sub |