Come personalizzare i menu di scelta rapida di Excel 2016 in VBA

Come personalizzare i menu di scelta rapida di Excel 2016 in VBA

Prima di Excel 2007, i programmatori VBA utilizzavano l'oggetto CommandBar per creare menu personalizzati, barre degli strumenti personalizzate e menu di scelta rapida personalizzati (tasto destro del mouse). A partire da Excel 2007, l'oggetto CommandBar si trova in una posizione piuttosto strana. Se scrivi codice per personalizzare un menu o una barra degli strumenti, Excel intercetta quel codice e ignora molti dei tuoi comandi.

Invece di visualizzare il miglioramento dell'interfaccia ben congegnato, Excel 2007 (come le versioni successive) scarica semplicemente i menu e le barre degli strumenti personalizzati in una scheda della barra multifunzione denominata Componenti aggiuntivi.

Le personalizzazioni di menu e barre degli strumenti finiscono nel gruppo Componenti aggiuntivi → Comandi menu o Componenti aggiuntivi → Barre degli strumenti personalizzate. Ma la personalizzazione dei menu di scelta rapida (che utilizza anche l'oggetto CommandBar) funziona ancora come sempre, in un certo senso.

Linea di fondo? L'oggetto CommandBar non è più molto utile, ma rimane l'unico modo per personalizzare i menu di scelta rapida.

Aggiunta di un nuovo elemento al menu di scelta rapida della cella

Di seguito troverai un codice di esempio che aggiunge un nuovo elemento al menu di scelta rapida che appare quando fai clic con il pulsante destro del mouse su una cella. Dovresti essere in grado di adattare questi esempi alle tue esigenze.

Puoi migliorare leggermente l'utilità Cambia caso rendendola disponibile dal menu di scelta rapida della cella.

La procedura AddToShortcut aggiunge una nuova voce di menu al menu di scelta rapida Cella. Puoi adattarlo in modo che punti alle tue macro modificando le proprietà Caption e OnAction dell'oggetto denominato NewControl.

Sub AddToShortCut()
  Dim Bar come CommandBar
  Dim NewControl As CommandBarButton
  Elimina dal collegamento
  Imposta barra = Application.CommandBars ("Cella")
  Imposta NewControl = Bar.Controls.Add _
     (Tipo:=msoControlButton, ID:=1, _
     temporaneo:=Vero)
  Con NewControl
    .Caption = “&Cambia caso”
    .OnAction = “ChangeCase”
    .Style = msoButtonIconAndCaption
  Termina con
Fine sottotitolo

Quando si modifica un menu di scelta rapida, tale modifica rimane attiva finché non si riavvia Excel. In altre parole, i menu di scelta rapida modificati non si ripristinano quando si chiude la cartella di lavoro che contiene il codice VBA. Pertanto, se si scrive codice per modificare un menu di scelta rapida, si scrive quasi sempre codice per invertire l'effetto della modifica.

La procedura DeleteFromShortcut rimuove la nuova voce di menu dal menu di scelta rapida Cell:

Sub EliminaDaScorciatoia()
  In caso di errore Riprendi Avanti
  Application.CommandBars(“Cell”).Controls _
    (“&Cambia caso”).Elimina
Fine sottotitolo

Questo mostra come viene visualizzata la nuova voce di menu dopo aver fatto clic con il pulsante destro del mouse su una cella.

Come personalizzare i menu di scelta rapida di Excel 2016 in VBA

Il menu di scelta rapida Cella che mostra una voce di menu personalizzata: Cambia maiuscole/minuscole.

Il primo comando effettivo dopo la dichiarazione di un paio di variabili chiama la procedura DeleteFromShortcut. Questa istruzione garantisce che nel menu di scelta rapida Cella venga visualizzata una sola voce di menu Modifica maiuscole/minuscole. Prova a commentare quella riga (metti un apostrofo all'inizio della riga) ed esegui la procedura alcune volte, ma non lasciarti trasportare!

Fai clic con il pulsante destro del mouse su una cella e puoi vedere più istanze della voce di menu Cambia caso. Elimina tutte le voci eseguendo DeleteFromShortcut più volte (una per ogni voce di menu aggiuntiva).

Infine, è necessario un modo per aggiungere la voce del menu di scelta rapida quando la cartella di lavoro è aperta e per eliminare la voce di menu quando la cartella di lavoro è chiusa. Fare questo è facile. Basta aggiungere queste due procedure evento al modulo di codice ThisWorkbook:

Cartella di lavoro secondaria privata_Apri()
Chiama AddToShortCut
Fine sottotitolo
Cartella di lavoro secondaria privata_BeforeClose (Annulla come booleano)
Chiama Elimina dal collegamento
Fine sottotitolo

La procedura Workbook_Open viene eseguita all'apertura della cartella di lavoro e la procedura Workbook_BeforeClose viene eseguita prima che la cartella di lavoro venga chiusa. Proprio quello che ha ordinato il dottore.

Cosa c'è di diverso in Excel 2013 ed Excel 2016?

Se hai utilizzato VBA per lavorare con i menu di scelta rapida in Excel 2007 o versioni precedenti, devi essere a conoscenza di un cambiamento significativo.

In passato, se il codice modificava un menu di scelta rapida, tale modifica era effettiva per tutte le cartelle di lavoro. Ad esempio, se hai aggiunto un nuovo elemento al menu di scelta rapida della cella, quel nuovo elemento verrà visualizzato quando fai clic con il pulsante destro del mouse su una cella in qualsiasi cartella di lavoro (oltre ad altre cartelle di lavoro che aprirai in seguito). In altre parole, le modifiche del menu di scelta rapida sono state apportate a livello di applicazione .

Excel 2013 ed Excel 2016 utilizzano un'interfaccia a documento singolo e ciò influisce sui menu di scelta rapida. Le modifiche apportate ai menu di scelta rapida influiscono solo sulla finestra della cartella di lavoro attiva. Quando si esegue il codice che modifica il menu di scelta rapida, il menu di scelta rapida per le finestre oltre che la finestra attiva non verrà modificato. Questo è un cambiamento radicale rispetto a come funzionavano le cose.

Un'altra svolta: se l'utente apre una cartella di lavoro (o crea una nuova cartella di lavoro) quando la finestra attiva visualizza il menu di scelta rapida modificato, la nuova cartella di lavoro visualizza anche il menu di scelta rapida modificato. In altre parole, le nuove finestre visualizzano gli stessi menu di scelta rapida della finestra che era attiva quando sono state aperte le nuove finestre.

In conclusione: in passato, se aprivi una cartella di lavoro o un componente aggiuntivo con i menu di scelta rapida modificati, potevi essere certo che i menu di scelta rapida modificati sarebbero stati disponibili in tutte le cartelle di lavoro. Non hai più questa certezza.

Crea menu di scelta rapida personalizzati in Access 2007

La finestra di progettazione macro è diversa in Access 2007 rispetto alle versioni successive, quindi espandi le seguenti sezioni da seguire se utilizzi Access 2007.

Passaggio 1 per Access 2007: creare un gruppo di macro che contenga i comandi di menu

In questo passaggio creerai un gruppo di macro, ciascuna delle quali sarà un comando separato nel menu di scelta rapida.

Cos'è un macrogruppo?

Un gruppo di macro è un singolo oggetto macro che contiene due o più macro indipendenti. Le singole macro vengono identificate digitando un nome per ciascuna macro nella colonna Nomi macro. Nella seguente illustrazione,  Macro3  è un gruppo di macro. NotFoundMsg  e  FoundMsg  sono macro individuali all'interno del gruppo, ciascuna macro è composta da due azioni macro.

Esempio di macrogruppo

Nota:  la  colonna Nome macro  è nascosta per impostazione predefinita. Per visualizzare la  colonna Nome macro  , nella  scheda Progettazione  , nel  gruppo Mostra/Nascondi  , fare clic su  Nomi macro .

  1. Nella  scheda Crea  , nel   gruppo  Altro , fare clic su Macro . Se questo comando non è disponibile, fare clic sulla freccia sotto il  pulsante Modulo  o  Modulo classe  , quindi fare clic su  Macro .

  2. Nel   gruppo  Mostra/Nascondi della scheda Progettazione  fare clic su  Nomi macro  per visualizzare la  colonna Nome macro  .

  3. Per ogni comando che desideri nel menu di scelta rapida personalizzato:

    • Nella  colonna Nome macro  , inserisci il testo che desideri visualizzare nel menu di scelta rapida (ad esempio, "Stampa rapporto" o "Salva").

      Nota:  per creare una chiave di accesso in modo da poter utilizzare la tastiera per scegliere il comando, digitare una e commerciale (&) prima della lettera che si desidera utilizzare come chiave di accesso nel nome del comando (ad esempio, "&Salva"). Questa lettera verrà sottolineata nel menu.
    • Nella  colonna Azione  , seleziona la prima azione che desideri venga eseguita quando fai clic sul comando nel menu di scelta rapida.

    • Se ci sono più azioni che desideri vengano eseguite quando selezioni questo comando, aggiungile nelle righe successive. Per ogni azione successiva, lasciare vuota la  cella Nome macro  .

      Nota:  per creare una linea tra due comandi di menu, digitare un trattino (-) nella  colonna Nome macro  tra i comandi di menu appropriati.
  4. Salvare e denominare la macro, ad esempio   mcrShortcutMenuCommands .

L'illustrazione seguente mostra un esempio di gruppo di macro per un menu personalizzato o un menu di scelta rapida.

Un gruppo di macro di menu nella visualizzazione Progettazione

Passaggio 2 per Access 2007: creare una macro che crei il menu

Questo passaggio potrebbe sembrare ridondante, ma per creare il menu di scelta rapida dal gruppo di macro creato nel passaggio 1, è necessario creare una seconda macro che contenga l'   azione macro AggiungiMenu . Questa macro è talvolta chiamata "macro menu".

  1. Nella  scheda Crea  , nel   gruppo  Altro , fare clic su Macro . Se questo comando non è disponibile, fare clic sulla freccia sotto il  pulsante Modulo  o  Modulo classe  , quindi fare clic su  Macro .

  2. Nella prima riga della macro selezionare  AggiungiMenu  nell'elenco  Azioni  .

  3. In  Argomenti azione , nella  casella Nome menu  , digitare il nome del menu (ad esempio, "Comandi report"). Questo argomento non è obbligatorio, ma è consigliato se, nel passaggio 3, si prevede di aggiungere il menu a una scheda della barra multifunzione (ad esempio la  scheda Componenti aggiuntivi  di una maschera o di un report). Se il menu viene aggiunto come menu di scelta rapida nel passaggio 3, l'  argomento Nome menu  viene ignorato.

  4. Nella  casella Nome macro menu  , inserisci il nome della macro creata nel passaggio 1.

  5. Salvare e denominare la macro, ad esempio  mcrAddShortcutMenu .

L'illustrazione seguente mostra una macro di menu di esempio che crea il menu progettato nel passaggio 1.

Una macro di menu nella visualizzazione Progettazione

Passaggio 3 per Access 2007: collegare il menu a un controllo, modulo, report o database

A seconda di dove si desidera che venga visualizzato il menu, utilizzare una o più delle seguenti procedure.

  • Aggiungi il menu alla scheda Componenti aggiuntivi di un modulo o un report

    Utilizzare questa procedura se si desidera che il menu venga visualizzato nella  scheda Componenti aggiuntivi  per un modulo o un report specifico, come mostrato nella figura seguente:

    Scheda Componenti aggiuntivi contenente un menu personalizzato

    1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul modulo o sul report in cui si desidera visualizzare il menu, quindi fare clic su  Visualizzazione struttura .

    2. Nella  scheda Progettazione  , nel  gruppo Mostra/Nascondi  , fare clic su  Finestra delle proprietà .

    3. Selezionare l'intero oggetto selezionando  Modulo  o  Report  dall'elenco nella parte superiore del riquadro attività Finestra delle proprietà.

    4. Nella  scheda Altro  della finestra delle proprietà, nella  casella delle proprietà Menu di scelta rapida  , digitare il nome della macro creata nel passaggio 2 (in questo esempio, "mcrAddShortcutMenu").

      Alla successiva apertura del modulo o del report, la  scheda Componenti aggiuntivi  verrà visualizzata nella barra multifunzione. Fare clic sulla scheda per visualizzare il menu.

      Per ulteriori informazioni sulle tecniche di personalizzazione della barra multifunzione, ad esempio aggiungere schede personalizzate o nascondere le schede predefinite, vedere l'articolo  Creare una barra multifunzione personalizzata in Access .

      La barra multifunzione è un componente dell'interfaccia utente di Microsoft Office Fluent.

  • Aggiungere il menu come menu di scelta rapida per una maschera, un report o un controllo

    Utilizzare questa procedura se si desidera che venga visualizzato il menu quando si fa clic con il pulsante destro del mouse su un modulo, un report o un controllo specifico, come mostrato nella seguente illustrazione:

    Un semplice menu di scelta rapida

    1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul modulo o sul report in cui si desidera visualizzare il menu di scelta rapida, quindi fare clic su  Visualizzazione struttura .

    2. Nella  scheda Progettazione  , nel  gruppo Mostra/Nascondi  , fare clic su  Finestra delle proprietà .

    3. Selezionare il controllo o l'oggetto a cui si desidera allegare il menu di scelta rapida.

      Nota:  per selezionare l'intero oggetto, selezionare  Modulo  o  Report  dall'elenco nella parte superiore del riquadro attività Finestra delle proprietà.

    4. Nella  scheda Altro  della finestra delle proprietà, nella  casella delle proprietà della barra dei menu di scelta rapida  , digitare il nome della macro creata nel passaggio 2 (in questo esempio, "mcrAddShortcutMenu").

  • Aggiungi il menu come menu di scelta rapida globale

    Questa procedura sostituisce tutti i menu di scelta rapida predefiniti nel database corrente. I menu di scelta rapida personalizzati allegati a moduli, report o controlli specifici non sono interessati.

    1. Fare clic sul  pulsante Microsoft Office  e quindi su  Opzioni di accesso .

    2. Nella   finestra di dialogo  Opzioni di accesso , fare clic su Database corrente .

    3. In  Opzioni barra multifunzione e barra degli strumenti , nella  casella Barra dei menu di scelta rapida  , digitare il nome della macro creata nel passaggio 2 (in questo esempio, "mcrAddShortcutMenu").

  • I menu di scelta rapida personalizzati sostituiscono i menu di scelta rapida predefiniti per gli oggetti a cui sono collegati. Se desideri mantenere determinati comandi di Access da utilizzare in questi menu, utilizza l'  azione EseguiComando  per inserire i comandi nei macrogruppi per i menu in cui li desideri.

  • Un menu di scelta rapida personalizzato collegato a un controllo sostituisce qualsiasi altro menu di scelta rapida personalizzato definito nel database. Un menu di scelta rapida personalizzato allegato a una maschera o a un report sostituisce un menu di scelta rapida globale personalizzato.

  • Quando si specifica una macro di menu per una maschera, un report o per il database, Access esegue questa macro di menu ogni volta che viene aperto la maschera, il report o il database. Se si apportano modifiche alla macro di menu o al gruppo di macro che ne definisce i comandi mentre il modulo, il report o il database è aperto, è necessario chiudere il modulo, il report o il database e riaprirlo per visualizzare le modifiche.

  • Per creare un sottomenu, seguire il Passaggio 1 per creare un macrogruppo separato che contenga solo i comandi del sottomenu. Quindi, seguire nuovamente il passaggio 1 per definire i comandi per il menu di livello superiore. Aggiungere il sottomenu come elemento nel gruppo di macro di livello superiore utilizzando l'  azione macro AggiungiMenu  . L'illustrazione seguente mostra il gruppo di macro per un menu che contiene un sottomenu e quindi mostra il menu di scelta rapida risultante. La terza riga nel gruppo macro crea il  sottomenu Esporta in...  ( mcrSubMenu ).

    Un menu di scelta rapida che contiene un sottomenu

    È possibile creare più livelli di sottomenu utilizzando  le azioni Aggiungi menu  nei gruppi di macro per ciascun livello di menu. Assicurati di fornire un valore per l'  argomento Nome menu  per ciascuna  azione Aggiungi menu  , altrimenti il ​​sottomenu verrà visualizzato come una riga vuota nel menu di livello superiore.

  • Le condizioni macro sono supportate solo nella macro del menu di livello superiore. In altre parole, è possibile utilizzare una condizione in una macro di menu per determinare se verrà visualizzato un particolare menu o menu di scelta rapida, ma solo per i menu al livello superiore. Non è possibile utilizzare le condizioni per visualizzare o nascondere comandi o sottomenu nei menu. È inoltre possibile utilizzare una condizione per nascondere o mostrare un menu di scelta rapida personalizzato o un menu di scelta rapida globale.

  • Facoltativamente, la macro di menu creata nel passaggio 2 può far parte di un gruppo di macro. Ad esempio, se disponi di più menu di scelta rapida per oggetti o controlli diversi, puoi creare un singolo oggetto macro che contenga tutte le macro di menu necessarie. Assicurati di visualizzare la  colonna Nome macro  e digita un nome univoco per ciascuna macro. Nel passaggio 3, utilizzare la seguente notazione per fare riferimento alla macro:  nomegruppomacro.nomemacro . Ad esempio,  mcrAddShortcutMenus.AddMenu2 .


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet è una piattaforma di lavoro dinamica che ti consente di gestire progetti, creare flussi di lavoro e collaborare con il tuo team.

SharePoint

SharePoint

SharePoint è un sistema di collaborazione basato sul Web che utilizza una varietà di applicazioni per flussi di lavoro, database di "elenco" e altri componenti Web, nonché funzionalità di sicurezza per fornire controllo ai gruppi aziendali che lavorano insieme.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar è un'applicazione per la visualizzazione del calendario sul tuo telefono, che ti aiuta a vedere rapidamente la data lunisolare sul tuo telefono, organizzando così il tuo lavoro importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook è un'applicazione aziendale e di produttività sviluppata da Microsoft Corporation.

Fare clic su

Fare clic su

ClickUp è una delle piattaforme di produttività più apprezzate per qualsiasi azienda. Grandi aziende come Google, Booking.com, San Diego Padres e Uber utilizzano ClickUp per aumentare la produttività sul posto di lavoro.

Visualizzatore PDF-XChange 2.5.322.10

Visualizzatore PDF-XChange 2.5.322.10

Il PDF è diventato un formato comunemente utilizzato per leggere, creare e inviare documenti di testo. A sua volta, c'è stato un aumento del numero di programmi utilizzati per questo tipo di documentazione. PDF-XChange Viewer fa parte di un numero crescente di visualizzatori PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice offre una suite completa di applicazioni Office che rivaleggiano con Microsoft 365, in particolare in Excel, PowerPoint e Word. Ti consente di gestire i tuoi progetti in modo più efficace e supporta diversi formati di file.

Scarica iTaxviewer 1.8.7

Scarica iTaxviewer 1.8.7

Il software iTaxViewer è il software di lettura di file XML più popolare oggi. Questo software è un'applicazione per la lettura delle dichiarazioni fiscali elettroniche in formato XML del Dipartimento Generale delle Imposte.

Lettore PDF Nitro

Lettore PDF Nitro

Nitro PDF Reader è un pratico editor PDF che copre tutte le attività di base che la maggior parte delle persone esegue ogni giorno con i documenti PDF.

Foxit Reader 12

Foxit Reader 12

Foxit Reader è principalmente un lettore PDF e consente anche di creare file PDF, firmarli, modificarli e aggiungere annotazioni. Funziona su sistemi operativi, ci sono plugin per vari programmi del pacchetto Microsoft Office.