{"id":55000321,"date":"2022-08-01T00:00:00","date_gmt":"2023-03-02T17:04:56","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=321"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBABasics_MsgBox_und_InputBoxFunktion","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/VBABasics_MsgBox_und_InputBoxFunktion\/","title":{"rendered":"VBA-Basics: MsgBox- und InputBox-Funktion"},"content":{"rendered":"<p><b>Die beiden Funktionen MsgBox und InputBox erm&ouml;glichen die schnelle Abfrage von Benutzerfeedback. Soll eine Datei &uuml;berschrieben werden? Wie soll die neue Kategorie hei&szlig;en? Das sind nur zwei von vielen Beispielen f&uuml;r den Einsatz dieser beiden Funktionen. Dieser Artikel beschreibt die beiden so kompakt wie m&ouml;glich, damit Du sie schnell in Deine eigenen Anwendungen integrieren kannst. <\/b><\/p>\n<h2>Die MsgBox-Funktion<\/h2>\n<p>Die erste der beiden Funktionen hat zwei Haupteinsatzzwecke:<\/p>\n<ul>\n<li>Ausgabe von Informationen oder Warnungen an den Benutzer<\/li>\n<li>Ermitteln von einfachen Antworten des Benutzers wie OK oder Abbrechen durch entsprechende Schaltfl&auml;chen<\/li>\n<\/ul>\n<h2>MsgBox zur Anzeige von Meldungen<\/h2>\n<p>Wenn Du einfach nur eine Meldung mit Informationen anzeigen m&ouml;chtest, reicht der einfache Aufruf der <b>MsgBox<\/b>-Funktion unter Angabe der anzuzeigenden Informationen und gegebenenfalls eines Symbols.<\/p>\n<p>Um dem Benutzer mehrere Auswahlm&ouml;glichkeiten f&uuml;r eine Reaktion zu geben, kannst Du verschiedene Schaltfl&auml;chen anzeigen lassen und diese abfragen.<\/p>\n<p>Der einfachste <b>MsgBox<\/b>-Aufruf gibt einfach nur einen Text aus und zeigt eine <b>OK<\/b>-Schaltfl&auml;che an:<\/p>\n<pre><span style=\"color:blue;\">MsgBox<\/span> \"Dies ist eine Beispielmeldung.\" <\/pre>\n<p>Diese k&ouml;nnen wir &uuml;ber den Direktbereich des VBA-Editors aufrufen oder auch in eine Prozedur oder Funktion einbinden. Das Ergebnis siehst Du in Bild 1.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_321_001.png\" alt=\"Einfache Meldung\" width=\"249,6268\" height=\"136,067\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Einfache Meldung<\/span><\/b><\/p>\n<h2>MsgBox mit Titel<\/h2>\n<p>Die oben erzeugte Meldung zeigt den gew&uuml;nschten Text an, und auch die Titelzeile ist gef&uuml;llt. Wenn Du den dortigen Text ersetzen willst, der standardm&auml;&szlig;ig den Namen der &uuml;bergeordneten Anwendung anzeigt, brauchst Du nur den dritten Parameter der <b>MsgBox<\/b>-Funktion mit dem gew&uuml;nschten Text zu f&uuml;llen:<\/p>\n<pre><span style=\"color:blue;\">MsgBox<\/span> \"Beispielmeldung mit individuellem Titel\", , _\r\n     \"Unser Titel\"<\/pre>\n<p>Das Ergebnis siehst Du in Bild 2. Alternativ und um die un&uuml;bersichtliche Anzeige der Kommata zwischen den Parametern zu entsch&auml;rfen kannst Du auch benannte Parameter verwenden, wenn sich die Parameter nicht an der vorgesehenen Stelle befinden (f&uuml;r den ersten Parameter ist dies daher nicht erforderlich):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_321_002.png\" alt=\"Meldung mit Titel\" width=\"249,6268\" height=\"135,5116\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Meldung mit Titel<\/span><\/b><\/p>\n<pre><span style=\"color:blue;\">MsgBox<\/span> \"Beispielmeldung mit individuellem Titel\", _\r\n     Title:=\"Unser Titel\"<\/pre>\n<h2>Icons f&uuml;r die MsgBox<\/h2>\n<p>Im n&auml;chsten Schritt f&uuml;gen wir der Meldung wie in Bild 3 ein Icon hinzu. Das erledigen wir mit dem zweiten Parameter namens <b>Buttons<\/b>. Die Bezeichnung deutet eigentlich eher darauf hin, dass wir hiermit Informationen &uuml;ber Schaltfl&auml;chen angeben, aber dazu gleich mehr. Es ist n&auml;mlich beides m&ouml;glich. Der Aufruf f&uuml;r die gezeigte Meldung lautet:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_321_003.png\" alt=\"Meldung mit Icon\" width=\"299,6267\" height=\"154,3839\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Meldung mit Icon<\/span><\/b><\/p>\n<pre><span style=\"color:blue;\">MsgBox<\/span> \"Beispielmeldung mit Icon zur Warnung\", _\r\n     <span style=\"color:blue;\">vbCr<\/span>itical, \"<span style=\"color:blue;\">MsgBox<\/span> mit Icon\"<\/pre>\n<p>Wir &uuml;bergeben also die Konstante <b>vbCritical<\/b>, um das Icon f&uuml;r einen Warnhinweis auszugeben.<\/p>\n<p>Die m&ouml;glichen Konstanten f&uuml;r die anzuzeigenden Icons lauten:<\/p>\n<ul>\n<li><b>vbCritical<\/b>: Zeigt einen roten Warnhinweis an.<\/li>\n<li><b>vbExclamation<\/b>: Zeigt ein Ausrufezeichen an.<\/li>\n<li><b>vbInformationen<\/b>: Zeigt ein Informations-Icon an.<\/li>\n<li><b>vbQuestion<\/b>: Zeigt ein Fragezeichen-Icon an.<\/li>\n<\/ul>\n<p>In Bild 4 haben wir alle m&ouml;glichen Icons in einer Meldung abgebildet.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_321_004.png\" alt=\"Meldung mit allen Icons\" width=\"299,6267\" height=\"154,3839\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Meldung mit allen Icons<\/span><\/b><\/p>\n<h2>MsgBox zum Abfragen von Informationen<\/h2>\n<p>Wenn Du nicht nur dem Benutzer verschiedene Informationen anzeigen m&ouml;chtest, sondern auch noch Feedback von diesem ben&ouml;tigst, dann reicht die <b>OK<\/b>-Schaltlf&auml;che nicht aus. Stattdessen verwenden wir verschiedene Kombinationen von Schaltfl&auml;chen.<\/p>\n<p>Hier kommt erneut der Parameter <b>Buttons <\/b>ins Spiel, mit dem wir nicht nur das anzuzeigende Icon, sondern auch noch die anzuzeigenden Schaltfl&auml;chen festlegen k&ouml;nnen. Wenn Du kein Icon anzeigen m&ouml;chtest, sondern nur verschiedene Schaltfl&auml;chen, gibst Du einfach nur die Konstante f&uuml;r die gew&uuml;nschten Schaltfl&auml;chen an.<\/p>\n<ul>\n<li><b>vbAbortRetryIgnore<\/b>: Zeigt <b>Abbrechen<\/b>-, <b>Wiederholen<\/b>&#8211; und <b>Ignorieren<\/b>-Schaltfl&auml;chen an.<\/li>\n<li><b>vbOKCancel<\/b>: Zeigt <b>OK<\/b>&#8211; und <b>Abbrechen<\/b>-Schaltfl&auml;chen an.<\/li>\n<li><b>vbOKOnly<\/b>: Zeigt nur die <b>Ok<\/b>-Schaltfl&auml;che an. Kann weggelassen werden, da dies die Standardeinstellung ist.<\/li>\n<li><b>vbRetryCancel<\/b>: Zeigt die Schaltfl&auml;chen <b>Wiederholen <\/b>und <b>Abbrechen <\/b>an.<\/li>\n<li><b>vbYesNo<\/b>: Zeigt die Schaltfl&auml;chen <b>Ja <\/b>und <b>Nein <\/b>an.<\/li>\n<li><b>vbYesNoCancel<\/b>: Zeigt die Schaltfl&auml;chen <b>Ja<\/b>, <b>Nein <\/b>und <b>Abbrechen <\/b>an.<\/li>\n<\/ul>\n<p>Bild 5 zeigt die sechs verschiedenen Konstellationen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_321_005.png\" alt=\"Alle verschiedenen Schaltfl&auml;chen\" width=\"424,6267\" height=\"797,284\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Alle verschiedenen Schaltfl&auml;chen<\/span><\/b><\/p>\n<p>Diese kannst Du jeweils noch um eine Hilfe-Schaltfl&auml;che erweitern. Dazu f&uuml;gst Du die Konstante <b>vbMsgBoxHelpButton <\/b>mit dem Plus-Operator (<b>+<\/b>) wie folgt zum Parameter <b>Buttons <\/b>hinzu:<\/p>\n<pre><span style=\"color:blue;\">MsgBox<\/span> \"Meldung mit Hilfe-Button ''vbMsgBoxHelpButton''\", _\r\n     vbYesNo + vbMsgBoxHelpButton<\/pre>\n<p>Die zus&auml;tzliche Schaltfl&auml;che mit dem Titel <b>Hilfe <\/b>wird rechts neben den &uuml;brigen Schaltfl&auml;chen eingeblendet (siehe Bild 6). Damit diese eine Funktion hat, musst Du f&uuml;r den Parameter <b>Helpfile <\/b>den Pfad zu der zu verwendenden <b>.chm<\/b>-Hilfedatei angeben. Da diese heutzutage kaum noch verwendet werden, gehen wir an dieser Stelle nicht weiter darauf ein.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_321_006.png\" alt=\"Meldung mit Hilfe-Button\" width=\"424,6267\" height=\"155,1521\" \/><\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000321\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000321?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000321\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"e5d0bba7c3\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die beiden Funktionen MsgBox und InputBox erm&ouml;glichen die schnelle Abfrage von Benutzerfeedback. Soll eine Datei &uuml;berschrieben werden? Wie soll die neue Kategorie hei&szlig;en? Das sind nur zwei von vielen Beispielen f&uuml;r den Einsatz dieser beiden Funktionen. Dieser Artikel beschreibt die beiden so kompakt wie m&ouml;glich, damit Du sie schnell in Deine eigenen Anwendungen integrieren kannst. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662022,66042022,44000023,44000025,44000028],"tags":[],"yst_prominent_words":[],"class_list":["post-55000321","post","type-post","status-publish","format-standard","hentry","category-662022","category-66042022","category-PowerApps","category-VBAProgrammierung","category-Word_programmieren"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000321"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000321\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000321"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}