{"id":55000353,"date":"2023-04-01T00:00:00","date_gmt":"2023-04-25T11:56:04","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=353"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Excel_AddIn_mit_RibbonButton_erstellen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Excel_AddIn_mit_RibbonButton_erstellen\/","title":{"rendered":"Excel: Add-In mit Ribbon-Button erstellen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/f79bfe19c54e4a1da9cad4177e249a9a\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wir k&ouml;nnen Excel nicht nur um benutzerdefinierte Funktionen erweitern, die wir in eine Add-In-Datei schreiben und die dann &uuml;berall als Formel verf&uuml;gbar sind. Wir k&ouml;nnen auch Funktionen hinzuf&uuml;gen, mit denen wir die Anwendung um selbst programmierte Abl&auml;ufe erweitern. In diesem Artikel zeigen wir, wie Du einem Excel-Add-In ein eigenes Ribbontab hinzuf&uuml;gst sowie eine Funktion, die durch einen Button des Ribbontabs ausgel&ouml;st wird.<\/p>\n<p><b>Video passend zu diesem Artikel:<\/b><\/p>\n<div class=\"BorlabsCookie _brlbs-cb-youtube\"><div class=\"_brlbs-content-blocker\"> <div class=\"_brlbs-embed _brlbs-video-youtube\"> <img class=\"_brlbs-thumbnail\" src=\"https:\/\/vbentwickler.de\/wp-content\/plugins\/borlabs-cookie\/assets\/images\/cb-no-thumbnail.png\" alt=\"YouTube\"> <div class=\"_brlbs-caption\"> <p>Mit dem Laden des Videos akzeptieren Sie die Datenschutzerkl\u00e4rung von YouTube.<br><a href=\"https:\/\/policies.google.com\/privacy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Mehr erfahren<\/a><\/p> <p><a class=\"_brlbs-btn _brlbs-icon-play-white\" href=\"#\" data-borlabs-cookie-unblock role=\"button\">Video laden<\/a><\/p> <p><label><input type=\"checkbox\" name=\"unblockAll\" value=\"1\" checked> <small>YouTube immer entsperren<\/small><\/label><\/p> <\/div> <\/div> <\/div><div class=\"borlabs-hide\" data-borlabs-cookie-type=\"content-blocker\" data-borlabs-cookie-id=\"youtube\"><script type=\"text\/template\">PHA+PGlmcmFtZSBsb2FkaW5nPSJsYXp5IiB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLW5vY29va2llLmNvbS9lbWJlZC80dnEyS0VRY0NmNCIgdGl0bGU9IllvdVR1YmUgdmlkZW8gcGxheWVyIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPg==<\/script><\/div><\/div><\/b><\/p>\n<p>Wenn Du nicht nur eigene Funktionen ben&ouml;tigst, die Du als Formeln in Excel nutzen m&ouml;chtest, sondern auch noch VBA-Prozeduren programmiert hast, die Du gern in allen Excel-Workbooks auf Deinem Rechner einsetzen willst, findest Du in diesem Artikel die ben&ouml;tigten Vorgehensweise. Wir werden:<\/p>\n<ul>\n<li>eine Excel-Add-In-Datei erstellen,<\/li>\n<li>diese verf&uuml;gbar machen,<\/li>\n<li>der Datei ein Ribbon mit einer Schaltfl&auml;che und einem Icon hinzuf&uuml;gen sowie<\/li>\n<li>eine Prozedur anlegen, die durch diese Schaltfl&auml;che ausgel&ouml;st wird.<\/li>\n<\/ul>\n<h2>Excel-Add-In-Datei erstellen<\/h2>\n<p>Das Erstellen der Add-In-Datei ist in wenigen Sekunden erledigt:<\/p>\n<ul>\n<li>Lege ein neues Excel-Workbook an.<\/li>\n<li>Speichere es unter dem Namen <b>ExcelAddInMitRibbon.xlam <\/b>als <b>Excel-Add-In (*.xlam)<\/b>.<\/li>\n<\/ul>\n<p>Fertig! Die neue Add-In-Datei wird automatisch in das Verzeichnis <b>C:\\Users\\[Benutzername]\\AppData\\Roaming\\Microsoft\\AddIns <\/b>verschoben.<\/p>\n<h2>Excel-Add-In verf&uuml;gbar machen<\/h2>\n<p>Um das Excel-Add-In in Excel auf dem aktuellen Rechner verf&uuml;gbar zu machen, nehmen wir eine Einstellungen in den Optionen von Excel vor:<\/p>\n<ul>\n<li>Klicke im Ribbon auf <b>Datei|Optionen<\/b>.<\/li>\n<li>Wechsle zum Bereich <b>Add-Ins<\/b>.<\/li>\n<li>Klicke unter <b>Verwalten <\/b>f&uuml;r den Eintrag <b>Excel-Add-Ins <\/b>auf die Schaltfl&auml;che <b>Los&#8230;<\/b><\/li>\n<li>Suche den Eintrag <b>Exceladdinmitribbon <\/b>aus und setze einen Haken vor diesen Eintrag (siehe Bild 1) und schlie&szlig;e den Dialog und die Optionen wieder.<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_001.png\" alt=\"Aktivieren des Add-Ins\" width=\"299,6267\" height=\"366,9276\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Aktivieren des Add-Ins<\/span><\/b><\/p>\n<\/ul>\n<h2>Ribbon hinzuf&uuml;gen<\/h2>\n<p>Nun schlie&szlig;en wir die Add-In-Datei und &ouml;ffnen ein Tool namens  <b>Office RibbonX Editor <\/b>&#8211; mehr dazu siehe im Artikel <b>Ribbons in Office-Dokumenten <\/b>(<b>www.vbentwickler.de\/329<\/b>).<\/p>\n<ul>\n<li>Hier &ouml;ffnen wir zuerst die frisch erstellte Excel-Add-In-Datei.<\/li>\n<li>Danach erscheint im linken Bereich des <b>Office RibbonX Editors <\/b>ein Eintrag mit dem Namen der Daten. <\/li>\n<li>Diesen klicken wir mit der rechten Maustaste an und w&auml;hlen den Befehl <b>Office 2010+ Custom UI-Abschnitt einf&uuml;gen <\/b>aus (siehe Bild 2).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_002.png\" alt=\"Hinzuf&uuml;gen eines Ribbons zum Excel-Add-In\" width=\"474,6267\" height=\"268,6764\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Hinzuf&uuml;gen eines Ribbons zum Excel-Add-In<\/span><\/b><\/p>\n<li>Dies f&uuml;gt ein Unterelement namens <b>customUI14.xml <\/b>hinzu. Dieses klicken wir doppelt an.<\/li>\n<li>Im nun erscheinenden neuen Bereich auf der rechten Seite f&uuml;gen wir den Code aus Listing 1 ein.<\/li>\n<pre>&lt;customUI xmlns=\"http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui\"&gt;\r\n      &lt;ribbon&gt;\r\n          &lt;tabs&gt;\r\n              &lt;tab id=\"tabAmvFunktionen\" label=\"amvFunktionen\"&gt;\r\n                  &lt;group id=\"grpBeispiele\" label=\"Beispiele\" &gt;\r\n                      &lt;button id=\"btnBeispiel\" label=\"Beispiel\" onAction=\"onAction\"\/&gt;\r\n                  &lt;\/group&gt;\r\n              &lt;\/tab&gt;\r\n          &lt;\/tabs&gt;\r\n      &lt;\/ribbon&gt;\r\n&lt;\/customUI&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Ribbon-Definition f&uuml;r ein einfaches Ribbon<\/span><\/b><\/p>\n<li>Das Ergebnis sieht nun wie in Bild 3 aus.<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_003.png\" alt=\"Hinzuf&uuml;gen der Ribbon-Definition\" width=\"700\" height=\"266,0773\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Hinzuf&uuml;gen der Ribbon-Definition<\/span><\/b><\/p>\n<li>Nun klicken wir noch auf die Schaltfl&auml;che <b>VBA-Methoden generieren<\/b>. Dies &ouml;ffnet den Dialog aus Bild 4. Die hier angezeigte Prozedur kopieren wir in die Zwischenablage.<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_004.png\" alt=\"Prozedur f&uuml;r die Schaltfl&auml;che des Ribbons\" width=\"424,6267\" height=\"177,3383\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Prozedur f&uuml;r die Schaltfl&auml;che des Ribbons<\/span><\/b><\/p>\n<li>Au&szlig;erdem ben&ouml;tigen wir noch ein Icon. Dazu klicken wir mit der rechten Maustaste auf den Eintrag <b>customUI14.xml<\/b> und w&auml;hlen den Eintrag <b>Icons einf&uuml;gen&#8230; <\/b>aus.<\/li>\n<li>Im folgenden Dialog w&auml;hlen wir eine geeignete Icon-Datei in der Gr&ouml;&szlig;e 32&#215;32 aus.<\/li>\n<li>Diese erscheint anschlie&szlig;end unter dem Eintrag <b>customUI14.xml<\/b> (siehe Bild 5).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_007.png\" alt=\"Bild f&uuml;r das Ribbon hinzuf&uuml;gen\" width=\"424,6267\" height=\"210,659\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Bild f&uuml;r das Ribbon hinzuf&uuml;gen<\/span><\/b><\/p>\n<li>Damit das Icon f&uuml;r die Schaltfl&auml;che angezeigt wird, f&uuml;gen wir dem <b>button<\/b>-Element das Attribut <b>image=&#8221;add&#8221; <\/b>hinzu.<\/li>\n<li>Damit die Schaltfl&auml;che au&szlig;erdem gro&szlig; angezeigt wird, f&uuml;gen wir das Attribut <b>size=&#8221;large&#8221; <\/b>hinzu.<\/li>\n<\/ul>\n<p>Damit sind die Arbeiten an dieser Stelle beendet und wir k&ouml;nnen den <b>Office RibbonX Editor <\/b>nach dem Speichern schlie&szlig;en.<\/p>\n<h2>Prozedur f&uuml;r den Ribbonbutton hinzuf&uuml;gen<\/h2>\n<p>Schlie&szlig;lich f&uuml;gen wir noch die Prozedur in das VBA-Projekt der <b>.xlam<\/b>-Datei ein:<\/p>\n<ul>\n<li>&Ouml;ffne die Add-In-Datei, diesmal in Excel.<\/li>\n<li>Wechsle mit <b>Alt + F11 <\/b>zum VBA-Editor.<\/li>\n<li>F&uuml;ge dem VBA-Projekt des Add-Ins mit dem Men&uuml;befehl <b>Einf&uuml;gen|Modul <\/b>ein neues Standardmodul hinzu.<\/li>\n<li>Benenne das Modul in <b>mdlAddIn <\/b>um und speichere es.<\/li>\n<li>F&uuml;ge dem Modul den weiter oben in die Zwischenablage kopierten Code der Prozedur <b>onAction <\/b>hinzu.<\/li>\n<\/ul>\n<p>Die Prozedur erweitern wir noch wie folgt:<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>onAction(control<span style=\"color:blue;\"> As <\/span>IRibbonControl)\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"Add-In-Button angeklickt!\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der VBA sollte nun etwa wie in Bild 6 aussehen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_005.png\" alt=\"Prozedur f&uuml;r die Schaltfl&auml;che des Ribbons im VBA-Editor\" width=\"649,627\" height=\"347,1997\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Prozedur f&uuml;r die Schaltfl&auml;che des Ribbons im VBA-Editor<\/span><\/b><\/p>\n<h2>Excel-Add-In mit Ribbon testen<\/h2>\n<p>Damit k&ouml;nnen wir das Excel-Add-In ausprobieren. Dazu schlie&szlig;en wir das Add-In und &ouml;ffnen eine beliebige Excel-Datei.<\/p>\n<p>Hier finden wir nun ganz rechts im Ribbon einen neuen Registerreiter namens <b>amvFunktionen <\/b>vor. Klicken wir diesen an, erscheint die soeben angelegte Schaltfl&auml;che (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_353_006.png\" alt=\"Der Ribbonbefehl des Add-Ins in Excel\" width=\"649,627\" height=\"134,8993\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Der Ribbonbefehl des Add-Ins in Excel<\/span><\/b><\/p>\n<p>Auch der Test der Schaltfl&auml;che sollte gelingen: Er sollte die in der Prozedur enthaltene <b>MsgBox<\/b>-Funktion aufrufen.<\/p>\n<h2>M&ouml;gliche Anwendungen f&uuml;r das Add-In mit Ribbon<\/h2>\n<p>Anwendungsf&auml;lle f&uuml;r ein solches Add-In mit einem Ribbon und einer immer verf&uuml;gbaren Prozedur lassen sich beispielsweise wie folgt charakterisieren:<\/p>\n<p>Damit k&ouml;nnen wir zum Beispiel Funktionen implementieren, die wir nicht nur in einer, sondern in verschiedenen Workbooks ben&ouml;tigen werden.<\/p>\n<p>Wir k&ouml;nnen damit verschiedene Operationen durchf&uuml;hren. Wenn Du zum Beispiel immer die gleichen Excel-Exporte bekommst, die auf eine bestimmte Art und Weise angepasst werden m&uuml;ssen, dann w&auml;re ein solches Add-In eine M&ouml;glichkeit.<\/p>\n<p>Es kann auch sein, dass diese Anpassungen vollautomatisch erfolgen k&ouml;nnen, ohne dass ein Mensch die &Auml;nderungen &uuml;berpr&uuml;fen muss &#8211; dann w&auml;re eine <b>.exe<\/b>-Datei beispielsweise auf Basis eines twinBASIC-Projekts eine weitere L&ouml;sung.<\/p>\n<p>Wenn das Ergebnis jedoch zumindest kurz gepr&uuml;ft werden muss, ist es sinnvoll, die zu &auml;ndernde Datei in Excel zu &ouml;ffnen und dort die per Add-In bereitgestellte Funktion aufzurufen, um die notwendigen &Auml;nderungen durchzuf&uuml;hren.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>In diesem Artikel haben wir gezeigt, wie Du ein Excel-Add-In erstellst, es mit einem Ribbon versiehst, das immer in Excel angezeigt wird, und f&uuml;r die im Ribbon enthaltene Schaltfl&auml;che eine Prozedur hinterlegst.<\/p>\n<p>In einem weiteren Artikel namens  <b>Excel: Benutzerdefinierte Funktionen per Add-In <\/b>(<b>www.access-im-unternehmen.de\/363<\/b>) schauen wir uns an, wie wir ein Excel-Add-In nutzen k&ouml;nnen, um Funktionen zu hinterlegen, die als Formel in allen Excel-Workbooks genutzt werden k&ouml;nnen, die Zugriff auf dieses Add-In haben.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>ExcelAddInMitRibbon.xlsx<\/p>\n<p>ExcelAddInMitRibbon.xlam<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/CBCA64DB-238E-43DA-B2A0-E6CD21D29BF3\/vbe_353.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wir k&ouml;nnen Excel nicht nur um benutzerdefinierte Funktionen erweitern, die wir in eine Add-In-Datei schreiben und die dann &uuml;berall als Formel verf&uuml;gbar sind. Wir k&ouml;nnen auch Funktionen hinzuf&uuml;gen, mit denen wir die Anwendung um selbst programmierte Abl&auml;ufe erweitern. In diesem Artikel zeigen wir, wie Du einem Excel-Add-In ein eigenes Ribbontab hinzuf&uuml;gst sowie eine Funktion, die durch einen Button auf diesem Ribbontab ausgel&ouml;st wird.<\/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":[66022023,662023,44000027,44000023],"tags":[],"yst_prominent_words":[66062047,66062046],"class_list":["post-55000353","post","type-post","status-publish","format-standard","hentry","category-66022023","category-662023","category-Excel_programmieren","category-PowerApps"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000353","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=55000353"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000353\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000353"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}