Ribbon Tutorial
Ribbon Tutorial
Excel 2007
Inhaltsverzeichnis
Seite 2
Seite 5
Seite 7
Seite 9
Seite 11
Seite 15
Seite 16
Seite 18
Seite 21
Seite 23
Seite 25
Seite 26
Seite 27
Seite 28
Seite 29
Seite 31
Seite 32
Seite 33
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
RibbonX - Teil 1 Einfhrung
Excel 2007
Zum Inhaltsverzeichnis !
Dieses Tutorial richtet sich an Anwender, welche bereits Erfahrung mit der Programmierung in Office
gesammelt haben.
Wichtig:
Wenn Sie die Datei auch in lteren Office Versionen nutzen mchten oder mssen, dann sollten Sie auf
RibbonX verzichten und dafr benutzerdefinierte Symbolleisten ber VBA programmieren.
RibbonX ist die neue Benutzeroberflche in Office 2007. Es ist mglich, eigene Ribbon zu programmieren.
Hierbei gibt es zwei Mglichkeiten.
1. Das Ribbon wird an die Standard Tabs angehngt (startFormSratch="False").
2. Das Ribbon wird ohne die Standard Ribbon angezeigt (startFormSratch="True").
Zum Einfgen eines RibbonX-Codes in eine Office 2007-Datei bentigen sie den kostenlosen
CostumUI-Editor, mit welchem Sie den Code in Dateien fr Excel 2007, Word 2007 und PowerPoint
2007 einfgen knnen. Access-Dateien knnen Sie damit nicht bearbeiten, da die Vorgehensweise
hierfr anders ist. Fr Access 2007 besuchen Sie die Seite Access Ribbon erstellen.
RibbonX folgt einer klar definierten Struktur, welche hier kurz erklrt werden soll.
Die Grundstruktur im berblick :
<customUI xmlns="[Link]
onLoad="onLoad">
<commands>
<!-- Hier werden die Commands aufgelistet -->
</commands>
<ribbon>
<qat><documentControls>
<!-- Hier werden die Elemente aufgelistet -->
</documentControls></qat>
<officeMenu>
<!-- Hier werden die Elemente aufgelistet -->
</officeMenu>
<contextualTabs>
<!-- Hier wird der TabSetname angegeben>
<!-- visible="True", wenn nur ein Tab ausgelendet
werden soll -->
<tabSet idMso="TabSetNameAufEnglisch" visible="false">
<!-- Hier werden einzelne Tabs ausgeblendet -->
<!-- visibel weglassen, wenn nur einzelne Tabs ausgeblendet
werden sollen -->
<tab idMso="TabNameAufEnglisch" visible="false">
<!-- Hier werden einzelne Gruppen ausgeblendet -->
<group idMso="GruppenNameAufEnglisch"
visible="false">
</group>
</tab>
</tabSet>
</contextualTabs>
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
<tabs>
<tab>
<group>
<!-- Hier werden die Elemente aufgelistet -->
</group>
<group>
<!-- Hier werden die Elemente aufgelistet -->
</group>
</tab>
<tab>
<group>
<!-- Hier werden die Elemente aufgelistet -->
</group>
<group>
<!-- Hier werden die Elemente aufgelistet -->
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Excel 2007
Zum Inhaltsverzeichnis !
Das Onload-Ereignis. Dieses ist optional und sorgt dafr, dass das Ribbon dynamisch zur Laufzeit
aktualisiert werden kann. Dafr kopieren Sie den folgenden Code in ein Standardmodul der Datei.
Die Datei muss dabei mit der Endung *.xlsm (Excel 2007 Arbeitsmappe mit Makros), *.xlam (Excel
2007 Makro), *.docm (Word 2007 Dokument mit Makros) oder *.dotm (Word 2007 Vorlage mit
Makros) gespeichert sein. Das Makro muss an oberster Stelle im Modul stehen (unter der Zeile
Option Explicit)
Public objRibbon As IRibbonUI
Public Sub rx_onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
An erster Stelle steht die Commandoebene, ber welche zum Beispiel die Exceloptionen deaktiviert
werden knnen. Diese Einstellung hat nur Auswirkung auf die Datei, in welcher die Anweisung steht.
Erst jetzt wird das Ribbon erffnet. Im Ribbon-Stammtag wird auch startFromScratch angegeben.
An erster Stelle im Ribbon-Tag wird die Schnellstartleiste (Quick Access Toolbar -> QAT) beeinflusst.
Als nchstes kann das Officemen beeinflusst werden.
Hinweis:
Das Beeinflussen der QAT hat nur Einfluss, wenn startFromScratch auf True gestellt wird.
Das Beeinflussen des Office Mens hat nur Auswirkung auf die Datei, in welcher der RibbonX-Code
die Anweisung enthlt. Nach dem Schlieen der Arbeitsmappe oder ein Wechsel in eine andere
Arbeitsmappe stellt die Standardeinstellungen wieder her.
Jetzt knnen Kontextregisterkarten (contextualTabs), einzelne Tabs derselben oder einzelne Gruppen
der Tabs deaktiviert werden.
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Jetzt knnen die Tabs erstellt werden. Es ist mglich, mehrere Tabs zu erstellen. Welche Elemente genutzt
werden knnen, wird in weiteren Teilen erklrt. Jedes Tab enthlt mindestens eine Gruppe mit mindestens
einem Element.
[Link]
Hier gibt es ein Add-In fr Excel 2007. Mit diesem knnen Sie sich die in Office 2007 eingebauten Icons
anzeigen lassen. Entpacken Sie das Add-In in ein beliebiges Verzeichnis und binden es dann in Excel
ein. Danach wird im Tab Entwicklertools eine neue Gruppe mit 9 Galerien eingefgt, ber welcher die
verschiedenen Icons angezeigt werden. Nach einem Klick auf ein Icon knnen Sie eine Codezeile in die
active Zelle schreiben lassen. Den Namen des Icons bentigen Sie fr das Tag imageMso im RibbonXCode.
bersicht eingebaute [Link]
Hier gibt es die bersichten ber die eingebauten Steuerelemente. Die bersichten liegen als Excel
2007 Tabellen vor. Es gibt jeweils eine bersicht fr Word 2007, Excel 2007, PowerPoint 2007 und
Access 2007. Fr die Korrektheit der Angaben wird keine Garantie bernommen.
Dateien im Anhang:
Liste der VBA-Prozeduren
Liste der RibbonX-Elemente
Liste der RibbonX-Attribute
Beschreibung der RibbonX-Attribute
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
RibbonX - Teil 2 - Schaltflchen (Button)
Excel 2007
Zum Inhaltsverzeichnis !
In diesem Teil wollen wir einen Button erstellen. Hierfr wird folgender RibbonX-Code verwendet.
Der Beispielcode erstellt zwei Schaltflchen.
Erstellen Sie eine neue Arbeitsmappe und speichern Sie diese mit der Endung *.xslm. Fgen Sie ein
neues Modul ein, in welches Sie die folgenden Makros kopieren.
Option Private Module
Public objRibbon As IRibbonUI
Public Sub onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Sub Button1_OnAction(control As IRibbonControl)
If [Link]("Tabelle1").Columns("A:A"). _
[Link] = False Then
[Link]("Tabelle1").Columns("A:A"). _
[Link] = True
MsgBox "Spalte A wurde ausgeblendet", vbOKOnly + _
vbInformation, "Hinweis"
Else
[Link]("Tabelle1").Columns("A:A"). _
[Link] = False
MsgBox "Spalte A wurde eingeblendet", vbOKOnly + _
vbInformation, "Hinweis"
End If
End Sub
Sub Button2_getLabel(control As IRibbonControl, ByRef label)
If [Link]("Tabelle1").Columns("B:B"). _
[Link] = False Then
label = "Spalte B eingeblendet"
Else
label = "Spalte B ausgeblendet"
End If
End Sub
Sub Button2_OnAction(control As IRibbonControl)
If [Link]("Tabelle1").Columns("B:B"). _
[Link] = False Then
[Link]("Tabelle1").Columns("B:B"). _
[Link] = True
[Link]
MsgBox "Spalte B wurde ausgeblendet", vbOKOnly + _
vbInformation, "Hinweis"
Else
[Link]("Tabelle1").Columns("B:B"). _
[Link] = False
[Link]
MsgBox "Spalte B wurde eingeblendet", vbOKOnly + _
vbInformation, "Hinweis"
End If
End Sub
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Anschlieend beenden Sie Excel und ffnen die Datei mit dem CustomUI-Editor. Fgen Sie in das
Codefenster den folgenden Code ein.
<customUI xmlns="[Link]
onLoad="onload">
<ribbon startFromScratch="true">
<tabs>
<tab id="tab01" label="Schaltflchen">
<group id="grp01" label="Spalte A" >
<button id="tgb01" label="Spalte A" imageMso="ExchangeFolder"
onAction = "Button1_onAction"
size="large"/>
</group>
<group id="grp02" label="Spalte B" >
<button id="tgb02" getLabel="Button2_getLabel" imageMso="ExchangeFolder"
onAction = "Button2_onAction"
size="large"/>
</group></tab></tabs></ribbon></customUI>
Speichern Sie die nderungen und schlieen den Editor. ffnen Sie die Datei mit Excel. Jetzt sollte ein
Ribbon mit zwei Schaltflchen erscheinen. Die erste blendet Spalte A im Wechsel ein oder aus. Die
Schaltflchenbeschriftung ndert sich nicht. Schaltflche 2 blendet Spalte B im Wechsel ein oder aus,
wobei die Schaltflchenbeschriftung den jeweiligen Zustand anzeigt.
Schaltflche 1:
Diese Schaltflche hat eine feste Beschriftung.
Schaltflche 2:
Diese Schaltflche bezieht ihre Beschriftung aus dem Makro Button2_getLabel.
Beschreibung:
id: Legt die [Link] fest.
onAction: Gibt das zu startende Makro an
label: Beschriftung der Schaltflche (fr Schaltflche 1)
getLabel: Gibt das Makro an, welches die Beschriftung anhand bestimmter Einstellungen eintrgt.
Wichtig: Es ist immer nur eines mglich. Entweder label oder getLabel.
imageMso: Gibt das Icon an, welches genutzt werden soll.
size: gibt die Gre der Schaltflche an. large=gro. normal=klein
Sie knnen auch die Beispielmappe XL07_Button.xlsm nutzen (im Anhang).
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Speichern Sie jetzt die nderungen und schlieen die Arbeitsmappe. ffnen Sie die Arbeitsmappe
mit dem CustomUI-Editor und fgen Sie in das Codefenster folgenden Code ein.
<customUI xmlns="[Link]
onLoad="onload">
<ribbon startFromScratch="true">
<tabs>
<tab id="tab01" label="Umschaltflchen">
<group id="grp01" label="Zustand in DocumentProperties" >
<toggleButton id="tgb01" getLabel="ToggleButton_getLabel"
imageMso="ExchangeFolder"
getPressed="ToggleButton_getPressed" onAction="ToggleButton_onAction"
size="large"/> </group>
</tab>
</tabs>
</ribbon>
</customUI>
Beschreibung:
id: Gibt die [Link] an
getLabel: Das Makro, welches die Beschriftung je nach Zustand der Schaltflche angibt.
size: Gre der Schaltflche. large=gro, normal=klein.
imageMso: Gibt das Icon an, welches genutzt werden soll.
getPressed: Fragt beim ffnen der Arbeitsmappe den Wert fr den Zustand aus dem gespeicherten
Wert ab. Bei 1 wird die Schaltflche gedrckt.
onAction: Das auszufhrende Makro.
Sie knnen auch die Beispielmappe XL07_ToggleButton.xlsm nutzen (im Anhang).
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Anschlieend speichern Sie die Arbeitsmappe und schlieen sie. ffnen Sie jetzt die Arbeitsmappe
mit dem CustomUI-Editor und fgen folgenden Code in das Codefenster ein.
<customUI xmlns="[Link]
onLoad="rx_onLoad">
<ribbon startFromScratch="true">
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
<tabs><tab id="tab01" label="Checkbox">
<group id="grpCBX" label="Checkbox" >
<checkBox id="cbx" getLabel="Checkbox_getLabel"
onAction="Checkbox_onAction" getPressed="Checkbox_getPressed" />
</group>
</tab></tabs></ribbon></customUI>
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
In diesem Teil wollen wir ein Auswahlfeld und ein Kombinationsfeld erstellen. Hierfr wird folgender
RibbonX-Code verwendet. Der Beispielcode erstellt zwei Auswahlfelder.
Mit diesen sollen verschiedene Eintrge aus zwei Listen in ein "Rechnungsblatt" bertragen werden.
Hierbei wird der jeweils erste Eintrag in das "Rechnungsblatt" bertragen. Die restlichen Angaben
werden durch SVerweis bernommen.
Zuerst das Auswahlfeld (DropDown).
Erstellen Sie eine neue Arbeitsmappe. Fgen Sie ein neues Modul und in dieses die folgenden fr das
erste Auswahlfeld gltigen Makros ein.
Option Private Module
Public objRibbon As IRibbonUI
Public Sub rx_onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Public Sub Artikel_getItemCount(control As IRibbonControl, _
ByRef returnedVal)
returnedVal = 200
End Sub
Public Sub Artikel_getItemID(control As IRibbonControl, _
index As Integer, ByRef id)
id = "Eintrag" & index + 3
End Sub
Public Sub Artikel_getItemLabel(control As IRibbonControl, _
index As Integer, ByRef returnedVal)
returnedVal = [Link]("Artikelliste").Cells(index + 3, 3).Value
End Sub
Public Sub Artikel_onAction(control As IRibbonControl, _
id As String, index As Integer)
Rem Trgt den gewhlten Artikel in die Rechnung ein
[Link]("Rechnung-Ausfllen").Cells _
(Cells(1048576, 1).End(xlUp).Row + 1, 1).Value = _
[Link]("Artikelliste").Cells _
(index + 3, 4).Offset(0, -3).Value
End Sub
Fgen Sie nun ein zweites Modul und in dieses die fr das zweite Auswahlfeld gltigen Makros ein.
Option Private Module
Public Sub Kunde_getItemCount(control As IRibbonControl, _
ByRef returnedVal)
returnedVal = 200
End Sub
Public Sub Kunde_getItemID(control As IRibbonControl, _
index As Integer, ByRef id)
id = "Eintrag" & index + 3
End Sub
Public Sub Kunde_getItemLabel(control As IRibbonControl, _
index As Integer, ByRef returnedVal)
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
returnedVal = [Link]("Kundendaten"). _
Cells(index + 3, 4).Value
End Sub
Public Sub Kunde_onAction(control As IRibbonControl, id As String, _
index As Integer)
Rem Trgt die Posi des Kunden in die Rechnung ein
With ThisWorkbook
.Sheets("Rechnung-Ausfllen").Range("H2").Value = _
.Sheets("Kundendaten").Cells(index + 3, 4).Offset(0, -3).Value
End With
End Sub
Speichern Sie nun die nderung und schlieen die Arbeitsmappe. ffnen Sie selbige mit dem
CustomUI-Editor und fgen in das Codefenster folgenden Code ein.
<customUI xmlns="[Link]
onLoad="rx_onLoad">
<ribbon startFromScratch="true">
<tabs><tab id="tab01" label="Rechnungserstellung">
<group id="grpCombo" label="Kundenwahl" >
<dropDown id="ddcKunde" label="Kunde:" screentip="Kunden auswhlen"
supertip="Die Kundenkennung (Posi) auswhlen" sizeString="xxxxxxxxxxxxxxx"
onAction="Kunde_onAction" getItemCount="Kunde_getItemCount"
getItemID="Kunde_getItemID"
getItemLabel="Kunde_getItemLabel" >
</dropDown>
<dropDown id="ddcArtikel" label="Artikel:" screentip="Artikel auswhlen"
supertip="Die Artikelkennung (Posi) auswhlen" sizeString="xxxxxxxxxxxxxxx"
onAction="Artikel_onAction" getItemCount="Artikel_getItemCount"
getItemID="Artikel_getItemID"
getItemLabel="Artikel_getItemLabel" >
</dropDown></group>
</tab></tabs></ribbon></customUI>
Jetzt kommen wir zum Kombinationsfeld. Anders als bei Auswahlfedern, bei denen nur feste
Eintrge gewhlt werden knnen, kann man in einem Kombinationsfeld auch Eingaben ttigen.
Kombinationsfelder kombinieren Auswahlfelder mit Eingabefeldern (editBox) in einem Element.
RibbonX - Tutorial
Excel 2007
Zum Inhaltsverzeichnis !
Erstellen Sie eine neue Arbeitsmappe. Fgen Sie ein neues Modul und in dieses die folgenden fr das
Kombinationsfeld gltigen Makros ein.
Die folgenden Codebeispiele stammen von Melanie Breden !
Option Explicit
Public objRibbon As IRibbonUI
Rem Callback for [Link]
Public Sub rx_onLoad(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Rem Sub wird beim ersten Anklicken des Pfeils der ComboBox
Rem und dann bei jeder Neuinitialisierung ausgefhrt
Rem Callback for cboCombo getItemCount
Public Sub cboCombo_getItemCount(control As IRibbonControl, ByRef returnedVal)
Rem Anzahl Eintrge festlegen (Monate)
returnedVal = 12
End Sub
Rem Sub wird nach Wert der Variable returnedVal aus getItemCount
Rem n mal durchlaufen
Public Sub cboCombo_getItemID(control As IRibbonControl, _
index As Integer, ByRef id)
Rem Eindeutiger Index je Eintrag festlegen
id = "Month" & index
End Sub
Rem Callback for cboCombo getItemLabel
Public Sub cboCombo_getItemLabel(control As IRibbonControl, _
index As Integer, ByRef returnedVal)
Rem Beschriftung je Eintrag festlegen
returnedVal = MonthName(index + 1)
End Sub
Rem Callback fr cboCombo onChange
Public Sub cboCombo_onChange(control As IRibbonControl, text As String)
Rem Auswahl aus Kombinationsfeld in aktive Zelle schreiben
[Link] = text
End Sub
Speichern Sie nun die nderung und schlieen die Arbeitsmappe. ffnen Sie selbige mit dem
CustomUI-Editor und fgen in das Codefenster folgenden Code ein.
<customUI xmlns="[Link]
onLoad="rx_onLoad">
<ribbon><tabs>
<!--Benutzerdefinierte Registerkarte am Anfang erstellen-->
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
In diesem Teil bauen wir ein Eingabefeld (Editbox) ein. Im folgenden Beispiel wird das Eingabefeld
genutzt, um ber TAPI eine >>>Telefonnummer zu whlen. Zuerst wird die Nummer eingegeben. Ein
Klick auf die Entertaste lst dann das Ereignis aus.
Erstellen Sie eine neue Arbeitsmappe. Fgen Sie ein neues Modul und in dieses den folgenden
Makrocode ein.
Option Private Module
Option Explicit
Declare Function tapiRequestMakeCall Lib "[Link]" _
(ByVal DestAddress As String, _
ByVal AppName As String, ByVal CalledParty As String, _
ByVal Comment As String) As Long
Public A$
Private Declare Function CallWindowProc Lib "[Link]" _
Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const WM_COMMAND As Long = &H111
Public objRibbon As IRibbonUI
Public Sub onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Sub BoxWahlRaus(control As IRibbonControl, ByRef text)
Dim i As Integer
Dim Zelle As Integer
Dim A$
A$ = text
Telefonieren A, " "
End Sub
Sub Telefonieren(TelefonNr$, derName$)
[Link] = False
Dim retval As Long
retval = tapiRequestMakeCall(TelefonNr, "", derName, "")
If retval <> 0 Then
MsgBox "Beim Verbindungsaufbau ist ein Fehler aufgetreten!"
End If
End Sub
Speichern und schlieen Sie die Arbeitsmappe und ffnen diese dann mit dem CustomUI-Editor.
Fgen Sie dann im Codefenster folgenden XML-Code ein.
<customUI xmlns="[Link]
onLoad="onload">
<ribbon><tabs>
<tab id="tabExcelvorlage" label="Telefonieren">
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Range("E2").Value = 0
End If
End Sub
Sub Checkbox02_getPressed(control As IRibbonControl, ByRef returnValue)
returnValue = [Link]("Tabelle1").Range("E2")
End Sub
Sub ToggleButton02_onAction(control As IRibbonControl, pressed As Boolean)
If pressed = True Then
MsgBox "Umschaltlfche 2 aktiviert", vbInformation + vbOKOnly, "Hinweis"
Range("F2").Value = 1
Else
MsgBox "Umschaltflche 2 deaktiviert", vbInformation + vbOKOnly
Range("F2").Value = 0
End If
End Sub
Sub ToggleButton02_getPressed(control As IRibbonControl, ByRef returnValue)
returnValue = [Link]("Tabelle1").Range("F2")
End Sub
Speichern Sie die nderungen und schlieen Sie die Arbeitsmappe. ffnen Sie selbige jetzt mit dem
CustomUI-Editor. Fgen Sie dann den folgenden Code in das Codefenster ein.
<customUI xmlns="[Link]
onLoad="onLoad" >
<ribbon startFromScratch="true">
<tabs><tab id="tab01" label="Men">
<group id="grp01" label="Men">
<menu id="mnu0" size="large" itemSize="normal" label="Men"
imageMso="FileSaveAsExcelXlsxMacro">
<button id="menBtn01" label="Menschaltflche 1"
onAction="Button01_OnAction" />
<menuSeparator id="menSpt01" />
<toggleButton id="menTgb01" label="Umschaltflche 1"
onAction="ToggleButton01_OnAction"
getPressed="ToggleButton01_getPressed"/>
<menuSeparator id="menSpt02" />
<menu id="men02" itemSize="normal" label="Untermen 1">
<button id="menBtn02" label="Menschaltflche 2"
onAction="Button02_OnAction" />
<menuSeparator id="menSpt03" />
<toggleButton id="menTgb02" label="Umschaltflche 2"
onAction="ToggleButton02_OnAction"
getPressed="ToggleButton02_getPressed" />
<menuSeparator id="menSpt04" />
<checkBox id="menCbx02" label="Checkbox 2" onAction="Checkbox02_OnAction"
getPressed="Checkbox02_getPressed"/>
</menu>
<menuSeparator id="menSpt05" />
<checkBox id="menCbx01" label="Checkbox 1" onAction="Checkbox01_OnAction"
getPressed="Checkbox01_getPressed" />
</menu></group></tab>
</tabs></ribbon></customUI>
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Speichern sie die nderung und ffnen Sie die Arbeitsmappe. Jetzt wird ein neues Ribbon mit einem
Men angezeigt. Die Werte fr die Checkboxen und Umschaltflchen (jeweils 2 Stck) werden in der
Tabelle gespeichert. Idealer Weise sollten Sie die Werte in den DocumentProperties speichern.
Gehen Sie hierzu so vor, wie Sie es in Teil 3 gelernt haben. Fr jede Checkbox und jede
Umschaltflche bentigen Sie einen eigenen Eintrag in den DocumentProperties.
Sie knnen auch die Beispielmappe XL07_Men.xlsm nutzen (im Anhang).
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
RibbonX - Teil 9 - SplitButton
Excel 2007
Zum Inhaltsverzeichnis !
In diesem Teil lernen wir den Splitbutton kennen. Dieses Element wird selten genutzt. SplitButton
knnen genutzt werden, wenn nicht gengend Platz auf dem Ribbon vorhanden ist.
Ein Spiltbutton ist in zwei Teile aufgeteilt. Dem Button und dem Men. Dem Button wird dabei das
aus dem Splitbutton-Men zuletzt genutzte Makro zugewiesen. Normalerweise ist diese Zuweisung
temporr, geht also beim Schlieen der Arbeitsmappe verloren. Damit dies nicht geschieht, nutzen
wir wieder die DocumentProperties. Zu diesem Zweck wird ein neuer Eintrag in den
DocumentProperties angelgt. Anders als bei Umschaltflchen muss der Eintrag in diesem Fall vom
Typ String sein. Fr jeden Splitbutton bentigen Sie einen eigenen Eintrag.
Erstellen Sie eine neue Arbeitsmappe (*.xslm). Fgen Sie ein neues Modul und in dieses das folgende
Makro ein. Fhren Sie selbiges einmalig aus. Danach knnen Sie es wieder lschen.
Sub DocumentProbertieFrToggleButtonAnlegen()
[Link] Name:="SplitButton01", _
LinkToContent:=False, Type:=msoPropertyTypeString, Value:="Spalte A"
End Sub
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
End Sub
Private Sub SplitMacro(ByVal label As String)
Select Case strLabel
Case "Spalte A"
If Columns("A:A").[Link] = False Then
Columns("A:A").[Link] = True
Else
Columns("A:A").[Link] = False
End If
Case "Spalte B"
If Columns("B:B").[Link] = False Then
Columns("B:B").[Link] = True
Else
Columns("B:B").[Link] = False
End If
Case "Spalte C"
If Columns("C:C").[Link] = False Then
Columns("C:C").[Link] = True
Else
Columns("C:C").[Link] = False
End If
End Select
End Sub
Speichern und schlieen Sie jetzt die Arbeitsmappe und ffnen Sie sie mit dem CustomUI-Editor.
Fgen Sie dann den folgenden Code in das Codefenster ein.
<customUI xmlns="[Link]
onLoad="rx_onLoad">
<ribbon startFromScratch="true">
<tabs>
<tab id="tab01" label="Mein Tab">
<group id="grpDemo" label="SplitButton Demo">
<splitButton id="spbImage" size="large" >
<button id="btnImage" getLabel="SplitButton_getLabel"
onAction="SplitButton_onAction"
imageMso="TableSharePointListsModifyColumnsAndSettings"/>
<menu id="menSbt01">
<button id="btn01" label="Spalte A" onAction="SplitMenButton_onAction"/>
<button id="btn02" label="Spalte B" onAction="SplitMenButton_onAction"/>
<button id="btn03" label="Spalte C" onAction="SplitMenButton_onAction"/>
</menu>
</splitButton>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Die Codebeispiele in diesem Beitrag stammen von Melanie Breden !
Beispielarbeitsmappe xl07_splitbutton_neu.xlsm
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Als Nchstes fgen wir Elemente der Schnellstartleiste hinzu. Kann nur genutzt werden, wenn
startFromScratch auf True gesetzt. Die QAT muss noch vor den Tabs und vor dem Office Men
initialisiert werden. In diesem Beispiel werden hinzugefgt:
Speichern, Rckgngig, Wiederholen und Neue Datei.
<!-- Schnellstartleiste - Quick Access Toolbar (QAT)
Hier knnen Sie verschiedene eingebaute Steuerelemente der QAT zuweisen
Hat nur Wirkung bei "startFromScratch="true"" -->
<qat><documentControls>
<!-- Fgt "Speichern" hinzu -->
<control idMso="FileSave" imageMso="FileSave"/>
<!-- Fgt "Rckgngig" ein -->
<control idMso="Undo" imageMso="Undo"/>
<!-- Fgt "Wiederholen" ein -->
<control idMso="Redo" imageMso="Redo"/>
<!-- Fgt "Neue Datei" hinzu -->
<control idMso="FileNewDefault" imageMso="FileNewDefault"/>
</documentControls></qat><!-- Ende QAT -->
Zum Schluss widmen wir uns dem Office Men. Dieses muss noch vor den Tabs und nach der QAT
initialisiert werden. Diese Einstellung hat nur Wirkung, wenn die Office Men-Ebene im XML-Code
eingebaut ist. Ist sie nicht eingebaut und startFromScratch auf True gesetzt, dann werden bis auf drei
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Eintrge alle anderen Meneintrge entfernt. Steht startFromScratch auf False, werden beim Fehlen
der OfficeMen-Ebene alle Eintrge im Office-Men angezeigt.
In diesem Beispiel werden folgende Einstellungen fr das Office Men vorgenommen.
Schlieen->aktiviert. Neu->deaktiviert. Datei ffnen->deaktiviert.
Speichern->deaktiviert. Drucken->aktiviert.
Speichern unter->aktiviert. Senden->aktiviert.
<!-- Officemen. Hier knnen Sie dem Men
standardmig inaktive Elemente hinzufgen oder
standardmig aktive Elemente deaktivieren. -->
<officeMenu >
<!-- Fgt "Schlieen" hinzu (Standardmig inaktiv) -->
<button idMso="FileClose" visible="true" />
<!-- Deaktiviert "Neu" (Standardmig aktiv) -->
<button idMso="FileNew" visible="false" />
<!-- Deaktiviert "Datei ffnen" (Standardmig aktiv) -->
<button idMso="FileOpen" visible="false" />
<!-- Deaktiviert "Speichern" (Standardmig aktiv) -->
<button idMso="FileSave" visible="false" />
<!-- Aktiviert "Drucken" (Standardmig inaktiv) -->
<splitButton idMso="FilePrintMenu" visible="true" />
<!-- Aktiviert "Speichern unter" (Standardmig inaktiv) -->
<splitButton idMso="FileSaveAsMenu" visible="true" />
<!-- Aktiviert "Senden an" (Standardmig inaktiv) -->
<menu idMso="FileSendMenu" visible="true"></menu> </officeMenu>
<!-- Ende Officemen -->
Den gesamten RibbonX-Code finden Sie in der Beispielmappe [Link] (im Anhang) .
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
Excel 2007
Zum Inhaltsverzeichnis !
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Sollen nur bestimmte Tabs der Kontext-Register ausgeblendet werden, benutzt man folgenden Code.
In diesem Beispiel wird das Tab Format der Diagrammtools ausgelendet.
<contextualTabs>
<tabSet idMso="TabSetChartTools" >
<tab idMso="TabChartToolsFormat" visible="false"></tab>
</tabSet>
</contextualTabs>
Sollen nur bestimmte Gruppen eines Tabs deaktiviert werden, benutzt man folgenden Code. In
diesem Beispiel wird die Gruppe Anordnen des Tabs Format ausgeblendet.
<contextualTabs>
<tabSet idMso="TabSetChartTools" >
<tab idMso="TabChartToolsFormat">
<group idMso="GroupArrange" visible="false">
</group>
</tab>
</tabSet>
</contextualTabs>
Die Namen der Tabs und Gruppen finden Sie in der bereits erwhnten bersicht ExcelRibbonControls
(fr die anderen Office Programme nehmen Sie die entsprechende bersicht).
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Die Namen der Tabs finden Sie in den bereits erwhnten bersichten.
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Hier
bei
Quickinfo-Format
whlen
Sie
Der untere Teil der Quickinfo ist Standard und kann nicht gendert werden.
Es gibt zwei Attribute fr die Featurebeschreibung.
1. screentip: Dieser sollte so kurz als mglich sein. Wird er weggelassen, dann wird hier der Name der
Schaltflche angezeigt.
2. supertip. Dieser darf lang sein.
Beispielcode:
<button id="btn123" label="Telefonverzeichnis."
ScreenTip = "Telefonverzeichnis laden"
supertip = "Laden Sie ein selbsterstelltes Telefonverzeichnis."
onAction="Verzeichnisffnen"/>
Es besteht auch die Mglichkeit, die Texte variabel zu halten. Hierzu ist es notwendig, das Ribbon
nach Bettigen der Schaltflche zu aktualisieren.
Dieser Code gehrt in ein Standardmodul:
Option Private Module
Option Explicit
Public objRibbon As IRibbonUI
Public Sub onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Sub Button1_onAction(control As IRibbonControl, pressed As Boolean)
If pressed = True Then
Range("A1").Value = "eingeschaltet"
Else
Range("A1").Value = "ausgeschaltet"
End If
[Link]
End Sub
Sub Button1_getScreentip(control As IRibbonControl, ByRef text)
If Range("A1").Value = "eingeschaltet" Then
text = "Aktiviert"
Else
text = "Deaktiviert"
End If
End Sub
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Anschlieend die Datei speichern und mit dem CustomUi-Editor ffnen. Dann den folgenden Code
einfgen.
<customUI xmlns="[Link]
onLoad="onload">
<ribbon>
<tabs>
<tab id="Quickinfo" label="Quickinfo">
<group id="grp01" label="Quickinfo">
<toggleButton id="tgb01" getLabel="Button1_getLabel"
getScreentip = "Button1_getScreentip"
onAction="Button1_onAction" getPressed="Button1_getpressed"
getSupertip="Button1_getSupertip" imageMso="AutoDial" size="large"/>
</group> </tab></tabs></ribbon></customUI>
Beispielmappe quickinfo_ribbonX.xlsm (im Anhang)
RibbonX - Tutorial
Excel 2007
Zum Inhaltsverzeichnis !
In diesem Teil lernen wir die Galerie kennen. Die Galerie ist eine Art Bildervorschau. Den Items in
einer Gallery werden Bilder (Icons) zugewiesen. Die Auswertung der Auswahl erfolgt ber selectedId.
Ein Beispiel dafr ist die [Link], in welchem die in Office 2007 mglichen Icons
dargestellt werden und welches Sie im Teil 1 dieses Workshops herunterladen knnen.
Erstellen Sie zuerst eine neue Datei mit Makros (*.dotm, *.docm, *.xlsm usw.). Fgen Sie dann ein
neues Modul ein, in welches Sie das folgende Makro einfgen.
Public Sub onAction(control As IRibbonControl, _
selectedId As String, selectedIndex As Integer)
Select Case selectedId
Case "itm1"
MsgBox "Schaltflche ""Telefon"" gedrckt"
Case "itm2"
MsgBox "Schaltfche ""Speichern"" gedrckt"
End Select
End Sub
Speichern Sie die nderung, schlieen die Datei und ffnen Sie es dann mit dem CustomUI-Editor.
Fgen Sie dort den folgenden Code ein.
<customUI xmlns="[Link]
<ribbon>
<tabs>
<tab id="tabGallery" label="Gallery">
<group id="grp" label="Gallerie">
<gallery id="gal" tag="large" label="Galerie" size="large"
imageMso="VisualBasic"
showItemLabel="true" itemWidth="64" itemHeight="64" onAction="OnAction">
<item id="itm1" imageMso="AutoDial" label="Telefon" />
<item id="itm2" imageMso="FileSave" label="Speichern"/>
</gallery>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Speichern und schlieen Sie nun die Datei. Jetzt sollte die Galerie angezeigt werden.
Erklrung:
showItemLabel: Hier knnen Sie festlegen, ob das Label angezeigt werden soll.
onAction: Das auszufhrende Makro
item id: Hier wird die ID zur Identifikation angegeben
image/imageMso: Hier wird das Bild/Name des integrierten Icons angegeben
label: Bezeichnung fr showItemLabel
itemWidth/itemHeight: Gre des Elementes. Empfohlen werden jeweils 32.
columns/rows: Anzahl Zeilen/Spalten. Angabe ist optional.
size: Gre der Schaltflche (normal = klein, large = gro)
Sie knnen auch die Beispieldatei [Link] (im Anhang) nutzen.
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
RibbonX - Teil 17 - RibbonX in Access
Excel 2007
Zum Inhaltsverzeichnis !
In diesem Teil lernen wir, wie man in Access 2007 die Multifunktionsleiste beeinflussen kann.
Anders als in Excel, Word und PowerPoint kann man in Access-Datenbanken RibbonX-Code nicht mit
dem CustomUI-Editor erstellen, da es sich bei Datenbanken nicht um XML-Dateien handelt. Bei
Access wird der Code stattdessen direkt in die Datenbank geschrieben. Hierbei wird eine neue
Tabelle mit dem Namen USysRibbon erstellt, in welche der RibbonX-Code geschrieben wird. Eine
gute Anleitung finden Sie unter Access Ribbon - Gunter Avenius mit vielen Beispieldatenbanken.
In Access knnen Sie eigene Ribbon ganz komfortabel mit dem Access Ribbon Creator (Version
1.1019) erstellen und direkt in die Datenbank schreiben. Der Ribbon Creator beruht auf WYSIWYG,
sie sehen also sofort, wie das Ribbon aussehen wird. In einigen Fllen kann jedoch eine
Nachbearbeitung des RibbonX-Codes erforderlich werden. Diese knnen Sie direkt in der Datenbank
vornehmen. Sie knnen den RibbonX-Code natrlich auch in einem Texteditor schreiben und
anschlieend in die Datenbank schreiben. Hierzu knnen Sie die Beispielcodes aus den
vorangegangenen RibbonX-Beitrgen nutzen.
Hinweis:
Sie knnen den Ribbon Creator auch fr Excel und Word einsetzen.
Der Ribbon Creator nutzt fr gleiche Elemente nur ein Callback. Hierbei wird Select Case eingesetzt.
Wenn Sie fr einzelne Elemente eigene Callbacks nutzen mchten, dann mssen Sie den RibbonXCode anschlieend ber den CustomUI-Editor nachbearbeiten. Fr Access-Datenbanken nehmen Sie
die Anpassung stattdessen direkt in der Datenbank (Tabelle USysRibbon) vor.
Fr Excel- und Worddateien kann es auerdem erforderlich werden, einige Callbackaufrufe aus der
customUI zu entfernen. Hierzu gehrt zum Beispiel LoadImage, da dieses in Excel und Word nicht
zwingend ist. Fr Excel und Word ist es daher empfehlenswert, den RibbonX-Code nicht direkt in die
Datei zu schreiben. Speichern Sie daher den RibbonX-Code zuerst in eine XML-Datei. Anschlieend
kopieren Sie den Code aus der XML-Datei in die Excel- bzw. Worddatei. Sie knnen dann auf Wunsch
den Code mit dem CustomUI-Editor nachbearbeiten.
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
RibbonX - Teil 18 - individuelle Schnellzugriffleiste
Excel 2007
Zum Inhaltsverzeichnis !
Normalerweise wird die Schnellzugriffleiste ber das Office Programm angepasst. Dies hat jedoch
den Nachteil, dass die Schaltflchensymbole (Icons) der integrierten Schaltflchen nicht gendert
werden knnen. Schaltflchensymbole (Icons) fr benutzerdefinierte Makroschaltflchen sind im
Umfang reduziert, es steht also nur eine begrenzte Anzahl der eigentlich mglichen
Schaltflchensymbole (Icons) zur Verfgung. Mchte man andere Schaltflchensymbole nutzen, muss
man die userCustomization extern manipulieren. Wie man das macht, lernen wir hier.
Zuerst wird der Unterschied zwischen der QAT-Ebene in RibbonX und der userCustomization erklrt.
ber die QAT-Ebene in RibbonX lsst sich die Schnellstartleiste beeinflussen. Dies funktioniert jedoch
nur, wenn startFromScratch auf True gesetzt ist. Wenn Sie dieses vergessen, wird der RibbonX-Code
nicht ausgefhrt. In RibbonX ist es nicht mglich, eigene Schaltflchen mit benutzerdefinierten
Makros in die Schnellzugriffleiste zu integrieren. Sie knnen lediglich integrierte Schaltflchen
aktivieren oder deaktivieren oder zustzliche integrierte Schaltflchen zufgen (sharedControls).
Hierzu muss aber startFromScratch auf True gesetzt werden. Das hat jedoch zur Folge, dass die
Standard Ribbon deaktiviert werden. Daher empfiehlt es sich, eigene Makroschaltflchen ber die
userCustomization in die Schnellzugriffleiste zu integrieren.
Mit Hilfe der userCostumization ist es mglich, eigene Schaltflchen mit benutzerdefinierten Makros
in die Schnellzugriffleiste zu integrieren. Die ber die userCostumization erstellte Schnellzugriffleiste
kann nicht durch RibbonX deaktiviert werden, da es sich hierbei um eine eigenstndige Symbolleiste
innerhalb der Schnellzugriffleiste handelt. Vorteil hierbei ist, dass die Standard Ribbon aktiviert
bleiben.
Weder in RibbonX noch in der userCustomization knnen eigene Icons genutzt werden, das imageTag steht nicht zur Verfgung. Bei fehlerhaften Eintrgen in RibbonX und der userCustomization
werden die Codes nicht ausgefhrt.
Um eine eigene userCustomiation zu erstellen gehen Sie wie folgt vor. Da die xml-datei der
userCustomization in der Regel denselben Namen trgt wie die RibbonX-Datei (customUI), habe ich
fr die userCustomization den Namen icontoolbar gewhlt. Die erfordert jedoch, dass diese in der
.rels-Datei bercksichtigt wird.
Erstellen Sie eine neue Datei und speichern diese ab, zum Beispiel als *.xlam (Excel 2007-AddIn) oder
fr Word als Vorlage (*.dotm, Vorlage mit Makros).
Erstellen Sie zuerst einen Ordner mit dem Namen userCustomization. Achten Sie dabei auf die
korrekte Schreibweise wie hier angegeben. Erstellen Sie nun mit Notepad eine neue Textdatei, geben
Sie dieser den Namen icontoolbar und speichern Sie diese mit der Endung .xml im zuvor erstellten
Ordner ab. Kopieren Sie den folgenden Code nun in der [Link], speichern die nderung und
schlieen Sie zum Abschluss die Datei.
<mso:customUI xmlns:doc="[Link]
currentDocument"
xmlns:mso="[Link]
<mso:ribbon><mso:qat>
<mso:documentControls>
<mso:button idMso="FileSaveAs" visible="true" imageMso="FileSaveAs"/>
<mso:button id="FS" visible="true" label="Ruft den Oeffnen-Dialog auf"
imageMso="FileOpen" onAction="Oeffnen"/>
</mso:documentControls></mso:qat></mso:ribbon></mso:customUI>
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Sie knnen nun den Code entsprechend anpassen und um eigene Schaltflchen erweitern. Achten Sie
darauf, dass Sie die Grundstruktur des Codes nicht ndern. Der Beispielcode enthlt jeweils eine
Standardschaltflche und eine benutzerdefinierte Schaltflche mit eigenem Makro. Das Makro
befindet sich dabei in einem Modul der Datei.
Speichern Sie nun die Wordvorlage im Word 2007 Startup-Ordner. Das Excel-AddIn binden Sie wie
gewohnt ber den Excel 2007 AddIn-Manager ein.
Wichtig:
Die ber userCustomization erstellte Schnellzugriffleiste hat Vorrang vor der QAT-Ebene in RibbonX.
Die ber die userCustomization zur Schnellzugriffleiste hinzugefgten Elemente knnen nicht ber
RibbonX deaktiviert werden, sofern die Vorlage (bei Word) im Startup-Ordner gespeichert wurde
oder die Elemente ber AddIn (bei Excel) eingebunden wurden. Dasselbe gilt, wenn Ihre Datei
sowohl RibbonX als auch userCustomization enthlt.
ffnen Sie nun mit Winzip die zuvor Erstellte Officedatei. Kopieren Sie dann den Ordner in den Datei
Container. ffnen Sie jetzt mit Wordpad die Datei .rels aus dem Datei Container heraus und ersetzen
Sie den darin enthaltenen Text durch folgenden Code.
<?xml version="1.0" encoding="utf-8"?>
<Relationships xmlns="[Link]
relationships">
<Relationship Type="[Link]
relationships/metadata/core-properties"
Target="docProps/[Link]" Id="rId3" />
<Relationship Type="[Link]
relationships/ui/userCustomization"
Target="userCustomization/[Link]" Id="rId2" />
<Relationship Type="[Link]
relationships/officeDocument"
Target="word/[Link]" Id="rId1" />
<Relationship Type="[Link]
relationships/extended-properties"
Target="docProps/[Link]" Id="rId4" />
</Relationships>
Sie knnen auch die Beispieldatei herunter laden, und somit die Beispielcodes ber Winzip
anschauen.
Wenn Sie den Aufwand scheuen und trotzdem andere Schaltflchensymbole (Icons) haben mchten,
dann haben Sie auch die Mglichkeit, die entsprechende QAT-Datei zu ndern. Suchen Sie nach der
entsprechenden Datei ([Link], [Link]) und ffnen Sie diese mit Wordpad. Der Code entspricht
nahezu dem oben genannten. Auch in den QAT-Dateien knnen keine eigenen Icons genutzt werden,
das image-Tag steht nicht zur Verfgung. Es knnen nur integrierte Schaltflchensymbole genutzt
werden (imageMso).
Um den Namen der Schaltflchensymbole zu erhalten, laden Sie sich die [Link] herunter.
Die Namen der Schaltflchen entnehmen Sie den entsprechenden Tabellen. Zum herunterladen der
Dateien gehen Sie zum Beitrag RibbonX Teil 1 Einfhrung.
RibbonX - Tutorial
(Einfhrung in die Programmierung der Multifunktionsleiste)
Excel 2007
Zum Inhaltsverzeichnis !
Der vorgenannte Code fr die .rels kann nur in Word verwendet werden. Fr Excel nutzen Sie bitte
folgenden XML-Code
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="[Link]
<Relationship
Id="rId7"
Type="[Link]
Target="docProps/[Link]"/>
<Relationship
Id="rId2"
Type="[Link]
Target="userCustomization/[Link]"/>
<Relationship
Id="rId1"
Type="[Link]
Target="xl/[Link]"/>
<Relationship
Id="rId6"
Type="[Link]
Target="docProps/[Link]"/>
</Relationships>