{"id":55000524,"date":"2026-08-01T00:00:00","date_gmt":"2026-11-04T15:30:05","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=524"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBA_Basics_Nz_IIf_Switch_und_Choose","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/","title":{"rendered":"VBA Basics: Nz, IIf, Switch und Choose"},"content":{"rendered":"<p><b>Mit <b>If&#8230;Then<\/b> und <b>Select Case<\/b> entscheiden wir, welche Anweisungen VBA ausf&uuml;hrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh&auml;ngt, etwa einen Rabattsatz oder die Vorgabe f&uuml;r ein leeres Feld. Daf&uuml;r stehen die Funktionen <b>Nz<\/b>, <b>IIf<\/b>, <b>Switch<\/b> und <b>Choose<\/b> zur Verf&uuml;gung. Sie werten alle Parameter aus und liefern in bestimmten F&auml;llen <b>Null<\/b>, was zu Fehlern f&uuml;hren kann. Wie die Funktionen arbeiten und wann wir besser <b>If&#8230;Then<\/b> verwenden, liest Du in diesem Artikel.<\/b><\/p>\n<h2>Werte statt Anweisungen<\/h2>\n<p>Die Anweisungen <b>If&#8230;Then<\/b> und <b>Select Case<\/b> haben wir im Artikel <b>VBA Basics: Bedingungen (www.vbentwickler.de\/336)<\/b> beschrieben. Sie f&uuml;hren je nach Bedingung unterschiedliche Anweisungen aus. Die Funktionen in diesem Artikel liefern dagegen einen Wert zur&uuml;ck. Wir setzen sie dort ein, wo ein Wert erwartet wird, zum Beispiel rechts von einer Zuweisung oder als Parameter eines anderen Aufrufs.<\/p>\n<p>Die Beispiele findest Du im Modul <b>mdlBedingungsfunktionenBeispiele<\/b> der Datenbank <b>VBABasics_Bedingungsfunktionen.accdb<\/b>, zum Ausprobieren dient das Formular <b>frmBedingungsfunktionen<\/b>.<\/p>\n<h2>Nz: Null durch einen Wert ersetzen<\/h2>\n<p>Ein Feld, in das nichts eingegeben wurde und das keinen Standardwert hat, enth&auml;lt den Wert <b>Null<\/b>. Rechnen wir mit diesem Wert, ist auch das Ergebnis <b>Null<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> 100 * (1 - Null)<\/pre>\n<p>Die Ausgabe lautet <b>Null<\/b>. Enth&auml;lt das Feld <b>Rabatt<\/b> einer Bestellung den Wert <b>Null<\/b>, ist auch der Preis nach Rabatt <b>Null<\/b>. Die Funktion <b>Nz<\/b> ersetzt <b>Null<\/b> durch den Wert, den wir als zweiten Parameter angeben. Wir setzen <b>Nz<\/b> in der Funktion <b>PreisMitRabatt<\/b> ein. Sie erwartet den Preis als <b>Currency<\/b> und den Rabatt als <b>Variant<\/b>, damit wir auch <b>Null<\/b> &uuml;bergeben k&ouml;nnen:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>PreisMitRabatt(curPreis<span style=\"color:blue;\"> As Currency<\/span>, _\r\n        varRabatt<span style=\"color:blue;\"> As Variant<\/span>)<span style=\"color:blue;\"> As Currency<\/span>\r\n    PreisMitRabatt = curPreis * (1 - Nz(varRabatt, 0))\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Mit <b>Null<\/b> als Rabatt erhalten wir den Preis unver&auml;ndert, mit dem Rabatt <b>0,1<\/b> (im Code <b>0.1<\/b>) den um zehn Prozent verminderten Preis:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> PreisMitRabatt(100, Null)\r\n<span style=\"color:blue;\">Debug.Print<\/span> PreisMitRabatt(100, 0.1)<\/pre>\n<p>Die Ausgaben lauten <b>100<\/b> und <b>90<\/b>. Der zweite Parameter von <b>Nz<\/b> ist optional. Fehlt er, liefert <b>Nz<\/b> f&uuml;r <b>Null<\/b> einen Wert vom Datentyp <b>Variant<\/b> mit dem Untertyp <b>Empty<\/b>, der in Berechnungen als <b>0<\/b> und in Zeichenketten als leerer Text gilt. Der Ausdruck <b>Nz(Null) + 5<\/b> ergibt daher <b>5<\/b> und <b>Nz(Null) &#038; &#8222;x&#8220;<\/b> ergibt <b>x<\/b>.<\/p>\n<p><b>Nz<\/b> ersetzt nur <b>Null<\/b>. Ein leerer Text ist nicht <b>Null<\/b>, deshalb gibt <b>Nz(&#8222;&#8220;, &#8222;x&#8220;)<\/b> den leeren Text zur&uuml;ck.<\/p>\n<p><b>Nz<\/b> geh&ouml;rt zu Access und nicht zu VBA. In Excel, Word oder Outlook steht die Funktion ohne einen Verweis auf die Access-Bibliothek nicht zur Verf&uuml;gung. Dort pr&uuml;fen wir mit <b>IsNull<\/b>, ob ein Wert <b>Null<\/b> ist.<\/p>\n<h2>IIf: Einen von zwei Werten ausw&auml;hlen<\/h2>\n<p><b>IIf<\/b> erwartet drei Parameter: die Bedingung, den Wert f&uuml;r <b>True<\/b> und den Wert f&uuml;r <b>False<\/b>. Als Beispiel berechnen wir den Anteil eines Teils an einer Summe. Bei der Summe <b>0<\/b> soll das Ergebnis ebenfalls <b>0<\/b> lauten, damit keine Division durch <b>0<\/b> stattfindet. Zuerst versuchen wir es mit <b>IIf<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>AnteilIIf(dblTeil<span style=\"color:blue;\"> As Double<\/span>, _\r\n        dblSumme<span style=\"color:blue;\"> As Double<\/span>)<span style=\"color:blue;\"> As Double<\/span>\r\n    AnteilIIf = IIf(dblSumme = 0, 0, dblTeil \/ dblSumme)\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Der erste Aufruf liefert <b>0,25<\/b>, der zweite l&ouml;st einen Fehler aus:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> AnteilIIf(1, 4)\r\n<span style=\"color:blue;\">Debug.Print<\/span> AnteilIIf(5, 0)<\/pre>\n<p>Der zweite Aufruf l&ouml;st den Laufzeitfehler <b>11<\/b> mit der Meldung <b>Division durch Null<\/b> aus, obwohl wir die Division durch die Bedingung ausschlie&szlig;en wollen. VBA wertet n&auml;mlich beim Aufruf einer Funktion zuerst die Parameter aus. Bei <b>IIf<\/b> geh&ouml;ren dazu beide Werte, auch der Wert, den wir gar nicht ben&ouml;tigen.<\/p>\n<p>Die Funktion <b>AnteilIf<\/b> verwendet deshalb die Anweisung <b>If&#8230;Then<\/b>, bei der VBA nur den passenden Zweig ausf&uuml;hrt:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>AnteilIf(dblTeil<span style=\"color:blue;\"> As Double<\/span>, _\r\n        dblSumme<span style=\"color:blue;\"> As Double<\/span>)<span style=\"color:blue;\"> As Double<\/span>\r\n    <span style=\"color:blue;\">If <\/span>dblSumme = 0<span style=\"color:blue;\"> Then<\/span>\r\n        AnteilIf = 0\r\n    <span style=\"color:blue;\">Else<\/span>\r\n        AnteilIf = dblTeil \/ dblSumme\r\n    <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b>AnteilIf(5, 0)<\/b> liefert <b>0<\/b> und <b>AnteilIf(1, 4)<\/b> liefert <b>0,25<\/b>. <b>IIf<\/b> setzen wir daher ein, wenn die Berechnung beider Werte keinen Fehler ausl&ouml;sen kann, etwa bei Konstanten oder einfachen Feldwerten. Kann einer der Werte einen Fehler ausl&ouml;sen, verwenden wir <b>If&#8230;Then<\/b>.<\/p>\n<h2>Switch: Mehrere Bedingungen nacheinander pr&uuml;fen<\/h2>\n<p><b>Switch<\/b> erwartet mehrere Paare aus einer Bedingung und einem Wert. Die Funktion liefert den Wert des ersten Paares, dessen Bedingung <b>True<\/b> ergibt. Als Beispiel ermitteln wir mit der Funktion <b>Staffelrabatt<\/b> den Rabattsatz anhand der Bestellsumme. Die Funktion gibt einen Wert vom Datentyp <b>Variant<\/b> zur&uuml;ck, weil <b>Switch<\/b> auch <b>Null<\/b> liefern kann:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>Staffelrabatt( _\r\n        curSumme<span style=\"color:blue;\"> As Currency<\/span>)<span style=\"color:blue;\"> As Variant<\/span>\r\n    Staffelrabatt = Switch(curSumme &gt;= 1000, 0.1, _\r\n        curSumme &gt;= 500, 0.05, _\r\n        curSumme &gt;= 0, 0)\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Ab einer Summe von <b>1000<\/b> erhalten wir den Rabattsatz <b>0,1<\/b>, ab <b>500<\/b> den Satz <b>0,05<\/b> und darunter <b>0<\/b>. <b>Switch<\/b> pr&uuml;ft die Bedingungen von links nach rechts.<\/p>\n<p>Die Reihenfolge bestimmt deshalb das Ergebnis, denn mit dem Vergleichsoperator Gr&ouml;&szlig;er-gleich (<b>>=<\/b>) trifft jede Summe ab <b>0<\/b> zu. St&uuml;nde <b>curSumme >= 0<\/b> am Anfang, erhielten Summen ab <b>0<\/b> den Rabattsatz <b>0<\/b>.<\/p>\n<p>Trifft keine Bedingung zu, liefert <b>Switch<\/b> den Wert <b>Null<\/b>. Bei der Summe <b>-1<\/b> ist das der Fall. Die Zuweisung dieses Ergebnisses an eine Variable vom Typ <b>Double<\/b> oder <b>String<\/b> l&ouml;st den Fehler <b>94<\/b> mit der Meldung <b>Unzul&auml;ssige Verwendung von Null<\/b> aus. Mit <b>Nz<\/b> erhalten wir stattdessen <b>0<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Nz(Staffelrabatt(-1), 0)<\/pre>\n<p>Wie bei <b>IIf<\/b> wertet VBA vor dem Aufruf alle Bedingungen und alle Werte aus. Der Ausdruck <b>Switch(True, 1, True, 1 \/ 0)<\/b> l&ouml;st deshalb trotz des ersten Treffers den Fehler <b>11<\/b> aus.<\/p>\n<h2>Choose: Einen Wert nach Position ausw&auml;hlen<\/h2>\n<p><b>Choose<\/b> erwartet einen Index und eine Liste von Werten und liefert den Wert an der Position des Index. Die erste Position hat den Index <b>1<\/b>. Die Funktion <b>Lieferart<\/b> &uuml;bersetzt einen Code, wie wir ihn in einem Feld speichern, in einen Text:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>Lieferart(lngCode<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Variant<\/span>\r\n    Lieferart = Choose(lngCode, \"Standard\", \"Express\", _\r\n        \"Abholung\")\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Der Aufruf <b>Lieferart(1)<\/b> liefert <b>Standard<\/b> und <b>Lieferart(3)<\/b> liefert <b>Abholung<\/b>. Liegt der Index au&szlig;erhalb der Liste, etwa bei <b>0<\/b> oder bei <b>4<\/b>, liefert <b>Choose<\/b> den Wert <b>Null<\/b>. Eine Vorgabe legen wir wieder mit <b>Nz<\/b> fest, die Ausgabe lautet <b>unbekannt<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> Nz(Lieferart(4), \"unbekannt\")<\/pre>\n<p>Hat der Index Nachkommastellen, schneidet <b>Choose<\/b> diese ab. <b>Choose(1.5, &#8222;a&#8220;, &#8222;b&#8220;, &#8222;c&#8220;)<\/b> liefert daher <b>a<\/b>. Auch hier wertet VBA alle Werte der Liste aus: <b>Choose(1, &#8222;a&#8220;, 1 \/ 0)<\/b> l&ouml;st den Fehler <b>11<\/b> aus.<\/p>\n<h2>Die Funktionen im Formular ausprobieren<\/h2>\n<p>Das Formular <b>frmBedingungsfunktionen<\/b> enth&auml;lt f&uuml;r jede Funktion einen Bereich mit Eingabe- und Ergebnisfeldern. Die Ergebnisfelder zeigen den R&uuml;ckgabewert und seinen Datentyp in der Form Wert (Datentyp) (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_05\/pic_524_001.png\" alt=\"Das Formular frmBedingungsfunktionen mit den Bereichen Nz, IIf, Switch und Choose\" width=\"599,6265\" height=\"471,1353\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Das Formular frmBedingungsfunktionen mit den Bereichen Nz, IIf, Switch und Choose<\/span><\/b><\/p>\n<p>Im Bereich <b>Nz<\/b> bleibt das Feld <b>Rabatt<\/b> zun&auml;chst leer: <b>Mit Nz<\/b> zeigt <b>100 (Currency)<\/b>, <b>Ohne Nz<\/b> zeigt <b>Null (Null)<\/b>. Mit dem Rabatt <b>0,1<\/b> erscheint bei <b>Mit Nz<\/b> der Wert <b>90 (Currency)<\/b>.<\/p>\n<p>Im Bereich <b>IIf<\/b> steht bei <b>Summe<\/b> der Wert <b>0<\/b>. <b>Mit IIf<\/b> zeigt <b>Fehler 11: Division durch Null<\/b>, <b>Mit If&#8230;Then<\/b> zeigt <b>0 (Double)<\/b>. Mit dem <b>Teil<\/b> <b>5<\/b> und der <b>Summe<\/b> <b>4<\/b> zeigen beide Felder <b>1,25 (Double)<\/b>.<\/p>\n<p>Geben wir im Bereich <b>Switch<\/b> bei <b>Bestellsumme<\/b> den Wert <b>-5<\/b> ein, zeigen <b>Rabattsatz<\/b> <b>Null (Null)<\/b> und <b>Mit Nz<\/b> <b>0 (Integer)<\/b>. Beim <b>Code<\/b> <b>0<\/b> im Bereich <b>Choose<\/b> zeigen <b>Lieferart<\/b> <b>Null (Null)<\/b> und <b>Mit Nz<\/b> <b>unbekannt (String)<\/b>.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p><b>Nz<\/b> ersetzt <b>Null<\/b>, <b>IIf<\/b> liefert einen von zwei Werten, <b>Switch<\/b> den Wert des ersten zutreffenden Paares und <b>Choose<\/b> den Wert an der Position des Index. <b>Switch<\/b> und <b>Choose<\/b> liefern ohne Treffer <b>Null<\/b>.<\/p>\n<p>Da VBA bei <b>IIf<\/b>, <b>Switch<\/b> und <b>Choose<\/b> alle Werte vor dem Aufruf auswertet, verwenden wir <b>If&#8230;Then<\/b> oder <b>Select Case<\/b>, sobald ein Wert einen Fehler ausl&ouml;sen kann (siehe <b>VBA Basics: Bedingungen (www.vbentwickler.de\/336)<\/b>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit If&#8230;Then und Select Case entscheiden wir, welche Anweisungen VBA ausf&uuml;hrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh&auml;ngt, etwa einen Rabattsatz oder die Vorgabe f&uuml;r ein leeres Feld. Daf&uuml;r stehen die Funktionen Nz, IIf, Switch und Choose zur Verf&uuml;gung. Sie werten alle Parameter aus und liefern in bestimmten F&auml;llen Null, was zu Fehlern f&uuml;hren kann. Wie die Funktionen arbeiten und wann wir besser If&#8230;Then verwenden, liest Du in diesem Artikel.<\/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,"footnotes":""},"categories":[662026,66042026,66052026,44000030,44000025],"tags":[],"yst_prominent_words":[],"class_list":["post-55000524","post","type-post","status-publish","format-standard","hentry","category-662026","category-66042026","category-66052026","category-PowerPoint_programmieren","category-VBAProgrammierung"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-11-04T15:30:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#blogposting\",\"name\":\"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler\",\"headline\":\"VBA Basics: Nz, IIf, Switch und Choose\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2026_05\\\/pic_524_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#articleImage\"},\"datePublished\":\"2026-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#webpage\"},\"articleSection\":\"2026, 4\\\/2026, 5\\\/2026, PowerPoint programmieren, VBA-Programmierung\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"position\":2,\"name\":\"2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/#listItem\",\"name\":\"4\\\/2026\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/#listItem\",\"position\":3,\"name\":\"4\\\/2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#listItem\",\"name\":\"VBA Basics: Nz, IIf, Switch und Choose\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#listItem\",\"position\":4,\"name\":\"VBA Basics: Nz, IIf, Switch und Choose\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/4\\\/2026\\\/#listItem\",\"name\":\"4\\\/2026\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/\",\"name\":\"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler\",\"description\":\"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\\u00fcr ein leeres Feld. Daf\\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\\u00e4llen Null, was zu Fehlern f\\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/VBA_Basics_Nz_IIf_Switch_und_Choose\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2026-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler","description":"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.","canonical_url":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#blogposting","name":"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler","headline":"VBA Basics: Nz, IIf, Switch und Choose","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2026_05\/pic_524_001.png","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#articleImage"},"datePublished":"2026-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#webpage"},"articleSection":"2026, 4\/2026, 5\/2026, PowerPoint programmieren, VBA-Programmierung"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","position":2,"name":"2026","item":"https:\/\/vbentwickler.de\/category\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/#listItem","name":"4\/2026"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/#listItem","position":3,"name":"4\/2026","item":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#listItem","name":"VBA Basics: Nz, IIf, Switch und Choose"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#listItem","position":4,"name":"VBA Basics: Nz, IIf, Switch und Choose","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/#listItem","name":"4\/2026"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#webpage","url":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/","name":"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler","description":"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2026-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler","og:description":"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.","og:url":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2026-11-04T15:30:05+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"VBA Basics: Nz, IIf, Switch und Choose - Visual Basic Entwickler","twitter:description":"Mit If...Then und Select Case entscheiden wir, welche Anweisungen VBA ausf\u00fchrt. Oft brauchen wir aber einen Wert, der von einer Bedingung abh\u00e4ngt, etwa einen Rabattsatz oder die Vorgabe f\u00fcr ein leeres Feld. Daf\u00fcr stehen die Funktionen Nz, IIf, Switch und Choose zur Verf\u00fcgung. Sie werten alle Parameter aus und liefern in bestimmten F\u00e4llen Null, was zu Fehlern f\u00fchren kann. Wie die Funktionen arbeiten und wann wir besser If...Then verwenden, liest Du in diesem Artikel.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000524","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2026-11-04 14:29:33","updated":"2026-11-04 14:29:33","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/\" title=\"2026\">2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/\" title=\"4\/2026\">4\/2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tVBA Basics: Nz, IIf, Switch und Choose\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de\/"},{"label":"2026","link":"https:\/\/vbentwickler.de\/category\/2026\/"},{"label":"4\/2026","link":"https:\/\/vbentwickler.de\/category\/2026\/4\/2026\/"},{"label":"VBA Basics: Nz, IIf, Switch und Choose","link":"https:\/\/vbentwickler.de\/VBA_Basics_Nz_IIf_Switch_und_Choose\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000524","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=55000524"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000524\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000524"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}