{"id":55000330,"date":"2022-08-01T00:00:00","date_gmt":"2023-03-02T17:03:53","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=330"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Excel_Arbeitsblaetter_per_Ribbon_steuern","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Excel_Arbeitsblaetter_per_Ribbon_steuern\/","title":{"rendered":"Excel: Arbeitsbl&auml;tter per Ribbon steuern"},"content":{"rendered":"<p><b>Wenn Du eine eigene Excel-L&ouml;sung mit einigen Arbeitsbl&auml;ttern erstellt hast, st&ouml;rt es Dich vielleicht, dass Du nicht schnell &uuml;ber die Registerreiter unten im Excel-Fenster auf alle Arbeitsbl&auml;tter zugreifen kannst. Je nach Fenstergr&ouml;&szlig;e und Anzahl der Arbeitsbl&auml;tter zeigt Excel dort n&auml;mlich nicht alle Arbeitsbl&auml;tter an. Damit haben wir allerdings ein sch&ouml;nes Beispiel f&uuml;r den Einsatz des Ribbons in einer Excel-Arbeitsmappe. Diesem f&uuml;gen wir ein Tab mit einem Button f&uuml;r jedes Arbeitsblatt, das schnell erreichbar sein soll, hinzu. Das Ribbon hat noch einen Vorteil: Wenn wir dort f&uuml;r die wichtigsten Arbeitsbl&auml;tter je eine Schaltfl&auml;che hinzuf&uuml;gen, k&ouml;nnen wir diese auch noch mit einem Icon ausstatten, um das gesuchte Arbeitsblatt noch schneller zu finden.<\/b><\/p>\n<h2>Grundlagen zu Ribbons in Office-Dokumenten<\/h2>\n<p>Wie wir einer Excel-Arbeitsmappe ein eigenes Ribbon hinzuf&uuml;gen, haben wir grundlegend im Artikel <b>Ribbons in Office-Dokumenten <\/b>(<b>www.vbentwickler.de\/329<\/b>) erl&auml;utert.<\/p>\n<p>Hier haben wir das Tool <b>Office RibbonX Editor <\/b>vorgestellt, mit dem wir das Ribbon eines Office-Dokuments bearbeiten k&ouml;nnen. <\/p>\n<h2>Excel-Arbeitsmappe mit VBA-Code erstellen<\/h2>\n<p>Da wir f&uuml;r die geplanten Ribbon-Buttons VBA-Code hinterlegen wollen, k&ouml;nnen wir direkt eine Excel-Arbeitsmappe mit der Dateiendung <b>.xlsm <\/b>anlegen. Diese nennen wir <b>Excel_ArbeitsblaetterPerRibbon.xlsm<\/b>.<\/p>\n<p>Der Arbeitsmappe f&uuml;gen wir neben dem vorhandenen Arbeitsblatt noch weitere Arbeitsbl&auml;tter hinzu. Anschlie&szlig;end soll das Register am unteren Rand wie in Bild 1 aussehen. Hier ist anhand der drei Punkte (&#8230;) zu erkennen, dass in dieser Ansicht nicht alle Registerreiter angezeigt werden k&ouml;nnen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_330_001.png\" alt=\"Arbeitsmappe mit einigen Arbeitsbl&auml;ttern\" width=\"649,627\" height=\"263,124\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Arbeitsmappe mit einigen Arbeitsbl&auml;ttern<\/span><\/b><\/p>\n<h2>Ribbondefinition zusammenstellen<\/h2>\n<p>Die Ribbondefinition ist nicht besonders komplex, da sie lediglich ein <b>tab<\/b>-, ein <b>group<\/b>&#8211; und einige <b>button<\/b>-Elemente enth&auml;lt, wobei wir f&uuml;r das <b>tab<\/b>-Element noch per Attribut festlegen m&uuml;ssen, an welcher Position es angezeigt werden soll. Vielleicht m&ouml;chtest Du auch alle eingebauten Ribbon-Tabs ausblenden und nur dieses <b>tab<\/b>-Element anzeigen &#8211; das ist noch einfacher zu realisieren.<\/p>\n<p>Bevor wir mit dem Zusammenstellen beginnen, &ouml;ffnen wir die Excel-Arbeitsmappe mit dem Tool <b>Office RibbonX Editor<\/b>. Hier klicken wir mit der rechten Maustaste auf den Eintrag f&uuml;r die Arbeitsmappe und w&auml;hlen den Befehl <b>Insert Office 2010+ Custom UI Part <\/b>aus. Danach f&uuml;gen wir die Icons hinzu, die mit den <b>button<\/b>-Elementen angezeigt werden sollen. Dazu bet&auml;tigen wir die Schaltfl&auml;che <b>Insert Icons <\/b>und w&auml;hlen im nun erscheinenden Dialog die einzuf&uuml;genden Bilddateien aus. Diese werden anschlie&szlig;end in der Liste links angezeigt.<\/p>\n<p>Klicken wir doppelt auf den Eintrag <b>customUI14.xml<\/b>, erscheint ein leerer Bereich auf der rechten Seite, wo wir die Ribbondefinition eingeben k&ouml;nnen. Wenn wir alle anderen Elemente ausblenden wollen, k&ouml;nnen wir dies wie in Bild 2 definieren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_04\/pic_330_002.png\" alt=\"Anlegen der Ribbondefinition plus Icons\" width=\"700\" height=\"276,4285\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Anlegen der Ribbondefinition plus Icons<\/span><\/b><\/p>\n<p>Hier finden wir allerdings nur ein <b>button<\/b>-Element vor:<\/p>\n<pre>&lt;button id=\"btnApple\" label=\"Apple\" onAction=\"onAction\" image=\"apple\" size=\"large\"\/&gt;<\/pre>\n<h2>XML-Code f&uuml;r Arbeitsblatt-Buttons per VBA erstellen<\/h2>\n<p>Um die <b>button<\/b>-Elemente f&uuml;r die &uuml;brigen Arbeitsbl&auml;tter zu definieren, k&ouml;nnen wir diese von Hand eintippen oder kopieren und anpassen.<\/p>\n<p>Oder wir verfolgen das Credo dieses Magazins und schreiben uns schnell eine Prozedur, die uns den Code f&uuml;r alle Registerreiter zusammenstellt.<\/p>\n<p>Diese Prozedur sieht wie in Listing 1 aus. Sie deklariert eine Variable zum Referenzieren von <b>Worksheet<\/b>-Elementen und durchl&auml;uft diese in einer <b>For Each<\/b>-Schleife &uuml;ber alle Elemente der Auflistung <b>ThisWorkbook.Worksheets<\/b>.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>RibbonButtonsDefinieren()\r\n     <span style=\"color:blue;\">Dim <\/span>strXML<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strName<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>wks<span style=\"color:blue;\"> As <\/span>Worksheet\r\n     For Each wks In ThisWorkbook.Worksheets\r\n         strName = wks.Name\r\n         strXML = strXML & \"&lt;button id=\"\"btn\" & <span style=\"color:blue;\">Replace<\/span>(strName, \" \", \"_\") & \"\"\" label=\"\"\" & strName _\r\n             & \"\"\" onAction=\"\"onAction\"\" image=\"\"\" & LCase(<span style=\"color:blue;\">Replace<\/span>(strName, \" \", \"_\")) & \"\"\" size=\"\"large\"\"\/&gt;\" & <span style=\"color:blue;\">vbCrLf<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> wks\r\n     <span style=\"color:blue;\">Debug.Print<\/span> strXML\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Prozedur zum Zusammenstellen von button-Definitionen<\/span><\/b><\/p>\n<p>Innerhalb der Schleife liest sie den Namen des aktuellen <b>Worksheet<\/b>-Elements aus, wie er unten in der Registerleiste dargestellt wird, und speichert diesen in der Variablen <b>strName<\/b>. In der zweiten Anweisung innerhalb der Schleife stellen wir den Code f&uuml;r das jeweilige <b>button<\/b>-Element zusammen.<\/p>\n<p>Dabei setzen wir beispielsweise den Wert f&uuml;r das Attribut <b>id <\/b>aus dem Pr&auml;fix <b>btn <\/b>und dem Namen aus <b>strName <\/b>zusammen, wobei wir hier noch Leerzeichen durch Unterstriche ersetzen. Aus <b>Apple Bite <\/b>wird so <b>Apple_Bite<\/b>. Der Wert f&uuml;r das Attribut <b>label <\/b>entspricht der Beschriftung des Registerreiters f&uuml;r dieses Arbeitsblatt und der Wert f&uuml;r das Attribut <b>image <\/b>entspricht ebenfalls dem Namen, allerdings wieder mit ersetzen Leerzeichen &#8211; und die Gro&szlig;buchstaben ersetzen wir mit der Funktion <b>LCase <\/b>durch Kleinbuchstaben.<\/p>\n<p>Diese Ausdr&uuml;cke h&auml;ngen wir aneinander und f&uuml;gen jeweils noch einen Zeilenumbruch dazwischen ein. Das Ergebnis geben wir im Direktbereich aus. Von dort kopieren wir den Code und f&uuml;gen diesen nach dem Schlie&szlig;en der Excel-Datei und dem erneuten &Ouml;ffnen im <b>Office RibbonX Editor <\/b>in die Ribbondefinition ein.<\/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\/55000330\/\">\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\/55000330?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\/55000330\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"58b337cd6d\"\/>\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>Wenn Du eine eigene Excel-L&ouml;sung mit einigen Arbeitsbl&auml;ttern erstellt hast, st&ouml;rt es Dich vielleicht, dass Du nicht schnell &uuml;ber die Registerreiter unten im Excel-Fenster auf alle Arbeitsbl&auml;tter zugreifen kannst. Je nach Fenstergr&ouml;&szlig;e und Anzahl der Arbeitsbl&auml;tter zeigt Excel dort n&auml;mlich nicht alle Arbeitsbl&auml;tter an. Damit haben wir allerdings ein sch&ouml;nes Beispiel f&uuml;r den Einsatz des Ribbons in einer Excel-Arbeitsmappe. Diesem f&uuml;gen wir ein Tab mit einem Button f&uuml;r jedes Arbeitsblatt, das schnell erreichbar sein soll, hinzu. Das Ribbon hat noch einen Vorteil: Wenn wir dort f&uuml;r die wichtigsten Arbeitsbl&auml;tter je eine Schaltfl&auml;che hinzuf&uuml;gen, k&ouml;nnen wir diese auch noch mit einem Icon ausstatten, um das gesuchte Arbeitsblatt noch schneller zu finden.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662022,66042022,44000027,44000022],"tags":[],"yst_prominent_words":[],"class_list":["post-55000330","post","type-post","status-publish","format-standard","hentry","category-662022","category-66042022","category-Excel_programmieren","category-Von_Access_zu_NET"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000330","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=55000330"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000330\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000330"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}