Barra multifunzione di MS Office Excel: impossibile modificare / nascondere il gruppo di modifica nella scheda Home
-
22-07-2019 - |
Domanda
Ho un componente aggiuntivo .net per Excel. Il componente aggiuntivo crea l'interfaccia utente della barra multifunzione per Excel 2007 e riutilizza alcuni comandi esistenti come Taglia, Copia, Incolla, Ordina ecc.
Per Taglia, Copia e Incolla, sto semplicemente sovrascrivendo il loro valore OnAction per chiamare la mia procedura quando si fa clic sui pulsanti. Ma per i comandi Ordina, Ordina Asc e Ordina Desc il caso è leggermente diverso. Quando si fa clic su uno dei pulsanti Ordina, Ordina Asc o Ordina Desc, si desidera ricevere una notifica e quindi chiamare la funzionalità predefinita. Ciò è stato possibile nelle barre dei comandi di Excel 2003 chiamando il metodo Execute () su CommandBarControl.
In Excel 2007, esiste un metodo ExecuteMso () per fare clic programmaticamente su un elemento della barra multifunzione ma quando OnAction viene sovrascritto, questo metodo ExecuteMso () esegue solo la mia procedura e non la funzionalità default di quel pulsante.
Quindi ho pensato di nascondere i pulsanti Ordina in " Modifica " gruppo nella scheda Home e aggiungi i miei pulsanti Ordina, Ordina Asc e Ordina Desc. I pulsanti chiameranno prima nella mia procedura da dove chiamerò il comportamento predefinito.
Ora il problema è che non riesco a cambiare / nascondere il gruppo di modifica (idMso = " GroupEditing "). Questo gruppo integrato non è modificabile? Posso tuttavia NASCONDERE gli Appunti e altri gruppi (ma non posso aggiungere pulsanti ad essi).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group idMso="GroupEditing" visible="false" />
</tab>
</tabs>
</ribbon>
</customUI>
Soluzione
Penso che l'idMso sia errato in relazione al nascondere il gruppo di modifica.
idMso = " GroupEditingExcel "