risposta-alla-domanda-sullo-sviluppo-web-bd.com

Nascondi/Mostra tutte le schede sulla barra multifunzione tranne la scheda personalizzata

Come posso nascondere e mostrare tutte le schede standard della barra multifunzione di Excel tramite VBA (non XML). Non voglio nascondere l'intero nastro (come viene chiesto qui: VBA ridurre a icona la barra multifunzione in Excel ) solo le schede. So come usare startFromScratch usando XML quindi per favore non suggerire questa o altre soluzioni XML.

Finora ho effettuato una ricerca su Google e ho esaminato:

Quello che sto dicendo è che ho già fatto una ricerca approfondita e ho provato molte cose senza ottenere un risultato.

10
Brett

Come posso nascondere e mostrare tutte le schede standard della barra multifunzione di Excel tramite VBA (non XML)

La risposta è " NON PUOI ".

AFAIK, non puoi farlo usando VBA. Sfortunatamente VBA non espone le schede. Le uniche opzioni che hai sono come mostrato nell'immagine qui sotto

enter image description here

Quindi puoi lavorare con la barra dei comandi, commandbarButton, commandbarComboBox ecc ...

Puoi dire che Set cbar = Application.CommandBars("Ribbon") ma dopo, il problema che dovrai affrontare è come ottenere un handle per le schede.

Cosa puoi fare con la barra multifunzione usando VBA:

  • Determina se un particolare controllo è Abilitato/Visibile/Premuto (Togglebox/CheckBoxes)
  • Ottieni l'etichetta, il suggerimento o il supertip di un controllo Visualizza l'immagine associata a un controllo.
  • Esegui un particolare controllo.

Cosa non puoi fare con la barra multifunzione usando VBA:

  • Determina quale scheda è attualmente selezionata.
  • Attiva una particolare scheda.
  • Nascondi una scheda particolare
  • Aggiungi una nuova scheda.
  • Aggiungi un nuovo gruppo a una scheda.
  • Aggiungi un nuovo controllo.
  • Rimuovi/Disabilita/Nascondi un controllo.

Puoi comunque utilizzare XML per ottenere ciò che desideri. Per esempio

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabReview" visible="false" />
        </tabs>
    </ribbon>
</customUI>

Ma suppongo che tu non voglia andare attraverso la Route XML.

11
Siddharth Rout

Puoi infatti nascondere/mostrare i nastri usando VBA. Ecco un esempio:

<ribbon startFromScratch="false">
  <tabs>
  <!-- Excel BUILT-IN TABS -->
    <tab idMso="TabDeveloper" getVisible="GetVisible">
          <group idMso="GroupCode" visible="true"/>
          <group idMso="GroupAddins" visible="true"/>
          <group idMso="GroupControls" visible="true"/>
          <group idMso="GroupXml" visible="true"/>
          <group idMso="GroupModify" visible="true"/>
        </tab>
  </tabs>
</ribbon>
  1. Imposta il tuo file XML.

  2. Imposta il tuo script VBA. Sub GetVisible(control As IRibbonControl, ByRef MakeVisible) Select Case control.ID Case "TabDeveloper": MakeVisible = True Case "TabHome": MakeVisible = True Case "TabInsert": MakeVisible = True Case "TabPageLayoutExcel": MakeVisible = True Case "TabFormulas": MakeVisible = True Case "TabData": MakeVisible = True Case "TabReview": MakeVisible = True Case "TabView": MakeVisible = True Case "TabAddIns": MakeVisible = True Case "TabBackgroundRemoval": MakeVisible = True End Sub

  3. Scarica questo file per un elenco di ID di controllo per MS Office. http://www.Microsoft.com/en-us/download/details.aspx?displaylang=en&id=6627

Suggerimento: assicurati di chiudere la cartella di lavoro di Excel che include la barra multifunzione che stai modificando prima di modificare il file della barra multifunzione XML. Ho scoperto che a volte cancella il mio codice VBA (non so perché, lo fa).

4
user6620568

Per attivare una determinata scheda

In Microsoft Office 2010, si attiva una scheda personalizzata utilizzando il metodo ActivateTab dell'oggetto IRibbonUI

Si utilizza il metodo ActivateTabMso per le schede integrate e ActivateTabQ per le schede condivise tra più componenti aggiuntivi.

ActivateTabQ richiede anche un ulteriore parametro di tipo String che specifica lo spazio dei nomi del componente aggiuntivo

In XML specificare

customUI onLoad="RibbonOnLoad" xmlns=etc

In VBA

Public gRibbonUI As IRibbonUI 

Sub RibbonOnLoad(ribbon As IRibbonUI)

   Set gRibbonUI = ribbon

End Sub

Quindi nel codice

gRibbonUI.ActivateTab "MyTabID"

gRibbonUI.ActivateTabMso "TabHome"
4
sysmod

Innanzitutto, apri il foglio Excel su cui vuoi nascondere la scheda della barra multifunzione, quindi premi Alt+F11. Inserisci un nuovo modulo di codice e aggiungi il seguente codice:

Private Sub hide()
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
End sub
3
Seshadri

Puoi usare l'XML come questi:

<ribbon startFromScratch = "true">

controlla questo link:

http://www.rondebruin.nl/win/s2/win012.htm

1
Evert

Prova questo XML per Excel che ho testato:

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
    <tab idMso="TabHome" visible="false" />
    <tab idMso="TabInsert" visible="false" />
    <tab idMso="TabFormulas" visible="false" />
    <tab idMso="TabData" visible="false" />
    <tab idMso="TabReview" visible="false" />
    <tab idMso="TabView" visible="false" />
    <tab idMso="TabDeveloper" visible="false" />
</tabs>
</ribbon>
</customUI>

 XML Code

Risultato:
 ExcelApp

0
PatricK