Flexibilita argumentu tlačítek VBA usnadňuje přizpůsobení oken zpráv aplikace Excel. Můžete si vybrat, která tlačítka se mají zobrazit, určit, zda se zobrazí ikona, a rozhodnout, které tlačítko je výchozí (výchozí tlačítko „klikne“, pokud uživatel stiskne Enter).
Pro argument tlačítka můžete použít vestavěné konstanty. Pokud chcete, můžete použít hodnotu spíše než konstantu (ale použití vestavěných konstant je mnohem jednodušší).
Chcete-li jako argument použít více než jednu z těchto konstant, stačí je spojit s operátorem +. Chcete-li například zobrazit okno se zprávou s tlačítky Ano a Ne a ikonou vykřičníku, použijte jako druhý argument pole MsgBox následující výraz:
vbYesNo + vbExclamation
Nebo, pokud chcete, aby byl váš kód méně srozumitelný, použijte hodnotu 52 (tj. 4 + 48).
Následující příklad používá kombinaci konstant k zobrazení okna se zprávou s tlačítkem Ano a tlačítkem Ne (vbYesNo) a také s ikonou otazníku (vbQuestion). Konstanta vbDefaultButton2 označuje druhé tlačítko (Ne) jako výchozí tlačítko – tedy tlačítko, na které se klikne, když uživatel stiskne Enter. Pro jednoduchost jsou tyto konstanty přiřazeny k proměnné Config a poté použijte Config jako druhý argument ve funkci MsgBox:
Sub GetAnswer3()
Dim Config As Long
Dim Ans As Integer
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox(“Zpracovat měsíční přehled?”, Konfigurace)
If Ans = vbYes Then RunReport
End Sub
Podívejte se na okno se zprávou, které Excel zobrazí při spuštění procedury GetAnswer3. Pokud uživatel klepne na tlačítko Ano, rutina provede proceduru s názvem RunReport. Pokud uživatel klepne na tlačítko Ne (nebo stiskne klávesu Enter), rutina skončí bez jakékoli akce. Protože argument title byl ve funkci MsgBox vynechán, Excel používá výchozí název Microsoft Excel.
Argument tlačítka funkce MsgBox určuje, co se zobrazí v okně zprávy.
Následující rutina poskytuje další příklad použití funkce MsgBox:
Sub GetAnswer4()
Dim Msg As String, Title As String
Dim Config As Integer, Ans As Integer
Msg = "Chcete zpracovat měsíční přehled?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & „Zpracování měsíčního přehledu bude“
Msg = Msg & „trvá přibližně 15 minut. To "
Msg = Msg & “vygeneruje 30stránkový report pro “
Msg = Msg & „všechny prodejní kanceláře pro aktuální“
Msg = Zpráva a „měsíc“.
Název = „Marketingová společnost XYZ“
Config = vbYesNo + vbQuestion
Ans = MsgBox (Zpráva, Konfigurace, Název)
If Ans = vbYes Then RunReport
End Sub
Tento příklad ukazuje efektivní způsob, jak zadat delší zprávu v okně zprávy. Proměnná (Msg) a operátor zřetězení (&) se používají k sestavení zprávy v řadě příkazů. Konstanta vbNewLine vloží znak konce řádku, který začíná nový řádek (použijte jej dvakrát pro vložení prázdného řádku). Argument title se používá k zobrazení jiného názvu v okně zprávy. Zde je okno se zprávou, které Excel zobrazí při provedení tohoto postupu.
Toto dialogové okno zobrazené funkcí MsgBox zobrazuje název, ikonu a dvě tlačítka.
Pro návratovou hodnotu funkce MsgBox můžete použít konstanty (například vbYes a vbNo). Zde je několik dalších konstant.
Konstantní |
Hodnota |
Co to znamená |
vbOK |
1 |
Uživatel klikl na OK. |
vbCancel |
2 |
Uživatel klikl na Storno. |
vbAbort |
3 |
Uživatel klikl na Přerušit. |
vbRetry |
4 |
Uživatel klikl na Opakovat. |
vbIgnore |
5 |
Uživatel klikl na Ignorovat. |
vbAno |
6 |
Uživatel klikl na Ano. |
vbNo |
7 |
Uživatel klikl na Ne. |
A to je v podstatě vše, co potřebujete vědět o funkci MsgBox. Okna zpráv však používejte opatrně. Obvykle není důvod zobrazovat zprávy, které neslouží žádnému účelu. Lidé mají například tendenci být naštvaní, když každý den vidí schránku s nápisem Dobré ráno. Děkujeme, že jste si načetli sešit Projekce rozpočtu.