{"id":55000710,"date":"2026-02-01T00:00:00","date_gmt":"2026-02-01T00:00:00","guid":{"rendered":"http:\/\/access-basics.de\/710"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBA_basics_Eigene_Funktionen_und_Prozeduren","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html","title":{"rendered":"VBA [basics]: Eigene Funktionen und Prozeduren"},"content":{"rendered":"<p class='introduction'>Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl&auml;ufe wiederholen sich. Man pr&uuml;ft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code &#8211; und wenn sich etwas &auml;ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L&ouml;sung daf&uuml;r sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte &uuml;bergibt und zur&uuml;ckbekommt und wie man Code damit sauber strukturiert.<\/p>\n<h2>Sub und Function &#8211; der Unterschied<\/h2>\n<p>In VBA gibt es zwei Arten von Codebausteinen: <b>Sub<\/b> und <b>Function<\/b>. Der Unterschied ist einfach: Eine <b>Sub<\/b>-Prozedur f&uuml;hrt etwas aus und gibt keinen Wert zur&uuml;ck.<\/p>\n<p>Eine <b>Function<\/b> tut dasselbe, liefert aber am Ende einen R&uuml;ckgabewert. Wann man welches nimmt, ergibt sich meist von selbst: Soll Code etwas tun &#8211; ein Formular &ouml;ffnen, Daten speichern, eine Meldung anzeigen -, ist <b>Sub<\/b> richtig.<\/p>\n<p>Soll Code etwas berechnen oder pr&uuml;fen und das Ergebnis zur&uuml;ckliefern, ist <b>Function<\/b> richtig.<\/p>\n<p>Ein h&auml;ufiger Anf&auml;ngerfehler ist es, eine <b>Function<\/b> zu schreiben, aber nie einen R&uuml;ckgabewert zuzuweisen &#8211; die Funktion verh&auml;lt sich dann wie eine <b>Sub<\/b> und gibt immer den Standardwert des deklarierten R&uuml;ckgabetyps zur&uuml;ck.<\/p>\n<p>Wenn man keinen R&uuml;ckgabewert braucht, sollte man von vornherein <b>Sub<\/b> verwenden.<\/p>\n<h2>Eine Sub-Prozedur erstellen<\/h2>\n<p>Eine <b>Sub<\/b>-Prozedur wird mit dem Schl&uuml;sselwort <b>Sub<\/b> eingeleitet, gefolgt vom Namen und einem Klammerpaar. Bei der Deklaration sind die Klammern immer erforderlich, auch wenn die Prozedur keine Parameter entgegennimmt. Abgeschlossen wird sie mit <b>End Sub<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>MeldungAusgeben()\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"Hallo Welt!\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Das Schl&uuml;sselwort <b>Public<\/b> bedeutet, dass die Prozedur aus anderen Modulen heraus aufgerufen werden kann. Die Alternative ist <b>Private<\/b> &#8211; dann ist die Prozedur nur innerhalb des eigenen Moduls sichtbar.<\/p>\n<p>Fehlt das Schl&uuml;sselwort ganz, h&auml;ngt das Verhalten vom Modultyp ab: In einem Standardmodul gilt dann <b>Public<\/b>, in einem Klassenmodul hingegen <b>Private<\/b>.<\/p>\n<p>Als Faustregel gilt deshalb: Immer explizit angeben, was man meint. Hilfsprozeduren, die nur intern gebraucht werden, macht man <b>Private<\/b>.<\/p>\n<p>Prozeduren, die von au&szlig;en aufgerufen werden sollen, macht man <b>Public<\/b>.<\/p>\n<p>Aufgerufen wird eine Prozedur einfach durch ihren Namen:<\/p>\n<pre>MeldungAusgeben\r\n'oder mit dem Schl&uuml;sselwort Call:\r\n<span style=\"color:blue;\">Call<\/span> MeldungAusgeben<\/pre>\n<p>Das Schl&uuml;sselwort <b>Call<\/b> wird heute selten verwendet, ist aber weiterhin vollst&auml;ndig g&uuml;ltig. Der Aufruf ohne <b>Call<\/b> ist die &uuml;blichere Schreibweise.<\/p>\n<h2>Parameter &uuml;bergeben<\/h2>\n<p>Prozeduren werden erst richtig n&uuml;tzlich, wenn man ihnen Daten mitgeben kann, mit denen sie arbeiten sollen. Das geschieht &uuml;ber Parameter, die in den Klammern nach dem Prozedurnamen deklariert werden:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>KundeAnzeigen(strNachname<span style=\"color:blue;\"><span style=\"color:blue;\"> As String<\/span><\/span>, _\r\n         lngKundeID<span style=\"color:blue;\"><span style=\"color:blue;\"> As Long<\/span><\/span>)\r\n     <span style=\"color:blue;\"><span style=\"color:blue;\">Debug.Print<\/span><\/span> lngKundeID & \": \" & strNachname\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Beim Aufruf &uuml;bergibt man die Werte in der Reihenfolge der Parameterliste:<\/p>\n<pre>KundeAnzeigen \"M&uuml;ller\", 42<\/pre>\n<p>Alternativ kann man Parameter auch mit ihrem Namen &uuml;bergeben &#8211; dann spielt die Reihenfolge keine Rolle:<\/p>\n<pre>KundeAnzeigen lngKundeID:=42, strNachname:=\"M&uuml;ller\"<\/pre>\n<p>Diese benannte Schreibweise ist ausf&uuml;hrlicher, macht den Aufruf bei vielen Parametern aber deutlich lesbarer &#8211; man sieht sofort, was welchem Parameter entspricht.<\/p>\n<h2>ByVal und ByRef &#8211; wie Parameter &uuml;bergeben werden<\/h2>\n<p>In VBA gibt es zwei Arten, wie ein Parameter an eine Prozedur &uuml;bergeben wird: <b>ByVal<\/b> und <b>ByRef<\/b>. Der Unterschied ist wichtig und wird oft &uuml;bersehen.<\/p>\n<p>Bei <b>ByRef<\/b> &#8211; das ist die Standardeinstellung, wenn man nichts angibt &#8211; &uuml;bergibt VBA eine Referenz auf die urspr&uuml;ngliche Variable.<\/p>\n<p>Das bedeutet: Wenn die Prozedur den Parameterwert &auml;ndert, &auml;ndert sich auch die urspr&uuml;ngliche Variable beim Aufrufer. Bei <b>ByVal<\/b> hingegen bekommt die Prozedur eine Kopie des Wertes &#8211; was auch immer sie damit macht, die urspr&uuml;ngliche Variable bleibt unber&uuml;hrt.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>VerdoppelnByRef(ByRef lngWert<span style=\"color:blue;\"><span style=\"color:blue;\"> As Long<\/span><\/span>)\r\n     lngWert = lngWert * 2\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>VerdoppelnByVal(ByVal lngWert<span style=\"color:blue;\"><span style=\"color:blue;\"> As Long<\/span><\/span>)\r\n     lngWert = lngWert * 2\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Public Sub <\/span>TestUebergabe()\r\n     <span style=\"color:blue;\">Dim <\/span>lngZahl<span style=\"color:blue;\"><span style=\"color:blue;\"> As Long<\/span><\/span>\r\n     lngZahl = 5\r\n     VerdoppelnByRef lngZahl\r\n     <span style=\"color:blue;\"><span style=\"color:blue;\">Debug.Print<\/span><\/span> lngZahl  '10\r\n     lngZahl = 5\r\n     VerdoppelnByVal lngZahl\r\n     <span style=\"color:blue;\"><span style=\"color:blue;\">Debug.Print<\/span><\/span> lngZahl  '5\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\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>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 400 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:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000710\/\">\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\">Passwort<\/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\">Angemeldet bleiben<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000710?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\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000710\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"c7b98d2771\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Anmelden\"\/>\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>Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl&auml;ufe wiederholen sich. Man pr&uuml;ft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code &#8211; und wenn sich etwas &auml;ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L&ouml;sung daf&uuml;r sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte &uuml;bergibt und zur&uuml;ckbekommt und wie man Code damit sauber strukturiert.<\/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":[66012026,662026,44000011],"tags":[],"class_list":["post-55000710","post","type-post","status-publish","format-standard","hentry","category-66012026","category-662026","category-VBAGrundlagen"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.\" \/>\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:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Access [basics] - DAS ACCESS-MAGAZIN F\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]\" \/>\n\t\t<meta property=\"og:description\" content=\"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t\t<meta property=\"og:image:height\" content=\"127\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-02-01T00:00:00+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]: Eigene Funktionen und Prozeduren - Access [basics]\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.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:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#blogposting\",\"name\":\"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]\",\"headline\":\"VBA [basics]: Eigene Funktionen und Prozeduren\",\"author\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/author\\\/andreminhorst-com#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/access-basics.de\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/logo400.png\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/#articleImage\",\"width\":400,\"height\":127},\"datePublished\":\"2026-02-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#webpage\"},\"articleSection\":\"1\\\/2026, 2026, VBA-Grundlagen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-basics.de\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026#listItem\",\"position\":2,\"name\":\"2026\",\"item\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026\\\/1\\\/2026#listItem\",\"name\":\"1\\\/2026\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026\\\/1\\\/2026#listItem\",\"position\":3,\"name\":\"1\\\/2026\",\"item\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026\\\/1\\\/2026\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#listItem\",\"name\":\"VBA [basics]: Eigene Funktionen und Prozeduren\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#listItem\",\"position\":4,\"name\":\"VBA [basics]: Eigene Funktionen und Prozeduren\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/category\\\/2026\\\/1\\\/2026#listItem\",\"name\":\"1\\\/2026\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/#organization\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"url\":\"https:\\\/\\\/access-basics.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/access-basics.de\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/logo400.png\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\\\/#organizationLogo\",\"width\":400,\"height\":127},\"image\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/author\\\/andreminhorst-com#author\",\"url\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/author\\\/andreminhorst-com\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#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:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#webpage\",\"url\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\",\"name\":\"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]\",\"description\":\"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\\u00e4ufe wiederholen sich. Man pr\\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \\u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\\u00f6sung daf\\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \\u00fcbergibt und zur\\u00fcckbekommt und wie man Code damit sauber strukturiert.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/author\\\/andreminhorst-com#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/index.php\\\/author\\\/andreminhorst-com#author\"},\"datePublished\":\"2026-02-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-basics.de\\\/#website\",\"url\":\"https:\\\/\\\/access-basics.de\\\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-basics.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]","description":"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.","canonical_url":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#blogposting","name":"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]","headline":"VBA [basics]: Eigene Funktionen und Prozeduren","author":{"@id":"https:\/\/access-basics.de\/index.php\/author\/andreminhorst-com#author"},"publisher":{"@id":"https:\/\/access-basics.de\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png","@id":"https:\/\/access-basics.de\/#articleImage","width":400,"height":127},"datePublished":"2026-02-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#webpage"},"isPartOf":{"@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#webpage"},"articleSection":"1\/2026, 2026, VBA-Grundlagen"},{"@type":"BreadcrumbList","@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/access-basics.de\/#listItem","position":1,"name":"Home","item":"https:\/\/access-basics.de\/","nextItem":{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/category\/2026#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/category\/2026#listItem","position":2,"name":"2026","item":"https:\/\/access-basics.de\/index.php\/category\/2026","nextItem":{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/category\/2026\/1\/2026#listItem","name":"1\/2026"},"previousItem":{"@type":"ListItem","@id":"https:\/\/access-basics.de\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/category\/2026\/1\/2026#listItem","position":3,"name":"1\/2026","item":"https:\/\/access-basics.de\/index.php\/category\/2026\/1\/2026","nextItem":{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#listItem","name":"VBA [basics]: Eigene Funktionen und Prozeduren"},"previousItem":{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/category\/2026#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#listItem","position":4,"name":"VBA [basics]: Eigene Funktionen und Prozeduren","previousItem":{"@type":"ListItem","@id":"https:\/\/access-basics.de\/index.php\/category\/2026\/1\/2026#listItem","name":"1\/2026"}}]},{"@type":"Organization","@id":"https:\/\/access-basics.de\/#organization","name":"Access [basics]","description":"DAS ACCESS-MAGAZIN F\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN","url":"https:\/\/access-basics.de\/","logo":{"@type":"ImageObject","url":"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png","@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\/#organizationLogo","width":400,"height":127},"image":{"@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/access-basics.de\/index.php\/author\/andreminhorst-com#author","url":"https:\/\/access-basics.de\/index.php\/author\/andreminhorst-com","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#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:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#webpage","url":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html","name":"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]","description":"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/access-basics.de\/#website"},"breadcrumb":{"@id":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html#breadcrumblist"},"author":{"@id":"https:\/\/access-basics.de\/index.php\/author\/andreminhorst-com#author"},"creator":{"@id":"https:\/\/access-basics.de\/index.php\/author\/andreminhorst-com#author"},"datePublished":"2026-02-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/access-basics.de\/#website","url":"https:\/\/access-basics.de\/","name":"Access [basics]","description":"DAS ACCESS-MAGAZIN F\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN","inLanguage":"de-DE","publisher":{"@id":"https:\/\/access-basics.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Access [basics] - DAS ACCESS-MAGAZIN F\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN","og:type":"article","og:title":"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]","og:description":"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.","og:url":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html","og:image":"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png","og:image:secure_url":"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png","og:image:width":400,"og:image:height":127,"article:published_time":"2026-02-01T00:00:00+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"VBA [basics]: Eigene Funktionen und Prozeduren - Access [basics]","twitter:description":"Wer VBA-Code schreibt, merkt schnell: Bestimmte Abl\u00e4ufe wiederholen sich. Man pr\u00fcft an drei verschiedenen Stellen, ob ein Textfeld leer ist. Man berechnet denselben Wert an zwei verschiedenen Stellen. Man kopiert Code - und wenn sich etwas \u00e4ndert, muss man es an drei Stellen korrigieren, und vergisst garantiert eine. Die L\u00f6sung daf\u00fcr sind eigene Prozeduren und Funktionen: wiederverwendbare Codebausteine, die man einmal schreibt und beliebig oft aufruft. In diesem Artikel zeigen wir, wie man sie erstellt, wie man Werte \u00fcbergibt und zur\u00fcckbekommt und wie man Code damit sauber strukturiert.","twitter:image":"https:\/\/access-basics.de\/wp-content\/uploads\/2021\/02\/logo400.png"},"aioseo_meta_data":{"post_id":"55000710","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-03-14 13:45:55","updated":"2026-10-19 17:35:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/access-basics.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:\/\/access-basics.de\/index.php\/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:\/\/access-basics.de\/index.php\/category\/2026\/1\/2026\" title=\"1\/2026\">1\/2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tVBA &#91;basics&#93;: Eigene Funktionen und Prozeduren\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/access-basics.de\/"},{"label":"2026","link":"https:\/\/access-basics.de\/index.php\/category\/2026"},{"label":"1\/2026","link":"https:\/\/access-basics.de\/index.php\/category\/2026\/1\/2026"},{"label":"VBA [basics]: Eigene Funktionen und Prozeduren","link":"https:\/\/access-basics.de\/index.php\/VBA_basics_Eigene_Funktionen_und_Prozeduren.html"}],"_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000710"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000710\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}