Com personalitzar els menús de drecera dExcel 2016 a VBA

Abans d'Excel 2007, els programadors de VBA utilitzaven l'objecte CommandBar per crear menús personalitzats, barres d'eines personalitzades i menús de drecera personalitzats (clic dret). A partir d'Excel 2007, l'objecte CommandBar es troba en una posició força estranya. Si escriviu codi per personalitzar un menú o una barra d'eines, Excel intercepta aquest codi i ignora moltes de les vostres ordres.

En comptes de mostrar la millora de la vostra interfície ben pensada, Excel 2007 (com les versions posteriors) simplement aboca els vostres menús i barres d'eines personalitzades a una pestanya de la cinta completa anomenada Complements.

Les personalitzacions de menús i barres d'eines acaben al grup Complements → Ordres de menú o al grup Complements → Barres d'eines personalitzades. Però la personalització dels menús de drecera (que també utilitza l'objecte CommandBar) encara funciona com sempre, bé, una mica.

Linia inferior? L'objecte CommandBar ja no és molt útil, però segueix sent l'única manera de personalitzar els menús de drecera.

Afegeix un element nou al menú de drecera de la cel·la

A continuació, trobareu el codi d'exemple que afegeix un element nou al menú de drecera que apareix quan feu clic amb el botó dret a una cel·la. Hauríeu de poder adaptar aquests exemples a les vostres necessitats.

Podeu millorar una mica aquesta utilitat Canviar majúscules fent-la disponible des del menú de drecera de la cel·la.

El procediment AddToShortcut afegeix un nou element de menú al menú de drecera de la cel·la. Podeu adaptar-lo per apuntar a les vostres pròpies macros canviant les propietats Caption i OnAction de l'objecte anomenat NewControl.

Sub AddToShortCut()
  Barra atenuada com a CommandBar
  Dim NewControl com CommandBarButton
  DeleteFromShortcut
  Establir barra = Application.CommandBars(“Cèl·lula”)
  Estableix NewControl = Bar.Controls.Add _
     (Tipus:=msoControlButton, ID:=1, _
     temporal:=Veritat)
  Amb NewControl
    .Caption = "&Canvia majúscules i minúscules"
    .OnAction = "ChangeCase"
    .Estil = msoButtonIconAndCaption
  Acaba amb
End Sub

Quan modifiqueu un menú de drecera, aquesta modificació romandrà vigent fins que reinicieu Excel. En altres paraules, els menús de drecera modificats no es restableixen quan tanqueu el llibre de treball que conté el codi VBA. Per tant, si escriviu codi per modificar un menú de drecera, gairebé sempre escriviu codi per revertir l'efecte de la modificació.

El procediment DeleteFromShortcut elimina el nou element de menú del menú de drecera de la cel·la:

Sub DeleteFromShortcut ()
  En cas d'error Reprèn Següent
  Application.CommandBars(“Cell”).Controls _
    (“&Canvia majúscules i minúscules”).Suprimeix
End Sub

Això mostra com es mostra el nou element de menú després de fer clic amb el botó dret a una cel·la.

Com personalitzar els menús de drecera d'Excel 2016 a VBA

El menú de drecera de la cel·la que mostra un element de menú personalitzat: Canvia majúscules i minúscules.

La primera ordre real després de la declaració d'un parell de variables crida al procediment DeleteFromShortcut. Aquesta declaració garanteix que només aparegui un element del menú Canvia majúscules al menú de drecera Cel·la. Proveu de comentar aquesta línia (posar un apòstrof al començament de la línia) i executar el procediment unes quantes vegades, però no us deixeu portar!

Feu clic amb el botó dret a una cel·la i podreu veure diverses instàncies de l'element de menú Canvia majúscules. Desfer-vos de totes les entrades executant DeleteFromShortcut diverses vegades (una vegada per cada element addicional del menú).

Finalment, necessiteu una manera d'afegir l'element de menú de drecera quan s'obre el llibre de treball i d'eliminar l'element de menú quan es tanqui el llibre de treball. Fer això és fàcil. Només cal que afegiu aquests dos procediments d'esdeveniment al mòdul de codi ThisWorkbook:

Llibre de treball secundari privat_Obre()
Truqueu AddToShortCut
End Sub
Private Sub Workbook_BeforeClose (Cancel·la com a booleà)
Truqueu a DeleteFromShortcut
End Sub

El procediment Workbook_Open s'executa quan s'obre el quadern de treball i el procediment Workbook_BeforeClose s'executa abans de tancar-lo. Just el que va ordenar el metge.

Què és diferent a Excel 2013 i Excel 2016?

Si heu utilitzat VBA per treballar amb menús de drecera a Excel 2007 o anteriors, heu de ser conscients d'un canvi significatiu.

En el passat, si el vostre codi modificava un menú de drecera, aquesta modificació estava en vigor per a tots els llibres de treball. Per exemple, si afegiu un element nou al menú de clic dret de la cel·la, aquest element nou apareixerà quan feu clic amb el botó dret a una cel·la de qualsevol llibre de treball (a més d'altres llibres de treball que obriu més endavant). En altres paraules, es van fer modificacions al menú de drecera a nivell d' aplicació .

L'Excel 2013 i l'Excel 2016 utilitzen una única interfície de document, i això afecta els menús de drecera. Els canvis que feu als menús de drecera només afecten la finestra activa del llibre de treball. Quan executeu el codi que modifica el menú de dreceres, el menú de dreceres per a finestres diferents de la finestra activa no es canviarà. Això és un canvi radical de com funcionaven les coses.

Un altre gir: si l'usuari obre un llibre de treball (o crea un nou llibre de treball) quan la finestra activa mostra el menú de drecera modificat, el nou llibre de treball també mostra el menú de drecera modificat. En altres paraules, les finestres noves mostren els mateixos menús de drecera que la finestra que estava activa quan es van obrir les finestres noves.

Conclusió: en el passat, si obríeu un llibre de treball o un complement que modificava els menús de drecera, podríeu estar segur que els menús de drecera modificats estarien disponibles a tots els llibres de treball. Ja no tens aquesta garantia.

Creeu menús de drecera personalitzats a Access 2007

La finestra de disseny de macro és diferent a Access 2007 en comparació amb versions posteriors, així que amplieu les seccions següents per seguir si feu servir Access 2007.

Pas 1 per a Access 2007: creeu un grup de macros que contingui les ordres del menú

En aquest pas, creeu un grup de macros, cada macro del qual serà una ordre independent al vostre menú de drecera.

Què és un macrogrup?

Un grup de macros és un únic objecte macro que conté dues o més macros independents. Les macros individuals s'identifiquen escrivint un nom per a cada macro a la columna Noms de macro. A la il·lustració següent,  Macro3  és un grup de macros. NotFoundMsg  i  FoundMsg  són macros individuals dins del grup, cada macro consta de dues accions de macro.

Exemple de grup de macro

Nota:  la  columna Nom de la macro  està oculta de manera predeterminada. Per mostrar la  columna Nom de la macro  , a la  pestanya Disseny  , al  grup Mostra/Oculta  , feu clic a  Noms de macro .

  1. A la  pestanya Crea  , al  grup Altres  , feu clic a  Macro . Si aquesta ordre no està disponible, feu clic a la fletxa que hi ha a sota del  botó Mòdul  o  Mòdul de classe  i, a continuació, feu clic a  Macro .

  2. A la  pestanya Disseny  , al  grup Mostra/amaga  , feu clic a  Noms de macro  per mostrar la  columna Nom de macro  .

  3. Per a cada comanda que vulgueu al vostre menú de drecera personalitzat:

    • A la  columna Nom de la macro  , introduïu el text que voleu mostrar al menú de drecera (per exemple, "Imprimeix l'informe" o "Desa").

      Nota:  per crear una clau d'accés perquè pugueu utilitzar el teclat per triar l'ordre, escriviu un ampersand (&) abans de la lletra que voleu que sigui la clau d'accés al nom de l'ordre (per exemple, "&Desa"). Aquesta lletra estarà subratllada al menú.
    • A la  columna Acció  , seleccioneu la primera acció que voleu dur a terme quan feu clic a l'ordre del menú de drecera.

    • Si hi ha més accions que voleu dur a terme quan seleccioneu aquesta ordre, afegiu-les a les línies següents. Per a cada acció posterior, deixeu la  cel·la Nom de la macro  en blanc.

      Nota:  per crear una línia entre dues ordres de menú, escriviu un guionet (-) a la  columna Nom de la macro  entre les ordres de menú corresponents.
  4. Deseu i anomeneu la macro, per exemple,   mcrShortcutMenuCommands .

La il·lustració següent mostra un exemple de grup de macros per a un menú personalitzat o un menú de drecera.

Un grup de macros de menú a la vista Disseny

Pas 2 per a Access 2007: creeu una macro que creï el menú

Aquest pas pot semblar redundant, però per crear el menú de drecera des del grup de macros que heu creat al pas 1, heu de crear una segona macro que contingui l'   acció de macro AfegeixMenu . Aquesta macro de vegades s'anomena "macro del menú".

  1. A la  pestanya Crea  , al  grup Altres  , feu clic a  Macro . Si aquesta ordre no està disponible, feu clic a la fletxa que hi ha a sota del  botó Mòdul  o  Mòdul de classe  i, a continuació, feu clic a  Macro .

  2. A la primera línia de la macro, seleccioneu  AddMenu  a la  llista Acció  .

  3. Arguments d'acció , al  quadre Nom del menú  , escriviu el nom del menú (per exemple, "Comandes d'informe"). Aquest argument no és obligatori, però es recomana si, al pas 3, teniu previst afegir el menú a una pestanya de la cinta (com ara la  pestanya Complements  d'un formulari o informe). Si el menú s'afegeix com a menú de drecera al pas 3,   s'ignora l'argument Nom del menú .

  4. Al  quadre Nom de la macro del menú  , introduïu el nom de la macro que heu creat al pas 1.

  5. Deseu i anomeneu la macro, per exemple,  mcrAddShortcutMenu .

La il·lustració següent mostra un exemple de macro de menú que crea el menú que hem dissenyat al pas 1.

Una macro de menú a la vista Disseny

Pas 3 per a Access 2007: adjunteu el menú a un control, formulari, informe o base de dades

En funció d'on vulgueu que aparegui el menú, feu servir un o més dels procediments següents.

  • Afegiu el menú a la pestanya Complements d'un formulari o informe

    Utilitzeu aquest procediment si voleu que el menú aparegui a la  pestanya Complements  per a un formulari o informe específic, tal com es mostra a la il·lustració següent:

    Pestanya Complements que conté un menú personalitzat

    1. Al panell de navegació, feu clic amb el botó dret al formulari o informe on voleu que aparegui el menú i, a continuació, feu clic a  Visualització de disseny .

    2. A la  pestanya Disseny  , al  grup Mostra/amaga  , feu clic a  Full de propietats .

    3. Seleccioneu l'objecte sencer seleccionant  Formulari  o  Informe  a la llista de la part superior del panell de tasques del Full de propietats.

    4. A la  pestanya Altres  del full de propietats, al  quadre de propietats del menú de drecera  , escriviu el nom de la macro que heu creat al pas 2 (en aquest exemple, "mcrAddShortcutMenu").

      La propera vegada que obriu el formulari o l'informe, la  pestanya Complements  apareixerà a la cinta. Feu clic a la pestanya per veure el menú.

      Per obtenir més informació sobre les tècniques de personalització de la cinta, com ara afegir pestanyes personalitzades o amagar les pestanyes predeterminades, consulteu l'article  Crear una cinta personalitzada a Access .

      La cinta és un component de la interfície d'usuari de Microsoft Office Fluent.

  • Afegiu el menú com a menú de drecera per a un formulari, un informe o un control

    Utilitzeu aquest procediment si voleu que aparegui el menú quan feu clic amb el botó dret en un formulari, informe o control específic, tal com es mostra a la il·lustració següent:

    Un menú de drecera senzill

    1. Al panell de navegació, feu clic amb el botó dret al formulari o informe on voleu que aparegui el menú de drecera i, a continuació, feu clic a  Visualització de disseny .

    2. A la  pestanya Disseny  , al  grup Mostra/amaga  , feu clic a  Full de propietats .

    3. Seleccioneu el control o l'objecte al qual voleu adjuntar el menú de drecera.

      Nota:  Per seleccionar l'objecte sencer, seleccioneu  Formulari  o  Informe  a la llista de la part superior del panell de tasques del Full de propietats.

    4. A la  pestanya Altres  del full de propietats, al  quadre de propietats de la barra de menús de drecera  , escriviu el nom de la macro que heu creat al pas 2 (en aquest exemple, "mcrAddShortcutMenu").

  • Afegiu el menú com a menú de drecera global

    Aquest procediment substitueix tots els menús de drecera predeterminats de la base de dades actual. Els menús de drecera personalitzats que heu adjuntat a formularis, informes o controls específics no es veuen afectats.

    1. Feu clic al  botó de Microsoft Office  i, a continuació, feu clic a  Opcions d'accés .

    2. Al   quadre de diàleg  Opcions d'accés , feu clic a Base de dades actual .

    3. Opcions de la cinta i de la barra d'eines , al  quadre Barra de menús de drecera  , escriviu el nom de la macro que heu creat al pas 2 (en aquest exemple, "mcrAddShortcutMenu").

  • Els menús de dreceres personalitzats substitueixen els menús de dreceres predeterminats per als objectes als quals estan connectats. Si voleu conservar determinades ordres d'accés per utilitzar-les en aquests menús, utilitzeu l'  acció Executar comanda  per posar les ordres als grups de macros dels menús en què les voleu.

  • Un menú de drecera personalitzat que s'adjunta a un control substitueix qualsevol altre menú de drecera personalitzat que es defineix a la base de dades. Un menú de dreceres personalitzat que s'adjunta a un formulari o informe substitueix un menú de dreceres global personalitzat.

  • Quan especifiqueu una macro de menú per a un formulari o informe o per a la base de dades, Access executa aquesta macro de menú sempre que s'obre el formulari, l'informe o la base de dades. Si feu canvis a la macro del menú o al grup de macros que defineix les seves ordres mentre el formulari, l'informe o la base de dades estan oberts, heu de tancar el formulari, l'informe o la base de dades i tornar-los a obrir per veure els canvis.

  • Per crear un submenú, seguiu el pas 1 per crear un grup de macros independent que contingui només les ordres del submenú. A continuació, torneu a seguir el pas 1 per definir les ordres per al menú de nivell superior. Afegiu el submenú com a element al grup de macros de nivell superior mitjançant l'  acció de macro AfegeixMenu  . La il·lustració següent mostra el grup de macros d'un menú que conté un submenú i, a continuació, el menú de drecera resultant. La tercera línia del grup de macros crea el  submenú Exporta a...  ( mcrSubMenu ).

    Un menú de drecera que conté un submenú

    Podeu crear diversos nivells de submenús mitjançant  accions AddMenu  als grups de macro per a cada nivell de menú. Assegureu-vos de proporcionar un valor per a l'  argument Nom del menú  per a cada  acció AddMenu  , en cas contrari, el submenú apareixerà com una línia en blanc al menú de nivell superior.

  • Les condicions de macro només s'admeten a la macro del menú de nivell superior. En altres paraules, podeu utilitzar una condició en una macro de menú per determinar si es mostrarà un menú o un menú de drecera en particular, però només per als menús del nivell superior. No podeu utilitzar condicions per mostrar o amagar ordres o submenús als menús. També podeu utilitzar una condició per ocultar o mostrar un menú de drecera personalitzat o un menú de drecera global.

  • Opcionalment, la macro de menú que creeu al pas 2 pot formar part d'un grup de macros. Per exemple, si teniu diversos menús de drecera per a diferents objectes o controls, podeu crear un únic objecte macro que contingui totes les macros de menú necessàries. Assegureu-vos de mostrar la  columna Nom de la macro  i escriviu un nom únic per a cada macro. Al pas 3, utilitzeu la notació següent per referir-vos a la macro:  macrogroupname.macroname . Per exemple,  mcrAddShortcutMenus.AddMenu2 .


Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word d'obrir fitxers en mode de només lectura a Windows Microsoft Word obre fitxers en mode de només lectura, cosa que fa que sigui impossible editar-los? No us preocupeu, els mètodes es mostren a continuació

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com corregir errors en imprimir documents incorrectes de Microsoft Word Els errors en imprimir documents de Word amb tipus de lletra canviats, paràgrafs desordenats, falta de text o contingut perdut són força habituals. No obstant això, no

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Si heu utilitzat el llapis o el marcador per dibuixar a les vostres diapositives de PowerPoint durant una presentació, podeu desar els dibuixos per a la següent presentació o esborrar-los de manera que la propera vegada que el mostreu, començareu amb diapositives de PowerPoint netes. Seguiu aquestes instruccions per esborrar dibuixos a llapis i ressaltadors: Esborrant línies una a […]

Contingut de la biblioteca destils a SharePoint 2010

Contingut de la biblioteca destils a SharePoint 2010

La biblioteca d'estils conté fitxers CSS, fitxers de llenguatge de full d'estil extensible (XSL) i imatges utilitzades per pàgines mestres predefinides, dissenys de pàgina i controls a SharePoint 2010. Per localitzar fitxers CSS a la biblioteca d'estils d'un lloc de publicació: Trieu Accions del lloc→Visualitza Tot el contingut del lloc. Apareix el contingut del lloc. La biblioteca d'estil es troba a […]

Formateu els números en milers i milions als informes dExcel

Formateu els números en milers i milions als informes dExcel

No desbordeu el vostre públic amb números gigantesques. A Microsoft Excel, podeu millorar la llegibilitat dels vostres taulers i informes formatant els vostres números perquè apareguin en milers o milions.

Com compartir i seguir els llocs de SharePoint

Com compartir i seguir els llocs de SharePoint

Apreneu a utilitzar les eines de xarxes socials de SharePoints que permeten a persones i grups comunicar-se, col·laborar, compartir i connectar-se.

Com convertir les dates a formats Julian a Excel

Com convertir les dates a formats Julian a Excel

Les dates julianes s'utilitzen sovint en entorns de fabricació com a marca de temps i referència ràpida per a un número de lot. Aquest tipus de codificació de dates permet als minoristes, consumidors i agents de serveis identificar quan es va fabricar un producte i, per tant, l'antiguitat del producte. Les dates julianes també s'utilitzen en programació, militars i astronomia. Diferents […]

Com crear una aplicació web daccés

Com crear una aplicació web daccés

Podeu crear una aplicació web a Access 2016. Què és, de totes maneres, una aplicació web? Bé, web vol dir que està en línia i l'aplicació és només una abreviatura de "aplicació". Una aplicació web personalitzada és una aplicació de base de dades en línia a la qual s'accedeix des del núvol mitjançant un navegador. Creeu i manteniu l'aplicació web a la versió d'escriptori […]

Barra dinici ràpid a SharePoint 2010

Barra dinici ràpid a SharePoint 2010

La majoria de les pàgines del SharePoint 2010 mostren una llista d'enllaços de navegació a la barra d'inici ràpid al costat esquerre de la pàgina. La barra d'inici ràpid mostra enllaços al contingut del lloc destacat, com ara llistes, biblioteques, llocs i pàgines de publicació. La barra d'inici ràpid inclou dos enllaços molt importants: Enllaç de tot el contingut del lloc: el […]

Què signifiquen els missatges derror del solucionador a Excel?

Què signifiquen els missatges derror del solucionador a Excel?

Per a problemes senzills, Solver a Excel sol trobar ràpidament els valors òptims de la variable Solver per a la funció objectiu. Però, en alguns casos, Solver té problemes per trobar els valors de la variable Solver que optimitzen la funció objectiu. En aquests casos, Solver normalment mostra un missatge o un missatge d'error que descriu o discuteix el problema que […]