{"id":55000468,"date":"2026-04-01T00:00:00","date_gmt":"2026-05-16T15:31:19","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=468"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"BackstageBereich_von_Access_erweitern_Teil_1","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/","title":{"rendered":"Backstage-Bereich von Access erweitern, Teil 1"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/49ed65e7887e4aeca31dd092ac3301a7\" width=\"1\" height=\"1\" alt=\"\"><b>Klickt man in Access auf den Registerreiter <b>Datei<\/b>, &ouml;ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie <b>Speichern<\/b>, <b>Drucken<\/b> oder <b>Optionen<\/b> sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l&auml;sst sich per XML-Definition umfangreich anpassen. Wir k&ouml;nnen eigene Befehle und Registerkarten hinzuf&uuml;gen, eingebaute Bereiche ausblenden und sogar vollst&auml;ndige Optionsseiten mit Textfeldern, Kontrollk&auml;stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f&uuml;r Schritt, wie das in Access funktioniert &#8211; direkt &uuml;ber die Systemtabelle <b>USysRibbons<\/b> und VBA-Callback-Prozeduren.<\/b><\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele zu diesem Artikel findest Du in der Beispieldatenbank. Diese enth&auml;lt ein Modul <b>mdlBackstageReferenz<\/b>, das die Tabelle <b>USysRibbons<\/b> anlegt und mit der XML-Definition bef&uuml;llt. Die Callback-Prozeduren befinden sich im Modul <b>mdlBackstageCallbacks<\/b>. F&uuml;hre im Direktbereich die Prozedur <b>BackstageReferenz<\/b> aus, um die Tabelle zu erstellen.<\/p>\n<p>Danach tr&auml;gst Du unter <b>Datei|Optionen|Aktuelle Datenbank<\/b> den Ribbon-Namen <b>BackstageRef<\/b> ein und startest Access neu (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_001.png\" alt=\"Ausw&auml;hlen der aktuellen Ribbon-Definition\" width=\"599,6265\" height=\"345,6181\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Ausw&auml;hlen der aktuellen Ribbon-Definition<\/span><\/b><\/p>\n<h2>Hilfsformular zum Bearbeiten der Ribbon-Definitionen<\/h2>\n<p>In der Beispieldatenbank findest Du ein Formular namens <b>frmRibbonXML<\/b>, mit dem Du die Ribbon-Definitionen einfacher bearbeiten kannst, als direkt in der Tabelle (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_006.png\" alt=\"Formular zum Bearbeiten der Ribbon-Definitionen\" width=\"599,6265\" height=\"368,0706\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Formular zum Bearbeiten der Ribbon-Definitionen<\/span><\/b><\/p>\n<h2>Voraussetzungen<\/h2>\n<p>Die Backstage-Definition verwendet den Namespace <b>http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui<\/b>. Dieser wurde mit Office 2010 eingef&uuml;hrt und ist die Voraussetzung daf&uuml;r, dass das <b>backstage<\/b>-Element &uuml;berhaupt zur Verf&uuml;gung steht. Der &auml;ltere Namespace <b>2006\/01<\/b> kennt kein <b>backstage<\/b>-Element.<\/p>\n<p>Jede Backstage-Definition beginnt daher mit dem folgenden Grundger&uuml;st:<\/p>\n<pre>&lt;customUI xmlns=\r\n    \"http:\/\/schemas.microsoft.com\/office\/2009\/07\/customui\"\r\n      onLoad=\"onLoad\"&gt;\r\n  &lt;backstage&gt;\r\n    ...\r\n  &lt;\/backstage&gt;\r\n&lt;\/customUI&gt;<\/pre>\n<p>Das Attribut <b>onLoad<\/b> im <b>customUI<\/b>-Element verweist auf eine VBA-Callback-Prozedur, die beim Laden der Ribbon-Definition aufgerufen wird. Sie &uuml;bergibt ein <b>IRibbonUI<\/b>-Objekt, das wir in einer Modulvariablen speichern. Dar&uuml;ber k&ouml;nnen wir sp&auml;ter die Anzeige aller Steuerelemente aktualisieren. Dazu legen wir im Modul mdlBackstage die folgenden Elemente an:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>m_objRibbon<span style=\"color:blue;\"> As <\/span>IRibbonUI\r\n<span style=\"color:blue;\">Public Sub <\/span>onLoad(ribbon<span style=\"color:blue;\"> As <\/span>IRibbonUI)\r\n    <span style=\"color:blue;\">Set<\/span> m_objRibbon = ribbon\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Die Tabelle USysRibbons<\/h2>\n<p>In Access speichern wir Ribbon- und Backstage-Definitionen in der Systemtabelle <b>USysRibbons<\/b>. Diese Tabelle enth&auml;lt mindestens die Spalten <b>RibbonName<\/b> (Textfeld) und <b>RibbonXml<\/b> (Memofeld) &#8211; siehe Bild 3.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_002.png\" alt=\"Die Tabelle USysRibbons\" width=\"700\" height=\"232,061\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Die Tabelle USysRibbons<\/span><\/b><\/p>\n<p>Den Namen aus der Spalte <b>RibbonName<\/b> tragen wir unter <b>Datei|Optionen|Aktuelle Datenbank<\/b> im Feld <b>Name des Men&uuml;bands<\/b> ein. Beim n&auml;chsten Start der Datenbank liest Access die zugeh&ouml;rige XML-Definition ein und wendet sie an. Die Tabelle ist als Systemtabelle nur sichtbar, wenn Du im Navigationsbereich unter <b>Navigationsoptionen<\/b> die Option <b>Systemobjekte anzeigen<\/b> aktivierst.<\/p>\n<h2>Die eingebauten Backstage-Elemente<\/h2>\n<p>Bevor wir eigene Elemente hinzuf&uuml;gen, werfen wir einen Blick auf die eingebauten Elemente des Backstage-Bereichs. Jedes Element besitzt einen eindeutigen <b>idMso<\/b>-Wert, &uuml;ber den wir es referenzieren. In der Reihenfolge ihres Erscheinens sind das: <b>PlaceTabHome<\/b> (Startseite), <b>TabOfficeStart<\/b> (Office-Start), <b>TabRecent<\/b> (Zuletzt verwendet), <b>TabInfo<\/b> (Informationen), <b>FileSave<\/b> (Speichern-Befehl), <b>TabSave<\/b> (Speichern unter), <b>TabPrint<\/b> (Drucken), <b>FileCloseDatabase<\/b> (Schlie&szlig;en-Befehl), <b>TabHelp<\/b> (Hilfe), <b>TabOfficeFeedback<\/b> (Feedback) und <b>ApplicationOptionsDialog<\/b> (Optionen-Befehl).<\/p>\n<p>Es gibt also zwei Typen:<\/p>\n<p><b>tab<\/b>-Elemente &ouml;ffnen beim Anklicken einen Inhaltsbereich auf der rechten Seite, <b>button<\/b>-Elemente f&uuml;hren direkt eine Aktion aus (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_003.png\" alt=\"Der Standard-Backstage-Bereich von Access mit allen eingebauten Elementen\" width=\"649,627\" height=\"545,917\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Der Standard-Backstage-Bereich von Access mit allen eingebauten Elementen<\/span><\/b><\/p>\n<h2>Ein eigener Befehl im Backstage-Bereich<\/h2>\n<p>Wir starten mit einem einfachen Befehl: einem <b>button<\/b>-Element direkt unterhalb von <b>backstage<\/b>.<\/p>\n<p>Den folgenden Code f&uuml;gen wir wie in Bild 5 in die Tabelle <b>USysRibbons <\/b>ein und &ouml;ffnen die Anwendung danach neu.  Du findest die Ribbon-Definition in der Tabelle <b>USysRibbons <\/b>unter <b>EigenerBefehl<\/b>. Dann stellen wir in den Optionen die Eigenschaft <b>Men&uuml;band <\/b>auf <b>EigenerBefehl <\/b>ein, also auf den Wert der Spalte <b>RibbonName<\/b>:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_004.png\" alt=\"Ribbon-Definition f&uuml;r eine neue Schaltfl&auml;che im Backstage-Bereich\" width=\"700\" height=\"162,585\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Ribbon-Definition f&uuml;r eine neue Schaltfl&auml;che im Backstage-Bereich<\/span><\/b><\/p>\n<pre>&lt;customUI     xmlns=\"http:\/\/schemas.microsoft.com\/office\/2009\/07\/        customui\" onLoad=\"onLoad\"&gt;\r\n  &lt;backstage&gt;\r\n     &lt;button id=\"btnSchnell\" \r\n       label=\"Schnellbefehl (button)\"         insertAfterMso=\"TabInfo\"        imageMso=\"FileSave\"        onAction=\"onAction\"\/&gt;\r\n  &lt;\/backstage&gt;\r\n&lt;\/customUI&gt;<\/pre>\n<p>Dieses Element erscheint in der linken Befehlsleiste &#8211; genau wie die eingebauten Befehle <b>Speichern<\/b> oder <b>Schlie&szlig;en<\/b> (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_005.png\" alt=\"Neuer Befehl im Backstage-Bereich\" width=\"424,6267\" height=\"329,668\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Neuer Befehl im Backstage-Bereich<\/span><\/b><\/p>\n<p>Das Attribut <b>insertAfterMso=&#8221;TabInfo&#8221;<\/b> sorgt daf&uuml;r, dass der Befehl nach dem Informationen-Bereich eingef&uuml;gt wird. Mit <b>imageMso<\/b> weisen wir eines der eingebauten Office-Icons zu. Der Callback <b>onAction<\/b> verweist auf die VBA-Prozedur, die beim Klick aufgerufen wird. Die Signatur dieser Prozedur sieht so aus:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onAction(control<span style=\"color:blue;\"> As <\/span>IRibbonControl)\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"onAction: \" & control.Id\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Prozedur empf&auml;ngt ein <b>IRibbonControl<\/b>-Objekt. &Uuml;ber dessen Eigenschaft <b>Id<\/b> l&auml;sst sich ermitteln, welches Steuerelement den Aufruf ausgel&ouml;st hat. So k&ouml;nnen wir mit einer einzigen Prozedur die Klicks mehrerer Backstage-Elemente verarbeiten.<\/p>\n<h2>Eine eigene Registerkarte anlegen<\/h2>\n<p>&Uuml;ber das <b>tab<\/b>-Element legen wir eine eigene Registerkarte an. Diese erzeugt einen Eintrag in der linken Befehlsleiste, der beim Anklicken einen Inhaltsbereich auf der rechten Seite &ouml;ffnet. Das <b>tab<\/b>-Element enth&auml;lt bis zu zwei Spalten: <b>firstColumn<\/b> und optional <b>secondColumn<\/b>:<\/p>\n<pre>&lt;tab id=\"tabSteuer\"\r\n    label=\"Steuerelemente (tab)\"\r\n    insertAfterMso=\"TabInfo\"&gt;\r\n  &lt;firstColumn&gt;\r\n    ...\r\n  &lt;\/firstColumn&gt;\r\n  &lt;secondColumn&gt;\r\n    ...\r\n  &lt;\/secondColumn&gt;\r\n&lt;\/tab&gt;<\/pre>\n<p>Innerhalb der Spalten platzieren wir <b>group<\/b>-Elemente, die Steuerelemente thematisch zusammenfassen. Die Hierarchie lautet: <b>tab<\/b> enth&auml;lt <b>firstColumn<\/b>\/<b>secondColumn<\/b>, diese enthalten <b>group<\/b>-Elemente, und darin befinden sich die Steuerelemente.<\/p>\n<p>Ohne diese <b>group<\/b>-Elemente sehen wir noch keine Elemente, wenn wir diese Ribbon-Definition anwenden. Also f&uuml;gen wir diese nun hinzu. Den vollst&auml;ndigen Code findest Du in der Tabelle <b>USysRibbons <\/b>unter <b>EigeneRegisterkarte<\/b>. Wir erl&auml;utern diesen im Anschluss schrittweise.<\/p>\n<h2>Gruppen mit primaryItem, topItems und bottomItems<\/h2>\n<p>Das <b>group<\/b>-Element im Backstage-Bereich unterscheidet sich deutlich von dem im Ribbon. Es kann drei Unterbereiche enthalten: <b>primaryItem<\/b>, <b>topItems<\/b> und <b>bottomItems<\/b>. Das <b>primaryItem<\/b> zeigt ein gro&szlig;es Steuerelement (einen Button oder ein Men&uuml;) auf der linken Seite der Gruppe (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_007.png\" alt=\"Ein Element im Bereich primaryItem\" width=\"599,6265\" height=\"328,6143\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Ein Element im Bereich primaryItem<\/span><\/b><\/p>\n<p><b>topItems<\/b> und <b>bottomItems<\/b> enthalten die regul&auml;ren Steuerelemente oberhalb beziehungsweise unterhalb einer gedachten Trennlinie. Das Attribut <b>helperText<\/b> zeigt einen erl&auml;uternden Text unterhalb des Gruppennamens:<\/p>\n<pre>&lt;group id=\"grpTexte\"\r\n    label=\"Texteingaben (group)\"\r\n    helperText=\"Dieser Text kommt aus dem Attribut helperText.\"&gt;\r\n  &lt;primaryItem&gt;\r\n    &lt;button id=\"btnSpeichern\"\r\n        label=\"Speichern\r\n        (primaryItem &gt; button)\"\r\n        imageMso=\"FileSave\"\r\n        onAction=\"onAction\"\/&gt;\r\n  &lt;\/primaryItem&gt;\r\n  &lt;topItems&gt;\r\n    ...\r\n  &lt;\/topItems&gt;\r\n  &lt;bottomItems&gt;\r\n    ...\r\n  &lt;\/bottomItems&gt;\r\n&lt;\/group&gt;<\/pre>\n<h2>Elemente im Bereich topItems<\/h2>\n<p>Im Bereich <b>topItems<\/b> haben wir einige Elemente wie ein <b>labelControl<\/b>&#8211; und mehrere <b>editBox<\/b>-Elemente untergebracht. Diese werden wie folgt definiert:<\/p>\n<pre>&lt;topItems&gt;\r\n  &lt;labelControl id=\"lblHinweis\"     label=\"Dies ist ein labelControl\"\/&gt;\r\n  &lt;editBox id=\"txtServer\" label=\"Server (editBox)\"     getText=\"getText\" onChange=\"onChange\"     sizeString=\"yyyyyyyyyyyyyyyyyy\"\/&gt;\r\n  &lt;editBox id=\"txtDatenbank\" label=\"Datenbank (editBox)\"     getText=\"getText\" onChange=\"onChange\"     sizeString=\"yyyyyyyyyyyyyyyyyy\"\/&gt;\r\n  &lt;editBox id=\"txtBenutzer\" label=\"Benutzer (editBox)\"     getText=\"getText\" onChange=\"onChange\"     sizeString=\"yyyyyyyyyyyyyyyyyy\"\/&gt;\r\n&lt;\/topItems&gt;<\/pre>\n<p>Das Ergebnis sehen wir in Bild 8. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_008.png\" alt=\"Ein Element im Bereich topItem\" width=\"599,6265\" height=\"225,3143\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Ein Element im Bereich topItem<\/span><\/b><\/p>\n<h2>Wichtig: Die &Uuml;berschrift<\/h2>\n<p>Wie wir in der Abbildung sehen, &#8220;kleben&#8221; die Elemente alle am oberen Rand. Das liegt daran, dass wir die &Uuml;berschrift noch ausgespart haben. Diese f&uuml;gen wir nicht etwa als eigenes Element ein, aondern wir legen diese direkt f&uuml;r das <b>tab<\/b>-Element fest:<\/p>\n<pre>&lt;tab id=\"tabSteuer\" label=\"Steuerelemente (tab)\" \r\n  insertBeforeMso=\"FileSave\" \r\n  title=\"Beispiele f&uuml;r Steuerelemente\"&gt;<\/pre>\n<p>Damit sieht der Bereich bereits viel harmonischer aus (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_011.png\" alt=\"Backstage-Bereich mit &Uuml;berschrift\" width=\"649,627\" height=\"307,3084\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Backstage-Bereich mit &Uuml;berschrift<\/span><\/b><\/p>\n<h2>Callback-Funktionen<\/h2>\n<p>Hier verwenden wir einige Callback-Funktionen. Das sind Funktionen, die beim Anzeigen der Ribbon-Elemente ausgel&ouml;st werden und f&uuml;r die wir entsprechende Funktionen im VBA-Projekt hinterlegen. Diese findest Du im Modul <b>mdlBackstage<\/b>.<\/p>\n<h2>Das labelControl-Element<\/h2>\n<p>Das einfachste Steuerelement ist <b>labelControl<\/b>: Es zeigt einen statischen Text an, ohne dass der Benutzer damit interagieren kann. Das ist n&uuml;tzlich f&uuml;r Hinweise oder &Uuml;berschriften innerhalb einer Gruppe:<\/p>\n<pre>&lt;labelControl id=\"lblHinweis\"\r\n    label=\"Dies ist ein labelControl\"\/&gt;<\/pre>\n<p>Die XSD-Definition zeigt, dass <b>labelControl<\/b> neben <b>id<\/b> und <b>label<\/b> auch die Attribute <b>alignLabel<\/b>, <b>expand<\/b>, <b>enabled<\/b>, <b>visible<\/b> und <b>noWrap<\/b> unterst&uuml;tzt.<\/p>\n<p>Mit <b>noWrap=&#8221;true&#8221;<\/b> verhindern wir, dass ein langer Text umgebrochen wird.<\/p>\n<h2>Das editBox-Element<\/h2>\n<p>Mit <b>editBox<\/b> erstellen wir ein Textfeld, in das der Benutzer Freitext eingeben kann. Das Steuerelement arbeitet mit zwei Callbacks: <b>getText<\/b> liefert den aktuell anzuzeigenden Wert, <b>onChange<\/b> wird ausgel&ouml;st, wenn der Benutzer den Wert &auml;ndert und das Feld verl&auml;sst.<\/p>\n<p>Das Attribut <b>sizeString<\/b> bestimmt die Breite des Eingabefelds &#8211; Access misst die Breite anhand des angegebenen Textes:<\/p>\n<pre>&lt;editBox id=\"txtServer\" label=\"Server (editBox)\"\r\n    getText=\"getText\" onChange=\"onChange\"\r\n    sizeString=\"yyyyyyyyyyyyyyyyyy\"\/&gt;<\/pre>\n<p>Die Callback-Funktion <b>getText<\/b> wird aufgerufen, wenn Access den Inhalt des Feldes ermitteln m&ouml;chte &#8211; also beim &Ouml;ffnen des Backstage-Bereichs und nach einem Aufruf der <b>Invalidate<\/b>-Methode. Sie gibt einen <b>String<\/b> zur&uuml;ck:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>getText(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        ByRef text)\r\n    text = GetSetting(\"Backstage-Beispiel\", \"Optionen\", _\r\n        control.ID, \"\")\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Hier verwenden wir <b>control.Id<\/b> direkt als Schl&uuml;ssel f&uuml;r die Windows-Registry. So brauchen wir keinen langen <b>Select Case<\/b>-Block, sondern k&ouml;nnen mit einer einzigen Funktion beliebig viele Textfelder bedienen.<\/p>\n<p>Die Prozedur <b>onChange<\/b> empf&auml;ngt neben dem <b>control<\/b>-Objekt den neuen Text als zweiten Parameter:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onChange(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        text<span style=\"color:blue;\"> As String<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.ID, text\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die beiden Funktionen <b>GetSetting <\/b>und <b>SaveSetting <\/b>lesen beziehungsweise schreiben Einstellungen der Registry.<\/p>\n<p>Wenn Du Daten in eines der <b>editBox<\/b>-Elemente eintr&auml;gst, werden diese in enem f&uuml;r VBA-Anwendungen reservierten Bereich der Registry eingetragen, von wo sie beim Anzeigen der jeweiligen Steuerelemente auch wieder ausgelesen werden. Der entsprechende Bereich der Registry sieht wie in Bild 10 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_009.png\" alt=\"Die im Backstage-Bereich eingegebenen Werte in der Registry\" width=\"674,627\" height=\"289,9799\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Die im Backstage-Bereich eingegebenen Werte in der Registry<\/span><\/b><\/p>\n<h2>Das hyperlink-Element<\/h2>\n<p>Im <b>bottomItems<\/b>-Bereich der Gruppe platzieren wir ein <b>hyperlink<\/b>-Element. Dieses zeigt einen anklickbaren Link an, der eine URL im Standardbrowser &ouml;ffnet. <\/p>\n<p>as Attribut <b>target<\/b> enth&auml;lt die Ziel-URL:<\/p>\n<pre>&lt;hyperlink id=\"lnkHilfe\" label=\"Online-Hilfe (hyperlink)\"\r\n    target=\"https:\/\/www.example.com\"\/&gt;<\/pre>\n<p>Das <b>hyperlink<\/b>-Element unterst&uuml;tzt laut XSD auch die Attribute <b>onAction<\/b> (zum Ausf&uuml;hren von VBA-Code statt einer URL), <b>imageMso<\/b> (f&uuml;r ein Icon) sowie <b>screentip<\/b> und <b>supertip<\/b> (f&uuml;r Tooltips).<\/p>\n<p>Man kann statt <b>target<\/b> auch <b>getTarget<\/b> verwenden, um die URL dynamisch per Callback zu bestimmen.<\/p>\n<h2>Elemente im Bereich secondColumn<\/h2>\n<p>In der zweiten Spalte unserer Registerkarte (<b>secondColumn<\/b>) platzieren wir eine Gruppe mit Auswahl-Steuerelementen, und zwar das <b>checkBox<\/b>-Element, das <b>dropDown<\/b>-Element, das <b>comboBox<\/b>-Element und das <b>radioGroup<\/b>-Element (siehe Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_02\/pic_468_010.png\" alt=\"Elemente im Bereich secondColumn\" width=\"599,6265\" height=\"332,4118\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Elemente im Bereich secondColumn<\/span><\/b><\/p>\n<h2>Das checkBox-Element<\/h2>\n<p>Das <b>checkBox<\/b>-Element erzeugt ein Kontrollk&auml;stchen. Es verwendet den Callback <b>getPressed<\/b>, um den aktuellen Zustand abzufragen, und <b>onAction<\/b> f&uuml;r die Benachrichtigung bei einer &Auml;nderung. Im Backstage-Bereich unterst&uuml;tzt es zus&auml;tzlich das Attribut <b>description<\/b>, das einen erl&auml;uternden Text unterhalb des Labels anzeigt:<\/p>\n<pre>&lt;checkBox id=\"chkProtokoll\"     label=\"Protokollierung (checkBox)\"\r\n    description=\"Text aus dem Attribut description\"\r\n    getPressed=\"getPressed\"\r\n    onAction=\"onActionToggle\"\/&gt;<\/pre>\n<p>Die Callback-Funktion <b>getPressed<\/b> gibt einen <b>Boolean<\/b>-Wert zur&uuml;ck:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>getPressed(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        ByRef returnValue)\r\n    returnValue = GetSetting(\"Backstage-Beispiel\", _\r\n        \"Optionen\", control.ID, \"0\")\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Die Prozedur <b>onActionToggle<\/b> empf&auml;ngt den neuen Zustand als <b>Boolean<\/b>-Parameter:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onActionToggle(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        bolPressed<span style=\"color:blue;\"> As Boolean<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.ID, bolPressed 'strWert\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Das dropDown-Element<\/h2>\n<p>Ein <b>dropDown<\/b> bietet dem Benutzer eine geschlossene Auswahlliste, aus der er genau einen Eintrag w&auml;hlen kann. Die Eintr&auml;ge definieren wir statisch &uuml;ber <b>item<\/b>-Unterelemente. Jedes <b>item<\/b>-Element ben&ouml;tigt ein <b>id<\/b>&#8211; und ein <b>label<\/b>-Attribut:<\/p>\n<pre>&lt;dropDown id=\"ddSprache\" label=\"Sprache (dropDown)\"\r\n    getSelectedItemIndex=\"getSelectedItemIndex\"\r\n    onAction=\"onActionDropDown\"&gt;\r\n  &lt;item id=\"itemDE\" label=\"Deutsch (item)\"\/&gt;\r\n  &lt;item id=\"itemEN\" label=\"Englisch (item)\"\/&gt;\r\n  &lt;item id=\"itemFR\" label=\"Franzoesisch\r\n      (item)\"\/&gt;\r\n&lt;\/dropDown&gt;<\/pre>\n<p>Wichtig: Im Backstage-Bereich verwendet das <b>dropDown<\/b>-Element den Callback <b>getSelectedItemIndex<\/b> (nicht <b>getSelectedItemID<\/b> wie im Ribbon). Die Funktion gibt den nullbasierten Index des vorausgew&auml;hlten Eintrags zur&uuml;ck:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>getSelectedItemIndex( _\r\n        control<span style=\"color:blue;\"> As <\/span>IRibbonControl, ByRef index)\r\n    index = CLng(GetSetting(\"Backstage-Beispiel\", _\r\n       \"Optionen\", control.ID, \"0\"))\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Die Callback-Prozedur <b>onActionDropDown<\/b> empf&auml;ngt neben dem <b>control<\/b>-Objekt die <b>id<\/b> des gew&auml;hlten Eintrags als <b>String<\/b> und den Index als <b>Long<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onActionDropDown(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        selectedID<span style=\"color:blue;\"> As String<\/span>, selectedIndex<span style=\"color:blue;\"> As Integer<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.ID, CStr(selectedIndex)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Das comboBox-Element<\/h2>\n<p>Die <b>comboBox<\/b> kombiniert ein Textfeld mit einer Auswahlliste. Im Gegensatz zum <b>dropDown<\/b> kann der Benutzer auch Freitext eingeben, der nicht in der Liste enthalten ist. Die <b>comboBox<\/b> verwendet die gleichen Callbacks wie die <b>editBox<\/b> &#8211; also <b>getText<\/b> und <b>onChange<\/b> &#8211; und bietet zus&auml;tzlich statische <b>item<\/b>-Eintr&auml;ge als Vorschl&auml;ge:<\/p>\n<pre>&lt;comboBox id=\"cboFormat\"   label=\"Exportformat (comboBox)\"\r\n  getText=\"getText\" \r\n  onChange=\"onChange\"\r\n  sizeString=\"yyyyyyyyyyyyyy\"&gt;\r\n  &lt;item id=\"itemCSV\" \r\n    label=\"CSV (item)\"\/&gt;\r\n  &lt;item id=\"itemXLSX\" \r\n    label=\"Excel (item)\"\/&gt;\r\n  &lt;item id=\"itemJSON\" label=\"JSON (item)\"\/&gt;\r\n&lt;\/comboBox&gt;<\/pre>\n<p>Da <b>comboBox<\/b> dieselben Callbacks <b>getText<\/b> und <b>onChange<\/b> verwendet wie <b>editBox<\/b>, funktionieren unsere vorhandenen Callback-Funktionen auch hier ohne &Auml;nderungen.<\/p>\n<h2>Das radioGroup-Element<\/h2>\n<p>Eine <b>radioGroup<\/b> zeigt mehrere Optionsschaltfl&auml;chen, von denen der Benutzer genau eine ausw&auml;hlen kann. Die Kindelemente hei&szlig;en <b>radioButton<\/b>. Genau wie beim <b>dropDown<\/b> verwenden wir im Backstage-Bereich den Callback <b>getSelectedItemIndex<\/b> f&uuml;r die Vorauswahl und <b>onAction<\/b> f&uuml;r &Auml;nderungen:<\/p>\n<pre>&lt;radioGroup id=\"rgModus\"     label=\"Betriebsmodus (radioGroup)\"\r\n    getSelectedItemIndex=\"getSelectedItemIndex\"\r\n    onAction=\"onActionRadio\"&gt;\r\n  &lt;radioButton id=\"rbNormal\" label=\"Normal\r\n      (radioButton)\"\/&gt;\r\n  &lt;radioButton id=\"rbDebug\" label=\"Debug\r\n      (radioButton)\"\/&gt;\r\n  &lt;radioButton id=\"rbSilent\" label=\"Lautlos\r\n      (radioButton)\"\/&gt;\r\n&lt;\/radioGroup&gt;<\/pre>\n<p>Die Prozedur <b>onActionRadio<\/b> hat die gleiche Signatur wie <b>onActionDropDown<\/b> &#8211; sie empf&auml;ngt die <b>id<\/b> des gew&auml;hlten Eintrags und den Index und verarbeitet diese:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>onActionDropDown(control<span style=\"color:blue;\"> As <\/span>IRibbonControl, _\r\n        selectedID<span style=\"color:blue;\"> As String<\/span>, selectedIndex<span style=\"color:blue;\"> As Integer<\/span>)\r\n    SaveSetting \"Backstage-Beispiel\", \"Optionen\", _\r\n        control.ID, CStr(selectedIndex)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Steuerelemente zur Laufzeit aktualisieren<\/h2>\n<p>Wenn wir aus dem VBA-Code heraus eine Einstellung &auml;ndern, die im Backstage-Bereich angezeigt wird, m&uuml;ssen wir die Anzeige manuell aktualisieren. Daf&uuml;r dient die <b>Invalidate<\/b>-Methode des <b>IRibbonUI<\/b>-Objekts, das wir beim <b>onLoad<\/b>-Callback gespeichert haben:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>m_objRibbon<span style=\"color:blue;\"> As <\/span>IRibbonUI\r\n<span style=\"color:blue;\">Public Sub <\/span>onLoad(ribbon<span style=\"color:blue;\"> As <\/span>IRibbonUI)\r\n    <span style=\"color:blue;\">Set<\/span> m_objRibbon = ribbon\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Durch den Aufruf <b>m_objRibbon.Invalidate<\/b> veranlassen wir Access, alle Callback-Funktionen wie <b>getText<\/b>, <b>getPressed<\/b> und <b>getSelectedItemIndex<\/b> erneut aufzurufen, sodass die Steuerelemente die aktuellen Werte anzeigen. M&ouml;chten wir nur ein einzelnes Steuerelement aktualisieren, verwenden wir <b>m_objRibbon.InvalidateControl &#8220;txtServer&#8221;<\/b>.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Der Backstage-Bereich von Access l&auml;sst sich &uuml;ber die Tabelle <b>USysRibbons<\/b> und XML-Definitionen im Namespace <b>2009\/07<\/b> umfangreich anpassen. Wir k&ouml;nnen &uuml;ber das <b>button<\/b>-Element einfache Befehle in der Leiste platzieren, mit dem <b>tab<\/b>-Element vollst&auml;ndige Optionsseiten gestalten und eingebaute Bereiche per <b>idMso<\/b> und <b>visible=&#8221;false&#8221;<\/b> ausblenden.<\/p>\n<p>F&uuml;r Benutzereingaben stehen <b>editBox<\/b>, <b>checkBox<\/b>, <b>dropDown<\/b>, <b>comboBox<\/b> und <b>radioGroup<\/b> zur Verf&uuml;gung. Erg&auml;nzt werden sie durch <b>labelControl<\/b> f&uuml;r statische Texte und <b>hyperlink<\/b> f&uuml;r anklickbare Links.<\/p>\n<p>Im n&auml;chsten Artikel mit dem Titel <b>Backstage-Bereich von Office erweitern, Teil 2 <\/b>(<b>www.vbentwickler.de\/500<\/b>) erweitern wir den Backstage-Bereich um die Layout-Elemente <b>groupBox<\/b>, <b>layoutContainer<\/b> und <b>imageControl<\/b>. Au&szlig;erdem zeigen wir, wie man mit <b>taskFormGroup<\/b> und <b>taskGroup<\/b> komplexere Aufgabenbereiche aufbaut.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>BackstageBereichProgrammieren.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/C0848B89-81A1-42E3-A601-3A72BB410F74\/vbe_468.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Klickt man in Access auf den Registerreiter Datei, &ouml;ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l&auml;sst sich per XML-Definition umfangreich anpassen. Wir k&ouml;nnen eigene Befehle und Registerkarten hinzuf&uuml;gen, eingebaute Bereiche ausblenden und sogar vollst&auml;ndige Optionsseiten mit Textfeldern, Kontrollk&auml;stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f&uuml;r Schritt, wie das in Access funktioniert &#8211; direkt &uuml;ber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.<\/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":[66022026,662025,662026,66032025,44000027,44000026,44000030,44000036],"tags":[],"yst_prominent_words":[],"class_list":["post-55000468","post","type-post","status-publish","format-standard","hentry","category-66022026","category-662025","category-662026","category-66032025","category-Excel_programmieren","category-Outlook_programmieren","category-PowerPoint_programmieren","category-Ribbon_programmieren"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.\" \/>\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:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-16T15:31:19+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=\"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.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:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#blogposting\",\"name\":\"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler\",\"headline\":\"Backstage-Bereich von Access erweitern, Teil 1\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/49ed65e7887e4aeca31dd092ac3301a7\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#articleImage\"},\"datePublished\":\"2026-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#webpage\"},\"articleSection\":\"2\\\/2026, 2025, 2026, 3\\\/2025, Excel programmieren, Outlook programmieren, PowerPoint programmieren, Ribbon programmieren\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"position\":2,\"name\":\"2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/2\\\/2026\\\/#listItem\",\"name\":\"2\\\/2026\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/2\\\/2026\\\/#listItem\",\"position\":3,\"name\":\"2\\\/2026\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/2\\\/2026\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#listItem\",\"name\":\"Backstage-Bereich von Access erweitern, Teil 1\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/#listItem\",\"name\":\"2026\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#listItem\",\"position\":4,\"name\":\"Backstage-Bereich von Access erweitern, Teil 1\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2026\\\/2\\\/2026\\\/#listItem\",\"name\":\"2\\\/2026\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#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:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/\",\"name\":\"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler\",\"description\":\"Klickt man in Access auf den Registerreiter Datei, \\u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\\u00f6nnen eigene Befehle und Registerkarten hinzuf\\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\\u00fcr Schritt, wie das in Access funktioniert - direkt \\u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/BackstageBereich_von_Access_erweitern_Teil_1\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2026-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler","description":"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.","canonical_url":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#blogposting","name":"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler","headline":"Backstage-Bereich von Access erweitern, Teil 1","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/vg08.met.vgwort.de\/na\/49ed65e7887e4aeca31dd092ac3301a7","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#articleImage"},"datePublished":"2026-04-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#webpage"},"articleSection":"2\/2026, 2025, 2026, 3\/2025, Excel programmieren, Outlook programmieren, PowerPoint programmieren, Ribbon programmieren"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","position":2,"name":"2026","item":"https:\/\/vbentwickler.de\/category\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/2\/2026\/#listItem","name":"2\/2026"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/2\/2026\/#listItem","position":3,"name":"2\/2026","item":"https:\/\/vbentwickler.de\/category\/2026\/2\/2026\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#listItem","name":"Backstage-Bereich von Access erweitern, Teil 1"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/#listItem","name":"2026"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#listItem","position":4,"name":"Backstage-Bereich von Access erweitern, Teil 1","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2026\/2\/2026\/#listItem","name":"2\/2026"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#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:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#webpage","url":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/","name":"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler","description":"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2026-04-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler","og:description":"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.","og:url":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2026-05-16T15:31:19+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Backstage-Bereich von Access erweitern, Teil 1 - Visual Basic Entwickler","twitter:description":"Klickt man in Access auf den Registerreiter Datei, \u00f6ffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich l\u00e4sst sich per XML-Definition umfangreich anpassen. Wir k\u00f6nnen eigene Befehle und Registerkarten hinzuf\u00fcgen, eingebaute Bereiche ausblenden und sogar vollst\u00e4ndige Optionsseiten mit Textfeldern, Kontrollk\u00e4stchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt f\u00fcr Schritt, wie das in Access funktioniert - direkt \u00fcber die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000468","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":"2025-08-27 11:52:53","updated":"2026-05-16 09:18:43","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/\" title=\"2026\">2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2026\/2\/2026\/\" title=\"2\/2026\">2\/2026<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tBackstage-Bereich von Access erweitern, Teil 1\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2026","link":"https:\/\/vbentwickler.de\/category\/2026\/"},{"label":"2\/2026","link":"https:\/\/vbentwickler.de\/category\/2026\/2\/2026\/"},{"label":"Backstage-Bereich von Access erweitern, Teil 1","link":"https:\/\/vbentwickler.de\/BackstageBereich_von_Access_erweitern_Teil_1\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000468","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=55000468"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000468\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000468"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}