{"id":55000374,"date":"2023-06-01T00:00:00","date_gmt":"2023-06-21T11:42:03","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=374"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Excel_Bilder_in_Worksheets_einfuegen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Excel_Bilder_in_Worksheets_einfuegen\/","title":{"rendered":"Excel: Bilder in Worksheets einf&uuml;gen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/a3b9edd9712f48508b9ab4fa8d266c21\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Excel ist ein leistungsstarkes und vielseitiges Tool f&uuml;r die Datenanalyse und -visualisierung. Es erm&ouml;glicht es den Benutzern, gro&szlig;e Datenmengen effektiv zu verwalten und in verschiedenen Formen darzustellen. Bilder sind dabei oft eine wichtige Erg&auml;nzung, um die Analyse von Daten oder Informationen zu unterst&uuml;tzen. Das Einf&uuml;gen von Bilddateien in Excel-Worksheets per VBA ist eine solche Aufgabe, die es Benutzern erm&ouml;glicht, Bilder in ihre Arbeitsmappen einzuf&uuml;gen, um die Datenanalyse und -pr&auml;sentation zu verbessern. In diesem Artikel werden wir uns damit besch&auml;ftigen, wie man Bilddateien in Excel-Worksheets per VBA einf&uuml;gen kann und welche Vorteile und Anwendungsf&auml;lle es gibt.<\/b><\/p>\n<h2>Wozu Bilder in Excel einf&uuml;gen?<\/h2>\n<p>F&uuml;r das Einf&uuml;gen von Bildern in Excel-Dokumenten gibt es verschiedene Anwendungszwecke. Hier sind ein paar davon:<\/p>\n<ul>\n<li>Einf&uuml;gen von Firmenlogos oder Produktbildern in Rechnungen oder Angebote, um sie ansprechender zu gestalten.<\/li>\n<li>Hinzuf&uuml;gen von Fotos von Mitarbeitern oder Teams in Organigrammen, um sie pers&ouml;nlicher und einladender zu gestalten.<\/li>\n<li>Einf&uuml;gen von Diagrammen oder Grafiken, die auf Daten basieren, um die Visualisierung von Ergebnissen oder Trends zu verbessern.<\/li>\n<li>Hinzuf&uuml;gen von Screenshots oder Bildern von Webseiten, um die Analyse von Daten oder Informationen zu unterst&uuml;tzen.<\/li>\n<li>Einf&uuml;gen von Bildern, um Anleitungen oder Arbeitsanweisungen in Excel-Tabellen zu erg&auml;nzen, um den Prozess oder das Ergebnis besser zu erkl&auml;ren.<\/li>\n<\/ul>\n<h2>Bild einf&uuml;gen per Benutzeroberfl&auml;che<\/h2>\n<p>Wenn wir ein Bild in eine Zelle einf&uuml;gen wollen, gelingt dies am einfachsten &uuml;ber die Benutzeroberfl&auml;che. Dazu markieren wir die Zielzelle und w&auml;hle aus dem Ribbon den Eintrag <b>Einf&uuml;gen|Illustrationen|Bilder <\/b>aus und dann die Schaltfl&auml;che <b>Dieses Ger&auml;t&#8230; (siehe Bild 1).<\/b><\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_374_001.png\" alt=\"Bild einf&uuml;gen per Benutzeroberfl&auml;che\" width=\"499,6267\" height=\"343,4934\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Bild einf&uuml;gen per Benutzeroberfl&auml;che<\/span><\/b><\/p>\n<p>Damit aktivieren wir einen <b>Datei &ouml;ffnen<\/b>-Dialog, mit dem wir die einzuf&uuml;gende Bilddatei ausw&auml;hlen.<\/p>\n<p>Diese erscheint anschlie&szlig;end in der aktuell markierten Zelle (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_374_002.png\" alt=\"Ein eingef&uuml;gtes Bild\" width=\"499,6267\" height=\"338,2089\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Ein eingef&uuml;gtes Bild<\/span><\/b><\/p>\n<p>Klicken wir mit der rechten Maustaste auf das neu hinzugef&uuml;gte Bild, finden wir im Kontextmen&uuml; beispielsweise die Befehle <b>Gr&ouml;&szlig;e und Eigenschaften <\/b>oder <b>Grafik formatieren&#8230;<\/b> &#8211; mit Ersterem &ouml;ffnen wir den Bereich aus Bild 3.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_374_003.png\" alt=\"Einige Eigenschaften des Bildes\" width=\"424,6267\" height=\"563,354\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Einige Eigenschaften des Bildes<\/span><\/b><\/p>\n<p>Damit sehen wir bereits die Optionen, die wir gegebenenfalls auch mit VBA einstellen k&ouml;nnen.<\/p>\n<h2>Verschiedene VBA-Methoden<\/h2>\n<p>Nachfolgend stellen wir zwei verschiedene M&ouml;glichkeiten vor, Bilder per VBA zu einem Excel-Worksheet hinzuzuf&uuml;gen:<\/p>\n<ul>\n<li>die <b>Insert<\/b>-Methode der <b>Pictures<\/b>-Auflistung und<\/li>\n<li>die <b>AddPicture<\/b>-Methode der <b>Shapes<\/b>-Auflistung.<\/li>\n<\/ul>\n<p>Beide haben Vor- und Nachteile, die wir uns im Folgenden ansehen. Wir beginnen mit der <b>Insert<\/b>-Methode der <b>Pictures<\/b>-Auflistung.<\/p>\n<h2>Bilder einf&uuml;gen per Pictures.Insert<\/h2>\n<p>Zum Einf&uuml;gen von Bildern per VBA bietet das Excel-Objektmodell die Methode <b>Insert <\/b>der <b>Pictures<\/b>-Auflistung an. Diese erwartet lediglich den Pfad der einzuf&uuml;genden Bilddatei als Parameter.<\/p>\n<p>In folgendem Beispiel wollen wir eine Bilddatei einf&uuml;gen, die sich im gleichen Verzeichnis wie das Excel-Workbook befindet, welches wir mit <b>ThisWorkbook.Path <\/b>ermitteln:<\/p>\n<pre>ActiveSheet.Pictures.Insert _\r\n     ThisWorkbook.Path & \"\\pic001.png\"<\/pre>\n<p>Aber wo wird diese Bilddatei nun eingef&uuml;gt? An der Stelle der aktuell markierten Zelle. Wir m&uuml;ssen also, wenn wir eine Bilddatei gezielt in einem Excel-Worksheet ablegen wollen, zuvor die Zielzelle markieren.<\/p>\n<p>Handelt es sich um die Zelle <b>B2<\/b>, gelingt das wie folgt. Wir referenzieren das aktuelle Worksheet und hier die Zelle <b>B2<\/b>, dann f&uuml;gen wir das Bild ein:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>BilddateiEinfuegen()\r\n     <span style=\"color:blue;\">Dim <\/span>wsh<span style=\"color:blue;\"> As <\/span>Worksheet\r\n     <span style=\"color:blue;\">Set<\/span> wsh = ActiveSheet\r\n     wsh.Range(\"B2\").Select\r\n     wsh.Pictures.Insert ThisWorkbook.Path & \"\\pic001.png\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit landet das Bild in Zelle <b>B2<\/b> (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_374_004.png\" alt=\"Bild in Zelle B2 einf&uuml;gen\" width=\"424,6267\" height=\"266,9377\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Bild in Zelle B2 einf&uuml;gen<\/span><\/b><\/p>\n<h2>Bild ausw&auml;hlen und in aktueller Zelle einf&uuml;gen<\/h2>\n<p>Wir k&ouml;nnen das Bild auch zuvor per Dateiauswahl-Dialog ausw&auml;hlen und einfach an der aktuell markierten Zelle einf&uuml;gen. Dazu verwenden wir zun&auml;chst die Methode <b>GetOpenFilename<\/b> und weisen das Ergebnis der <b>Insert<\/b>-Methode zu:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>BilddateiAuswaehlen()\r\n     <span style=\"color:blue;\">Dim <\/span>strBild<span style=\"color:blue;\"> As String<\/span>\r\n     strBild = Application.GetOpenFilename(, , _\r\n         \"Bild ausw&auml;hlen\")\r\n     ActiveSheet.Pictures.Insert strBild\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Danach k&ouml;nnen wir die einzuf&uuml;gende Datei ausw&auml;hlen und diese landet mit der linken oberen Ecke in der gew&uuml;nschten Zelle.<\/p>\n<h2>Bilder durchlaufen<\/h2>\n<p>In einer <b>For Each<\/b>-Schleife k&ouml;nnen wir die in einem Excel-Worksheet enthaltenen Bilder durchlaufen.<\/p>\n<p>Im folgenden Beispiel geben wir den Namen des jeweils referenzierten Bildes aus:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>BilderDurchlaufen()\r\n     <span style=\"color:blue;\">Dim <\/span>objPicture<span style=\"color:blue;\"> As <\/span>Picture\r\n     For Each objPicture In ActiveSheet.Pictures\r\n         <span style=\"color:blue;\">Debug.Print<\/span> objPicture.Name\r\n     <span style=\"color:blue;\">Next<\/span> objPicture\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Diese werden von Excel beim Einf&uuml;gen automatisch vergeben und lauten zum Beispiel <b>Picture 8 <\/b>oder <b>Picture 12<\/b>.<\/p>\n<h2>Eigenschaften von Bildern in Excel<\/h2>\n<p>Weiter oben haben wir bereits den Eigenschaften-Dialog f&uuml;r ein Bild in einem Excel-Worksheet angesehen. Die dort angezeigten Eigenschaften lassen sich auch per VBA einstellen.<\/p>\n<p>Dazu referenzieren wir zuerst das gew&uuml;nschte Bild, in diesem Fall das einzige vorhandene Bild (oder das erste, falls mehrere enthalten sind):<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objPicture<span style=\"color:blue;\"> As <\/span>Picture\r\n<span style=\"color:blue;\">Set<\/span> objPicture = ActiveSheet.Pictures(1)<\/pre>\n<h2>Referenzieren eines Picture-Elements<\/h2>\n<p>Neben dem Index k&ouml;nnen wir die Bilder in der <b>Pictures<\/b>-Auflistung auch &uuml;ber einen beim Einf&uuml;gen automatisch vergebenen Namen referenzieren, zum Beispiel:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> objPicture = ActiveSheet.Pictures(\"Picture 12\")<\/pre>\n<h2>Umbenennen von Picture-Elementen<\/h2>\n<p>Und wir k&ouml;nnen die Bilder auch umbenennen, indem wir der <b>Name<\/b>-Eigenschaft einen neuen Wert hinzuf&uuml;gen:<\/p>\n<pre>ActiveSheet.Pictures(\"Picture 21\").Name = \"Bild 3\"<\/pre>\n<h2>Position des Bildes ermitteln<\/h2>\n<p>Beim Einf&uuml;gen des Bildes wurde dieses mit der linken oberen Ecke in der aktiven Zelle einf&uuml;gt. Diese Position k&ouml;nnen wir abfragen &#8211; ebenso wie die Zelle, in der sich die rechte, untere Ecke des Bildes befindet. Dazu nutzen wir die beiden Eigenschaften <b>TopLeftCell <\/b>und <b>BottomRightCell<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> objPicture.TopLeftCell.Address\r\n<span style=\"color:blue;\">Debug.Print<\/span> objPicture.BottomRightCell.Address<\/pre>\n<p>Dass die Bilddatei beim Verwenden der <b>Insert<\/b>-Methode der <b>Pictures<\/b>-Auflistung in der linken, oberen Ecke landet, hei&szlig;t nicht, dass sich die linke, obere Ecke auch immer in der linken, oberen Ecke der mit <b>TopLeftCell <\/b>ermittelten Zelle befindet.<\/p>\n<p>Wir k&ouml;nnen das Bild auch so verschieben, dass sich die linke, obere Ecke mitten in einer Zelle befindet. <b>TopLeftCell <\/b>gibt dann immer noch die Zelle an, in der sich diese Ecke befindet.<\/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\/55000374\/\">\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\/55000374?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\/55000374\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"122f66fc6a\"\/>\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>Excel ist ein leistungsstarkes und vielseitiges Tool f&uuml;r die Datenanalyse und -visualisierung. Es erm&ouml;glicht es den Benutzern, gro&szlig;e Datenmengen effektiv zu verwalten und in verschiedenen Formen darzustellen. Bilder sind dabei oft eine wichtige Erg&auml;nzung, um die Analyse von Daten oder Informationen zu unterst&uuml;tzen. Das Einf&uuml;gen von Bilddateien in Excel-Worksheets per VBA ist eine solche Aufgabe, die es Benutzern erm&ouml;glicht, Bilder in ihre Arbeitsmappen einzuf&uuml;gen, um die Datenanalyse und -pr&auml;sentation zu verbessern. In diesem Artikel werden wir uns damit besch&auml;ftigen, wie man Bilddateien in Excel-Worksheets per VBA einf&uuml;gen kann und welche Vorteile und Anwendungsf&auml;lle es gibt.<\/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":[662023,66032023,44000027],"tags":[],"yst_prominent_words":[],"class_list":["post-55000374","post","type-post","status-publish","format-standard","hentry","category-662023","category-66032023","category-Excel_programmieren"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000374","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=55000374"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000374\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000374"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}