it-swarm.com.de

Wie füge ich eine benutzerdefinierte Multifunktionsleistenregisterkarte mit VBA hinzu?

Ich suche nach einer Möglichkeit, dem Excel-Menüband eine benutzerdefinierte Registerkarte hinzuzufügen, auf der sich einige Schaltflächen befinden. Ich habe auf einige Ressourcen gestoßen, die es über Google angesprochen haben, aber alle sehen zwielichtig und unverschämt kompliziert aus.

Was ist eine schnelle und einfache Möglichkeit, dies zu tun? Ich möchte, dass die neue Registerkarte geladen wird, wenn mein VBA in Excel geladen wird.

[~ # ~] update [~ # ~] : Ich habe dieses Beispiel von hier ausprobiert, aber ein "Objekt" erhalten erforderlich "Fehler bei der letzten Anweisung:

Public Sub AddHighlightRibbon()
Dim ribbonXml As String

ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.Microsoft.com/office/2009/07/customui"">"
ribbonXml = ribbonXml + "  <mso:ribbon>"
ribbonXml = ribbonXml + "    <mso:qat/>"
ribbonXml = ribbonXml + "    <mso:tabs>"
ribbonXml = ribbonXml + "      <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">"
ribbonXml = ribbonXml + "        <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">"
ribbonXml = ribbonXml + "          <mso:button id=""highlightManualTasks"" label=""Toggle Manual Task Color"" "
ribbonXml = ribbonXml + "imageMso=""DiagramTargetInsertClassic"" onAction=""ToggleManualTasksColor""/>"
ribbonXml = ribbonXml + "        </mso:group>"
ribbonXml = ribbonXml + "      </mso:tab>"
ribbonXml = ribbonXml + "    </mso:tabs>"
ribbonXml = ribbonXml + "  </mso:ribbon>"
ribbonXml = ribbonXml + "</mso:customUI>"

ActiveProject.SetCustomUI (ribbonXml)
End Sub
93
BuZz

AFAIK Sie können VBA Excel nicht verwenden, um eine benutzerdefinierte Registerkarte in der Excel-Multifunktionsleiste zu erstellen. Sie können eine Menübandkomponente jedoch mit VBA ausblenden/sichtbar machen. Darüber hinaus bezieht sich der oben erwähnte Link auf MS Project und nicht auf MS Excel.

Ich erstelle Registerkarten für meine Excel-Anwendungen/Add-Ins mit dem kostenlosen Dienstprogramm Custom UI Editor .


Bearbeiten: Um neue Anforderungen von OP aufzunehmen

Tutorial

Hier ist ein kurzes Tutorial wie versprochen:

  1. Nachdem Sie den Custom UI Editor (CUIE) installiert haben, öffnen Sie ihn und klicken Sie auf Datei | Öffnen Sie die entsprechende Excel-Datei und wählen Sie sie aus. Stellen Sie sicher, dass die Excel-Datei geschlossen ist, bevor Sie sie über CUIE öffnen. Ich verwende ein brandneues Arbeitsblatt als Beispiel.

    enter image description here

  2. Klicken Sie mit der rechten Maustaste, wie in der Abbildung unten gezeigt, und klicken Sie auf "Office 2007 Custom UI Part". Es wird die "customUI.xml" eingefügt

    enter image description here

  3. Weiter Klicken Sie auf das Menü Einfügen | Beispiel XML | Benutzerdefinierte Registerkarte. Sie werden feststellen, dass der Basiscode automatisch generiert wird. Jetzt können Sie es gemäß Ihren Anforderungen bearbeiten.

    enter image description here

  4. Lassen Sie uns den Code untersuchen

    enter image description here

    label="Custom Tab": Ersetzen Sie "Benutzerdefinierte Registerkarte" durch den Namen, den Sie Ihrer Registerkarte geben möchten. Nennen wir es vorerst "Hieronymus".

    Der folgende Teil fügt eine benutzerdefinierte Schaltfläche hinzu.

    <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="Callback" />
    

    imageMso: Dies ist das Bild, das auf der Schaltfläche angezeigt wird. "HappyFace" ist das, was Sie im Moment sehen werden. Sie können hier weitere Bild-IDs herunterladen .

    onAction="Callback": "Rückruf" ist der Name der Prozedur, die ausgeführt wird, wenn Sie auf die Schaltfläche klicken.

Demo

Erstellen wir nun 2 Buttons und nennen sie "JG Button 1" und "JG Button 2". Lassen Sie uns ein fröhliches Gesicht als das Bild des ersten und die "Sonne" für das zweite behalten. Der geänderte Code sieht jetzt so aus:

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyCustomTab" label="Jerome" insertAfterMso="TabView">
<group id="customGroup1" label="First Tab">
<button id="customButton1" label="JG Button 1" imageMso="HappyFace" size="large" onAction="Callback1" />
<button id="customButton2" label="JG Button 2" imageMso="PictureBrightnessGallery" size="large" onAction="Callback2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Löschen Sie den gesamten Code, der in CUIE generiert wurde, und fügen Sie stattdessen den obigen Code ein. Speichern und schließen Sie CUIE. Wenn Sie nun die Excel-Datei öffnen, sieht es so aus:

enter image description here

Nun der Codeteil. Öffnen Sie den VBA-Editor, fügen Sie ein Modul ein und fügen Sie den folgenden Code ein:

Public Sub Callback1(control As IRibbonControl)

    MsgBox "You pressed Happy Face"

End Sub

Public Sub Callback2(control As IRibbonControl)

    MsgBox "You pressed the Sun"

End Sub

Speichern Sie die Excel-Datei als eine Makro-aktivierte Datei. Wenn Sie nun auf den Smiley oder die Sonne klicken, wird das entsprechende Meldungsfeld angezeigt:

enter image description here

Hoffe das hilft!

141
Siddharth Rout

Ich konnte dies mit VBA in Excel 2013 erreichen. Es sind keine speziellen Editoren erforderlich. Sie benötigen lediglich den Visual Basic-Code-Editor, auf den Sie auf der Registerkarte Entwickler zugreifen können. Die Registerkarte "Entwickler" ist standardmäßig nicht sichtbar. Sie muss daher unter "Datei"> "Optionen"> "Menüband anpassen" aktiviert sein. Klicken Sie auf der Registerkarte Entwickler auf die Schaltfläche Visual Basic. Der Code-Editor wird gestartet. Klicken Sie links mit der rechten Maustaste in den Projekt-Explorer. Klicken Sie auf das Menü Einfügen und wählen Sie das Modul aus. Fügen Sie dem neuen Modul die beiden folgenden Subs hinzu.

Sub LoadCustRibbon()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.Microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='Reports' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='Reports' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + "          <mso:button id='runReport' label='PTO' "   & vbNewLine
ribbonXML = ribbonXML + "imageMso='AppointmentColor3'      onAction='GenReport'/>" & vbNewLine
ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"

ribbonXML = Replace(ribbonXML, """", "")

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Sub ClearCustRibbon()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI           xmlns:mso=""http://schemas.Microsoft.com/office/2009/07/customui"">" & _
"<mso:ribbon></mso:ribbon></mso:customUI>"

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Rufen Sie LoadCustRibbon sub im Wookbook open even auf und rufen Sie ClearCustRibbon sub im Before_Close-Ereignis der ThisWorkbook-Codedatei auf.

27
Roi-Kyi Bryant

Ich kämpfte wie verrückt, aber das ist eigentlich die richtige Antwort. Für das, was es wert ist, was ich vermisst habe, war Folgendes:

  1. Wie andere sagen, kann man das CustomUI-Menüband nicht mit VBA erstellen, jedoch, das müssen Sie nicht!
  2. Die Idee ist, dass Sie Ihren XML-Multifunktionsleistencode mithilfe von Excel-Datei> Optionen> Multifunktionsleiste anpassen erstellen und dann die Multifunktionsleiste in eine .customUI-Datei exportieren (es ist nur eine TXT-Datei, in der XML enthalten ist).
  3. Jetzt kommt der Trick: Sie können einschließen den .customUI-Code in Ihre .xlsm-Datei mit dem MS-Tool, auf das sie sich hier beziehen, kopieren, indem Sie den Code aus der .xlsm-Datei kopieren .customUI-Datei
  4. Sobald es in der .xlsm-Datei enthalten ist, wird das von Ihnen definierte Menüband bei jedem Öffnen hinzugefügt zum Menüband des Benutzers. Verwenden Sie jedoch <ribbon startFromScratch = "false">, oder Sie verlieren der Rest des Bandes. Beim Verlassen der Arbeitsmappe wird das Menüband entfernt.
  5. Von hier an ist es einfach, Ihr Menüband zu erstellen, den für Ihr Menüband spezifischen XML-Code aus der .customUI-Datei zu kopieren und ihn wie oben gezeigt in einen Wrapper zu legen (... <tabs> your xml </ tabs .. .)

Übrigens ist die Seite, die es auf Rons Seite erklärt, jetzt unter http://www.rondebruin.nl/win/s2/win002.htm

Und hier ist sein Beispiel, wie Sie Schaltflächen auf der Multifunktionsleiste aktivieren/deaktivieren http://www.rondebruin.nl/win/s2/win013.htm

Weitere XML-Beispiele für Multifunktionsleisten finden Sie auch unter http://msdn.Microsoft.com/en-us/library/office/aa338202%28v=office.12%29.aspx

20
Jan Wijninckx

Die Antworten hier beziehen sich speziell auf die Verwendung des benutzerdefinierten UI-Editors. Ich habe einige Zeit damit verbracht, die Benutzeroberfläche ohne dieses wundervolle Programm zu erstellen. Daher dokumentiere ich die Lösung hier, um anderen zu helfen, zu entscheiden, ob sie diesen benutzerdefinierten UI-Editor benötigen oder nicht.

Ich bin auf die folgende Microsoft-Hilfeseite gestoßen - https://msdn.Microsoft.com/en-us/library/office/ff861787.aspx . Hier sehen Sie, wie Sie die Benutzeroberfläche manuell einrichten. Beim Verweisen auf meinen benutzerdefinierten Add-In-Code sind jedoch einige Probleme aufgetreten.

Damit die Schaltflächen mit Ihren benutzerdefinierten Makros funktionieren, richten Sie das Makro in Ihren .xlam-Subs so ein, wie in dieser SO answer - Aufruf eines Excel beschrieben Makro aus der Multifunktionsleiste . Grundsätzlich müssen Sie diesen Parameter "control As IRibbonControl" zu jedem Modul hinzufügen, auf das in Ihrer Multifunktionsleisten-XML verwiesen wird ! mymodule.mysub "-Syntax, um alle vom Add-In geladenen Module ordnungsgemäß aufzurufen.

Mit diesen Anweisungen konnte ich ein Excel-Add-In (.xlam-Datei) erstellen, in dem eine benutzerdefinierte Registerkarte geladen ist, wenn mein VBA zusammen mit dem Add-In in Excel geladen wird. Die Schaltflächen führen Code aus dem Add-In aus und die benutzerdefinierte Registerkarte wird deinstalliert, wenn Ich entferne das Add-In.

17
Jomtung

Neben der Antwort von Roi-Kyi Bryant funktioniert dieser Code auch in Excel 2010. Drücken Sie ALT + F11, und der VBA-Editor wird angezeigt. Doppelklicken Sie auf der linken Seite auf ThisWorkbook und fügen Sie den folgenden Code ein:

Private Sub Workbook_Activate()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.Microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='My Actions' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='Reports' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + "          <mso:button id='runReport' label='Trim' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AppointmentColor3'      onAction='TrimSelection'/>" & vbNewLine
ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"

ribbonXML = Replace(ribbonXML, """", "")

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Private Sub Workbook_Deactivate()

Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String

hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"

ribbonXML = "<mso:customUI           xmlns:mso=""http://schemas.Microsoft.com/office/2009/07/customui"">" & _
"<mso:ribbon></mso:ribbon></mso:customUI>"

Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile

End Sub

Vergessen Sie nicht, die Arbeitsmappe zu speichern und erneut zu öffnen. Hoffe das hilft!

8
Erikas

Ich hatte Probleme mit der Lösung von Roi-Kyi Bryant, alsmultipleAdd-Ins versuchten, das Menüband zu ändern. Ich habe auch keinen Administratorzugriff auf meinem Arbeitscomputer, was die Installation von Custom UI Editor ausschloss. Wenn Sie sich also im selben Boot wie ich befinden, finden Sie hier eine Alternativeexamplezum Anpassen des Menübands nur mit Excel. Beachten Sie, dass meine Lösung aus dem Microsoft-Handbuch abgeleitet ist.


  1. Erstellen Sie Excel-Dateien, deren Bänder Sie anpassen möchten. In meinem Fall habe ich zwei .xlam Dateien, Chart Tools.xlam und Priveleged UDFs.xlam, erstellt, um zu demonstrieren, wie mehrere Add-Ins mit der Multifunktionsleiste interagieren können.
  2. Erstellen Sie einen Ordner mit einem beliebigen Ordnernamen fürjedeDatei, die Sie gerade erstellt haben.
  3. Fügen Sie in jedem von Ihnen erstellten Ordner einen Ordner customUI und _rels hinzu.
  4. Erstellen Sie in jedem customUI Ordner eine customUI.xml Datei. Die Datei customUI.xml gibt an, wie Excel-Dateien mit dem Menüband interagieren. Teil 2 des Microsoft-Handbuchs behandelt die Elemente in der Datei customUI.xml.

Meine customUI.xml Datei für Chart Tools.xlam sieht so aus

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui" xmlns:x="sao">
  <ribbon>
    <tabs>
      <tab idQ="x:chartToolsTab" label="Chart Tools">
        <group id="relativeChartMovementGroup" label="Relative Chart Movement" >
            <button id="moveChartWithRelativeLinksButton" label="Copy and Move" imageMso="ResultsPaneStartFindAndReplace" onAction="MoveChartWithRelativeLinksCallBack" visible="true" size="normal"/>
            <button id="moveChartToManySheetsWithRelativeLinksButton" label="Copy and Distribute" imageMso="OutlineDemoteToBodyText" onAction="MoveChartToManySheetsWithRelativeLinksCallBack" visible="true" size="normal"/>
        </group >
        <group id="chartDeletionGroup" label="Chart Deletion">
            <button id="deleteAllChartsInWorkbookSharingAnAddressButton" label="Delete Charts" imageMso="CancelRequest" onAction="DeleteAllChartsInWorkbookSharingAnAddressCallBack" visible="true" size="normal"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

Meine customUI.xml Datei für Priveleged UDFs.xlam sieht so aus

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui" xmlns:x="sao">
  <ribbon>
    <tabs>
      <tab idQ="x:privelgedUDFsTab" label="Privelged UDFs">
        <group id="privelgedUDFsGroup" label="Toggle" >
            <button id="initialisePrivelegedUDFsButton" label="Activate" imageMso="TagMarkComplete" onAction="InitialisePrivelegedUDFsCallBack" visible="true" size="normal"/>
            <button id="deInitialisePrivelegedUDFsButton" label="De-Activate" imageMso="CancelRequest" onAction="DeInitialisePrivelegedUDFsCallBack" visible="true" size="normal"/>
        </group >
      </tab>
    </tabs>
  </ribbon>
</customUI>
  1. Fügen Sie fürjedeDatei, die Sie in Schritt 1 erstellt haben, einen .Zip an den Dateinamen an. In meinem Fall habe ich Chart Tools.xlam in Chart Tools.xlam.Zip und Privelged UDFs.xlam in Priveleged UDFs.xlam.Zip umbenannt.
  2. Öffnen Sie jede .Zip Datei und navigieren Sie zum _rels Ordner. Kopieren Sie die Datei .rels in den in Schritt 3 erstellten Ordner _rels. Bearbeiten Sie die Dateieach.rels mit einem Texteditor. Aus dem Microsoft Guide

Fügen Sie zwischen dem letzten Element <Relationship> und dem schließenden Element <Relationships> eine Zeile hinzu, die eine Beziehung zwischen der Dokumentdatei und der Anpassungsdatei herstellt. Stellen Sie sicher, dass Sie die Ordner- und Dateinamen korrekt angeben.

<Relationship Type="http://schemas.Microsoft.com/office/2006/
  relationships/ui/extensibility" Target="/customUI/customUI.xml" 
  Id="customUIRelID" />

Meine .rels Datei für Chart Tools.xlam sieht so aus

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
        <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
        <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
        <Relationship Type="http://schemas.Microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="chartToolsCustomUIRel" />
    </Relationships>

Meine .rels Datei für Priveleged UDFs sieht so aus.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
        <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
        <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
        <Relationship Type="http://schemas.Microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="privelegedUDFsCustomUIRel" />
    </Relationships>
  1. Ersetzen Sie die .rels Dateien in jeder .Zip Datei durch die .rels Datei (en), die Sie im vorherigen Schritt geändert haben.
  2. Kopieren Sie den Ordner .customUI, den Sie erstellt haben, und fügen Sie ihn in das Ausgangsverzeichnis der .Zip-Datei (en) ein.
  3. Entfernen Sie die Dateierweiterung .Zip aus den von Ihnen erstellten Excel-Dateien.
  4. Wenn Sie .xlam Dateien erstellt haben, fügen Sie diese in Excel zu Ihren Excel-Add-Ins hinzu.
  5. Erstellen Sie gegebenenfalls Rückrufe in jedem Ihrer Add-Ins. In Schritt 4 befinden sich onAction Schlüsselwörter in meinen Schaltflächen. Das Schlüsselwort onAction gibt an, dass die Excel-Anwendung beim Auslösen des enthaltenden Elements die in Anführungszeichen eingeschlossene Unterroutine direkt nach dem Schlüsselwort onAction auslöst. Dies wird als Rückruf bezeichnet. In meinen .xlam Dateien habe ich ein Modul mit dem Namen CallBacks, in das ich meine Rückruf-Subroutinen eingefügt habe.

CallBacks Module

Mein CallBacks Modul für Chart Tools.xlam sieht so aus

Option Explicit

Public Sub MoveChartWithRelativeLinksCallBack(ByRef control As IRibbonControl)
  MoveChartWithRelativeLinks
End Sub

Public Sub MoveChartToManySheetsWithRelativeLinksCallBack(ByRef control As IRibbonControl)
  MoveChartToManySheetsWithRelativeLinks
End Sub

Public Sub DeleteAllChartsInWorkbookSharingAnAddressCallBack(ByRef control As IRibbonControl)
  DeleteAllChartsInWorkbookSharingAnAddress
End Sub

Mein CallBacks Modul für Priveleged UDFs.xlam sieht so aus

Option explizit

Public Sub InitialisePrivelegedUDFsCallBack(ByRef control As IRibbonControl)
  ThisWorkbook.InitialisePrivelegedUDFs
End Sub

Public Sub DeInitialisePrivelegedUDFsCallBack(ByRef control As IRibbonControl)
  ThisWorkbook.DeInitialisePrivelegedUDFs
End Sub

Unterschiedliche Elemente haben eine unterschiedliche Signatur der Rückruf-Unterroutine. Für Schaltflächen lautet der erforderliche Unterprogrammparameter ByRef control As IRibbonControl. Wenn Sie die erforderliche Rückrufsignatur nicht einhalten, wird beim Kompilieren Ihrer VBA-Projekte eine Fehlermeldung angezeigt. Teil 3 des Microsoft-Handbuchs definiert alle Rückrufsignaturen.


So sieht mein fertiges Beispiel aus

Finished Product


Einige abschließende Tipps

  1. Wenn Add-Ins Ribbon-Elemente gemeinsam nutzen sollen, verwenden Sie das Schlüsselwort idQ und xlmns:. In meinem Beispiel haben sowohl Chart Tools.xlam als auch Priveleged UDFs.xlam Zugriff auf die Elemente, wobei idQx:chartToolsTab und x:privelgedUDFsTab entspricht. . Damit dies funktioniert, ist der x: erforderlich, und ich habe seinen Namespace in der ersten Zeile meiner customUI.xml -Datei, <customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui" xmlns:x="sao">, definiert. Der Abschnitt Zwei Möglichkeiten zum Anpassen der Fluent-Benutzeroberfläche im Microsoft-Handbuch enthält weitere Informationen.
  2. Wenn Add-Ins auf mit Excel gelieferte Multifunktionsleistenelemente zugreifen sollen, verwenden Sie das Schlüsselwort isMSO. Der Abschnitt Zwei Möglichkeiten zum Anpassen der Fluent-Benutzeroberfläche im Microsoft-Handbuch enthält weitere Informationen.
4
Joshua Daly