Comment ajouter un onglet de Ruban personnalisé à l'aide de VBA?
Je suis à la recherche d'un moyen pour ajouter un onglet personnalisé dans le ruban d'Excel qui porterait sur quelques boutons. Je me trouvai sur certaines ressources d'adressage via Google, mais tous l'air douteux et extrêmement compliqué.
Ce qui est une façon simple et rapide à faire ? J'aimerais le nouvel onglet de se charger quand mon VBA est chargé dans Excel..
Mise à JOUR :
J'ai essayé cet exemple de ici, mais un "objet requis" erreur sur la dernière instruction :
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
- Veuillez confirmer dans quelle version d'Excel que vous utilisez?
- Je suis à l'aide de 2007
- C'est pour le Projet.
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, vous ne pouvez pas utiliser VBA Excel pour créer des onglet dans le ruban d'Excel. Cependant, vous pouvez masquer/rendre visible un composant du ruban à l'aide de VBA. En outre, le lien que vous avez mentionné ci-dessus est pour MS Project et pas MS Excel.
Je créer des onglets pour mes Applications Excel/Add-Ins à l'aide de cet utilitaire gratuit appelé L'INTERFACE utilisateur personnalisée de l'Éditeur.
Edit: pour s'adapter À la nouvelle demande de l'OP
Tutoriel
Voici un bref tutoriel comme promis:
Après avoir installé le Custom UI Editor (CUIE), l'ouvrir, puis cliquez sur Fichier | Ouvrir et sélectionnez le Fichier Excel. Veuillez vous assurer que le Fichier Excel est fermé avant de l'ouvrir via CUIE. Je suis l'aide d'une marque nouvelle feuille de calcul comme un exemple.
Clic droit comme indiqué dans l'image ci-dessous et cliquez sur "Office 2007 de l'INTERFACE utilisateur Personnalisée Partie". Il va insérer l' "customUI.xml"
Ensuite, Cliquez sur le menu Insertion | Échantillon XML | Onglet Personnalisé. Vous remarquerez que le code de base est généré automatiquement. Maintenant vous êtes tous ensemble pour le modifier selon vos besoins.
Nous allons inspecter le code
label="Custom Tab"
: Remplacer "Onglet Personnalisé" avec le nom que vous voulez donner à votre onglet. Pour le moment, nous allons l'appeler "Jerome".Le ci-dessous une partie ajoute un bouton personnalisé.
imageMso
: C'est l'image qui va s'afficher sur le bouton. "HappyFace" est ce que vous allez voir à l'instant. Vous pouvez télécharger une image plus ID ici.onAction="Callback"
: "Rappel" est le nom de la procédure qui s'exécute lorsque vous cliquez sur le bouton.Démo
Avec cela, nous allons créer 2 boutons et de les appeler "JG Bouton 1" et "JG Bouton 2". Nous allons garder un visage heureux que l'image de la première, et nous allons garder le "Soleil" pour la seconde. Le code amendé ressemble maintenant à ceci:
Supprimer tout le code qui a été généré dans CUIE puis coller le code ci-dessus à la place de qui. Enregistrez et fermez CUIE. Désormais, lorsque vous ouvrez un Fichier Excel, il ressemblera à ceci:
Maintenant le code de la partie. Ouvrir l'Éditeur VBA, insérer un module, et collez ce code:
Enregistrer le fichier Excel est une macro activé fichier. Désormais, lorsque vous cliquez sur le Smiley ou le Soleil, vous verrez le message de la boîte:
Espérons que cette aide!
.xlam
fichier de quelqu'un d'autre.. comment voyez-vous l'existant.xml
fichier qui contient le code et les images pour le Ruban?J'ai été en mesure d'accomplir ceci avec VBA dans Excel 2013. Aucun des éditeurs de besoin. Tous vous avez besoin est le code Visual Basic editor, qui peut être consulté sur l'onglet Développeur. L'onglet Développeur n'est pas visible par défaut, de sorte qu'il doit être activée dans le Fichier>Options>Personnaliser le Ruban. Sous l'onglet Développeur, cliquez sur le bouton Visual Basic. L'éditeur de code s'ouvre. Faites un clic droit dans l'Explorateur de Projet sur le volet de gauche. Cliquez sur le menu insertion, cliquez sur module. Ajouter les deux subs ci-dessous pour le nouveau module.
Appel LoadCustRibbon sub dans le Wookbook ouverte et appel le ClearCustRibbon sub dans le Before_Close Cas de le ThisWorkbook fichier de code.
J'ai lutté comme un fou, mais c'est effectivement la bonne réponse. Pour ce qu'il vaut, ce que j'ai manqué était est-ce:
ajouté à l'utilisateur du ruban - mais n'utilisez < ruban startFromScratch="false" > ou si vous perdez le reste du ruban. À la sortie-ing le classeur, le ruban est supprimé.
Par la voie de la page qui l'explique sur Ron du site est maintenant à
http://www.rondebruin.nl/win/s2/win002.htm
Et voici son exemple sur la façon dont vous activer /désactiver les boutons sur le Ruban
http://www.rondebruin.nl/win/s2/win013.htm
Pour d'autres exemples xml de rubans, voir également
http://msdn.microsoft.com/en-us/library/office/aa338202%28v=office.12%29.aspx
Les réponses ici sont spécifiques à l'aide de l'INTERFACE utilisateur personnalisée de l'Éditeur. J'ai passé un peu de temps à la création de l'interface sans que programme merveilleux, je suis à la documentation de la solution ici pour aider quelqu'un d'autre décider s'ils ont besoin que la coutume d'INTERFACE de l'éditeur ou pas.
Je suis tombé sur la suite de microsoft à l'aide de la page web - https://msdn.microsoft.com/en-us/library/office/ff861787.aspx. Cela montre comment configurer l'interface manuellement, mais j'ai eu quelques difficultés lors du pointage de mes add-in code.
Pour obtenir les boutons de travailler avec vos macros personnalisées, le programme d'installation de la macro dans votre .xlam subs être appelé comme décrit dans cette SORTE de réponse - L'appel d'une macro excel à partir du ruban. Fondamentalement, vous aurez besoin d'ajouter que "le contrôle Comme IRibbonControl" paramètre de n'importe quel module de relever à partir de votre ruban xml. Aussi, votre ruban xml doit avoir le onAction="myaddin!mymodule.mysub" syntaxe pour appeler correctement les modules chargés par l'ajout dans.
À l'aide de ces instructions, j'ai été en mesure de créer un complément excel en (.xlam fichier) qui a un onglet personnalisé chargé lors de mon VBA est chargé dans Excel avec l'ajouter dans. Les boutons d'exécuter du code à partir de l'ajouter et l'onglet personnalisé désinstalle quand j'enlève l'ajouter dans.
En plus de retour sur investissement-Kyi Bryant réponse, ce code marche dans Excel 2010. Appuyez sur ALT + F11 et l'éditeur VBA pop up. Double-cliquez sur
ThisWorkbook
sur le côté gauche, puis collez ce code:N'oubliez pas d'enregistrer et ré-ouvrir le classeur. Espérons que cette aide!
J'ai rencontré des difficultés avec Roi-Kyi Bryant solution lorsque plusieurs compléments essayé de modifier le ruban. Je n'ai pas aussi un accès admin sur mon travail sur ordinateur, ce qui exclu l'installation de la
Custom UI Editor
. Donc, si vous êtes dans le même bateau que moi, voici une alternative exemple de personnaliser le ruban à l'aide de Excel. Remarque, ma solution est dérivé de la Guide de Microsoft..xlam
fichiers,Chart Tools.xlam
etPriveleged UDFs.xlam
, afin de montrer comment plusieurs add-ins peuvent interagir avec le Ruban.customUI
et_rels
dossier.customUI
dossier, créez uncustomUI.xml
fichier. LecustomUI.xml
les détails d'un fichier comment fichiers Excel interagir avec le ruban. La partie 2 du guide de Microsoft couvre les éléments dans lecustomUI.xml
fichier.Mon
customUI.xml
fichier pourChart Tools.xlam
ressemble à ceciMon
customUI.xml
fichier pourPriveleged UDFs.xlam
ressemble à ceci.zip
de leur nom de fichier. Dans mon cas, j'ai renomméChart Tools.xlam
àChart Tools.xlam.zip
, etPrivelged UDFs.xlam
àPriveleged UDFs.xlam.zip
..zip
fichier, puis accédez à la_rels
dossier. Copiez le.rels
fichier à la_rels
dossier que vous avez créé à l'Étape 3. Edit chaque.rels
fichier avec un éditeur de texte. À partir de la Guide de MicrosoftMon
.rels
fichier pourChart Tools.xlam
ressemble à ceciMon
.rels
fichier pourPriveleged UDFs
ressemble à ceci..rels
fichiers dans chaque.zip
fichier avec l'.rels
de fichiers/les fichiers que vous avez modifié dans l'étape précédente..customUI
dossier que vous avez créé dans le répertoire home de l'.zip
fichier/fichiers..zip
l'extension de fichier à partir de fichiers Excel que vous avez créé..xlam
fichiers, de retour dans Excel, les ajouter à votre Excel add-ins.onAction
des mots clés dans mes boutons. LeonAction
mot clé indique que, lorsque l'élément conteneur est déclenchée, l'application Excel de déclencher la sous-routine enfermé dans guillemets directement après laonAction
mot-clé. Ceci est connu comme un rappel. Dans mon.xlam
fichiers, j'ai un module appeléCallBacks
où j'ai inclus mon rappel des sous-routines.Mon
CallBacks
module pourChart Tools.xlam
ressembleMon
CallBacks
module pourPriveleged UDFs.xlam
ressembleOption Explicit
Différents éléments ont un autre rappel de la sous-routine de signature. Pour les boutons, la sous-routine paramètre est
ByRef control As IRibbonControl
. Si vous ne sont pas conformes à l'exigence de la signature de rappel, vous recevrez un message d'erreur lors de la compilation de votre projet VBA/projets. La partie 3 du guide de Microsoft définit tous le rappel des signatures.Voici ce que mon fini ressemble
Certains de clôture des conseils
idQ
etxlmns:
mot-clé. Dans mon exemple, leChart Tools.xlam
etPriveleged UDFs.xlam
les deux ont accès aux éléments avecidQ
égale àx:chartToolsTab
etx:privelgedUDFsTab
. Pour que cela fonctionne, lex:
est nécessaire, et, j'ai défini son espace de noms dans la première ligne de moncustomUI.xml
fichier,<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="sao">
. La section Deux Façons de Personnaliser l'INTERFACE utilisateur Fluent dans le Guide de Microsoft donne un peu plus de détails.isMSO
mot-clé. La section Deux Façons de Personnaliser l'INTERFACE utilisateur Fluent dans le Guide de Microsoft donne un peu plus de détails.