{"id":55000411,"date":"2018-06-01T00:00:00","date_gmt":"2020-01-24T16:00:09","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=411"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Excel_fernsteuern_Teil_1_Initialisierung","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html","title":{"rendered":"Excel fernsteuern, Teil 1: Initialisierung"},"content":{"rendered":"<p class='introduction'>Von Access aus k&ouml;nnen Sie andere Anwendungen per VBA fernsteuern, wenn diese Anwendung dies unterst&uuml;tzt. Das ist grunds&auml;tzlich bei den &uuml;brigen Office-Anwendungen wie Excel, Outlook, Word oder PowerPoint der Fall. In dieser Artikelserie schauen wir uns an, wie Sie eine Excel-Anwendung fernsteuern k&ouml;nnen und wie Sie Dokumente anlegen, Daten in eine Excel-Tabelle schreiben oder die Daten auslesen.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1803_AccessUndExcelFernsteuern.accdb<\/b>.<\/p>\n<h2>Early Binding und Late Binding<\/h2>\n<p>Sie k&ouml;nnen eine Anwendung wie etwas Microsoft Excel auf verschiedene Arten referenzieren, wenn Sie diese fernsteuern wollen. Die unterschiedlichen Herangehensweisen hei&szlig;en Early Binding und Late Binding. Diese beiden haben wir bereits in einem fr&uuml;heren Artikel namens <b>Early Bindung und Late Binding <\/b>erl&auml;utert. Im vorliegenden Beitrag wollen wir die Technik Early Binding nutzen, da dies eine komfortablere Programmierung erm&ouml;glicht.<\/p>\n<p>Dazu f&uuml;gen wir dem VBA-Projekt der aktuellen Access-Datenbank einen Verweis auf die Bibliothek <b>Microsoft Excel x.0 Object Library <\/b>hinzu, wobei das <b>x <\/b>f&uuml;r die auf Ihrem Rechner installierte Version von Microsoft Excel handelt. Um dies zu erledigen, &ouml;ffnen Sie den VBA-Editor &#8211; beispielsweise mit der Tastenkombination <b>Alt + F11 <\/b>-, und rufen dann den Men&uuml;eintrag <b>Extras|Verweise <\/b>auf. Hier suchen Sie den gew&uuml;nschten Eintrag aus und markieren diesen &uuml;ber das entsprechende Kontrollk&auml;stchen (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_411_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_411_001.png\" alt=\"Verweis auf die Excel-Bibliothek\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Verweis auf die Excel-Bibliothek<\/p>\n<p>Wenn Sie nun mit der Taste <b>F2 <\/b>oder dem Men&uuml;eintrag <b>Ansicht|Objektkatalog <\/b>den Objektkatalog &ouml;ffnen, finden Sie dort im oberen Kombinationsfeld den Eintrag <b>Excel <\/b>vor.<\/p>\n<p>W&auml;hlen Sie diesen aus, erscheinen unten alle Elemente der Excel-Bibliothek (siehe Bild 2). Dies ist eine gute Anlaufstelle, wenn Sie einmal nach bestimmten Klassen, Methoden, Eigenschaften oder Ereignissen suchen wollen.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_411_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_411_002.png\" alt=\"Die Excel-Elemente im Objektkatalog\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Die Excel-Elemente im Objektkatalog<\/p>\n<h2>Excel-Instanz erstellen<\/h2>\n<p>Bevor wir auf die Daten einer Excel-Datei zugreifen k&ouml;nnen, um diese entweder einzulesen oder auch zu &auml;ndern, ben&ouml;tigen wir Zugriff auf eine Excel-Instanz. Das kann eine laufende Instanz sein, also eine solche, die der Benutzer bereits ge&ouml;ffnet hat, oder wir erstellen einfach per VBA-Code eine neue Instanz.<\/p>\n<p>In beiden F&auml;llen wollen Sie einen Verweis auf die Excel-Instanz in einer Objektvariablen speichern, um sp&auml;ter &uuml;ber diese auf die Excel-Instanz zuzugreifen. Diese deklarieren wir wie folgt, zun&auml;chst in einer einfachen Prozedur, die wir in einem Standardmodul anlegen:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>ExcelInstanzieren()\r\n    <span style=\"color:blue;\">Dim <\/span>objExcel<span style=\"color:blue;\"> As <\/span>Excel.Application\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Neue Instanz erstellen<\/h2>\n<p>Nun wollen wir eine neue Excel-Instanz erstellen und den Verweis darauf in der Variablen <b>objExcel <\/b>speichern. Das geht so:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>ExcelInstanzieren()\r\n    <span style=\"color:blue;\">Dim <\/span>objExcel<span style=\"color:blue;\"> As <\/span>Excel.Application\r\n    <span style=\"color:blue;\">Set<\/span> objExcel = <span style=\"color:blue;\">New<\/span> Excel.Application\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies erstellt eine neue Excel-Instanz. Diese verschwindet aber genau so schnell wieder, wie sie erstellt wurde, denn ihre Variable ist ja nur lokal in der Prozedur deklariert. Wenn die Prozedur beendet und somit die Variable zur&uuml;ckgesetzt wird, verschwindet auch die Excel-Instanz wieder (die Sie an dieser Stelle &uuml;brigens noch nicht einmal sehen).<\/p>\n<p>Ob das wirklich geschieht, k&ouml;nnen Sie folgenderma&szlig;en testen: Setzen Sie einen Haltepunkt auf die Zeile <b>End Sub<\/b>. Wenn Sie die Prozedur nun mit der Taste <b>F5 <\/b>starten, bleibt die Prozedur an dieserm Haltepunkt stehen. An dieser Stelle &ouml;ffnen Sie nun den Task-Manager (einfach Task-Manager in die Suchen-Box von Windows eingeben und die Eingabetaste bet&auml;tigen) und schauen, ob es dort einen Eintrag namens <b>Microsoft Excel (32 Bit)<\/b> gibt (gegebenenfalls auch <b>Microsoft Excel (64 Bit)<\/b>). Dieser Eintrag sollte etwa unter Windows 10 im Bereich <b>Hintergrundprozesse <\/b>zu finden sein (siehe Bild 3).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_411_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_411_003.png\" alt=\"Die frisch gestartete Excel-Instanz im Tast-Manager\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Die frisch gestartete Excel-Instanz im Tast-Manager<\/p>\n<p>Lassen Sie die Routine nun weiterlaufen, verschwindet auch diese Instanz schnell wieder aus dem Task Manager. Sie k&ouml;nnen auch mehrere Instanzen gleichzeitig starten. Dazu ben&ouml;tigen Sie dann auch mehrere Objektvariablen. Der folgende Code liefert beispielsweise gleich zwei Eintr&auml;ge f&uuml;r Excel im Task-Manager:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objExcel<span style=\"color:blue;\"> As <\/span>Excel.Application\r\n<span style=\"color:blue;\">Dim <\/span>objExcel2<span style=\"color:blue;\"> As <\/span>Excel.Application\r\n<span style=\"color:blue;\">Set<\/span> objExcel = <span style=\"color:blue;\">New<\/span> Excel.Application\r\n<span style=\"color:blue;\">Set<\/span> objExcel2 = <span style=\"color:blue;\">New<\/span> Excel.Application<\/pre>\n<h2>Instanzvariable global deklarieren<\/h2>\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\/55000411\/\">\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=\"\/index.php\/data\/wp\/v2\/posts\/55000411?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\/55000411\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"0c38ab74e4\"\/>\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>Von Access aus k&ouml;nnen Sie andere Anwendungen per VBA fernsteuern, wenn diese Anwendung dies unterst&uuml;tzt. Das ist grunds&auml;tzlich bei den &uuml;brigen Office-Anwendungen wie Excel, Outlook, Word oder PowerPoint der Fall. In dieser Artikelserie schauen wir uns an, wie Sie eine Excel-Anwendung fernsteuern k&ouml;nnen und wie Sie Dokumente anlegen, Daten in eine Excel-Tabelle schreiben oder die Daten auslesen.<\/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":[662018,66032018,44000015],"tags":[],"class_list":["post-55000411","post","type-post","status-publish","format-standard","hentry","category-662018","category-66032018","category-Interaktiv"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Excel fernsteuern, Teil 1: Initialisierung - Access [basics]<\/title>\n<meta name=\"description\" content=\"Von Access aus k\u00f6nnen Sie andere Anwendungen per VBA fernsteuern, wenn diese Anwendung dies unterst\u00fctzt. Das ist grunds\u00e4tzlich bei den \u00fcbrigen Office-Anwendungen wie Excel, Outlook, Word oder PowerPoint der Fall. In dieser Artikelserie schauen wir uns an, wie Sie eine Excel-Anwendung fernsteuern k\u00f6nnen und wie Sie Dokumente anlegen, Daten in eine Excel-Tabelle schreiben oder die Daten auslesen.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Excel fernsteuern, Teil 1: Initialisierung - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Von Access aus k\u00f6nnen Sie andere Anwendungen per VBA fernsteuern, wenn diese Anwendung dies unterst\u00fctzt. Das ist grunds\u00e4tzlich bei den \u00fcbrigen Office-Anwendungen wie Excel, Outlook, Word oder PowerPoint der Fall. In dieser Artikelserie schauen wir uns an, wie Sie eine Excel-Anwendung fernsteuern k\u00f6nnen und wie Sie Dokumente anlegen, Daten in eine Excel-Tabelle schreiben oder die Daten auslesen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T16:00:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/pic_411_001.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"9\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@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\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_411_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html\",\"name\":\"Excel fernsteuern, Teil 1: Initialisierung - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html#primaryimage\"},\"datePublished\":\"2020-01-24T16:00:09+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Von Access aus k\\u00f6nnen Sie andere Anwendungen per VBA fernsteuern, wenn diese Anwendung dies unterst\\u00fctzt. Das ist grunds\\u00e4tzlich bei den \\u00fcbrigen Office-Anwendungen wie Excel, Outlook, Word oder PowerPoint der Fall. In dieser Artikelserie schauen wir uns an, wie Sie eine Excel-Anwendung fernsteuern k\\u00f6nnen und wie Sie Dokumente anlegen, Daten in eine Excel-Tabelle schreiben oder die Daten auslesen.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Excel_fernsteuern_Teil_1_Initialisierung.html\",\"name\":\"Excel fernsteuern, Teil 1: Initialisierung\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000411","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=55000411"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000411\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}