Az Excel 2016 helyi menüinek testreszabása a VBA-ban

Az Excel 2007 előtt a VBA-programozók a CommandBar objektumot használták egyéni menük, egyéni eszköztárak és egyéni helyi menük (jobb gombbal történő kattintás) létrehozására. Az Excel 2007-től kezdődően a CommandBar objektum meglehetősen furcsa helyzetben van. Ha kódot ír egy menü vagy eszköztár testreszabásához, az Excel elfogja ezt a kódot, és figyelmen kívül hagyja a parancsokat.

Ahelyett, hogy megjelenítené a jól átgondolt kezelőfelület-bővítést, az Excel 2007 (a későbbi verziókhoz hasonlóan) egyszerűen beírja a testreszabott menüket és eszköztárakat a Bővítmények nevű szalaglapra.

A menü- és eszköztár testreszabása a Bővítmények → Menüparancsok vagy a Bővítmények → Egyéni eszköztárak csoportba kerül. De a helyi menük testreszabása (amely szintén a CommandBar objektumot használja) továbbra is úgy működik, mint mindig – nos, valahogy.

A lényeg? A CommandBar objektum már nem túl hasznos, de továbbra is ez az egyetlen módja a helyi menük testreszabásának.

Új elem hozzáadása a Cella helyi menühöz

Az alábbiakban egy mintakódot talál, amely új elemet ad a helyi menühöz, amely akkor jelenik meg, amikor jobb gombbal kattint egy cellára. Ezeket a példákat az Ön igényeihez kell igazítania.

A Change Case segédprogramot egy kicsit javíthatja, ha elérhetővé teszi a Cell helyi menüből.

Az AddToShortcut eljárás egy új menüpontot ad a Cell helyi menühöz. A NewControl nevű objektum Caption és OnAction tulajdonságainak módosításával adaptálhatja úgy, hogy a saját makróira mutasson.

Sub AddToShortCut()
  Dim Bar CommandBarként
  Dim NewControl As CommandBarButton
  DeleteFromShortcut
  Set Bar = Application.CommandBars ("Cell")
  Set NewControl = Bar.Controls.Add _
     (Típus:=msoControlButton, ID:=1, _
     ideiglenes:=Igaz)
  NewControl-lal
    .Caption = "&Kis- és nagybetűk módosítása"
    .OnAction = "ChangeCase"
    .Style = msoButtonIconAndCaption
  Vége ezzel
Vége Sub

Amikor módosít egy helyi menüt, a módosítás az Excel újraindításáig érvényben marad. Más szóval, a módosított helyi menük nem állítják vissza magukat a VBA-kódot tartalmazó munkafüzet bezárásakor. Ezért ha kódot ír egy helyi menü módosításához, akkor szinte mindig kódot ír a módosítás hatásának megfordítására.

A DeleteFromShortcut eljárás eltávolítja az új menüpontot a Cell helyi menüből:

Sub DeleteFromShortcut()
  Hiba esetén Folytatás a következőre
  Application.CommandBars(“Cell”).Controls _
    („&Kis- és nagybetűk módosítása”).Törlés
Vége Sub

Ez azt mutatja, hogyan jelenik meg az új menüelem, miután jobb gombbal kattintott egy cellára.

Az Excel 2016 helyi menüinek testreszabása a VBA-ban

A Cell helyi menü, amely egy egyéni menüelemet mutat: Kis- és nagybetű módosítása.

Az első tényleges parancs néhány változó deklarálása után a DeleteFromShortcut eljárást hívja meg. Ez az utasítás biztosítja, hogy csak egy Change Case menüpont jelenjen meg a Cella helyi menüben. Próbáld meg kommentálni ezt a sort (tegyél aposztrófot a sor elejére), és futtasd le néhányszor az eljárást – de ne ragadj el!

Kattintson a jobb gombbal egy cellára, és a Kis- és nagybetűk módosítása menüpont több példányát is megtekintheti. Megszabadulhat az összes bejegyzéstől a DeleteFromShortcut többszöri futtatásával (egyszer minden extra menüelemhez).

Végül a munkafüzet megnyitásakor a helyi menüelem hozzáadására, a munkafüzet bezárásakor pedig törlésére van szükség. Ezt könnyű megtenni. Csak adja hozzá ezt a két eseményeljárást a ThisWorkbook kódmodulhoz:

Privát almunkafüzet_Open()
Hívja az AddToShortCut
Vége Sub
Privát almunkafüzet_BeforeClose (Mégse logikai értékként)
Hívja a DeleteFromShortcut parancsot
Vége Sub

A Workbook_Open eljárás a munkafüzet megnyitásakor, a Workbook_BeforeClose eljárás pedig a munkafüzet bezárása előtt kerül végrehajtásra. Pont amit az orvos rendelt.

Miben különbözik az Excel 2013 és az Excel 2016?

Ha VBA-t használt az Excel 2007-es vagy korábbi verzióiban a helyi menük használatához, akkor tisztában kell lennie egy jelentős változással.

Korábban, ha a kód módosított egy helyi menüt, ez a módosítás minden munkafüzetre érvényes volt. Például, ha új elemet vett fel a Cella jobb gombbal történő kattintási menüjébe, akkor az új elem akkor jelenik meg, amikor a jobb gombbal rákattint egy cellára bármely munkafüzetben (pl. a későbbiekben megnyitott többi munkafüzetben). Más szóval, a helyi menü módosításai az alkalmazás szintjén történtek .

Az Excel 2013 és az Excel 2016 egyetlen dokumentumfelületet használ, és ez hatással van a helyi menükre. A helyi menükben végrehajtott módosítások csak az aktív munkafüzet ablakát érintik. Amikor végrehajtja a helyi menüt módosító kódot, az aktív ablaktól eltérő ablakok helyi menüje nem változik. Ez gyökeresen eltér attól, ahogyan a dolgok korábban működtek.

Egy másik csavar: Ha a felhasználó megnyit egy munkafüzetet (vagy új munkafüzetet hoz létre), amikor az aktív ablakban megjelenik a módosított helyi menü, akkor az új munkafüzet is megjeleníti a módosított helyi menüt. Más szóval, az új ablakok ugyanazokat a helyi menüket jelenítik meg, mint az az ablak, amely az új ablakok megnyitásakor volt aktív.

A lényeg: A múltban, ha megnyitott egy munkafüzetet vagy bővítményt, amely módosított helyi menükben, biztos lehetett abban, hogy a módosított helyi menük minden munkafüzetben elérhetők voltak. Már nincs meg ez a biztosíték.

Hozzon létre egyéni helyi menüket az Access 2007-ben

A makrótervezési ablak eltér az Access 2007-ben a későbbi verzióktól, ezért ha Access 2007-et használ, bontsa ki a következő szakaszokat.

1. lépés az Access 2007-hez: Hozzon létre egy makrócsoportot, amely tartalmazza a menüparancsokat

Ebben a lépésben létrehoz egy makrócsoportot, amelynek minden makrója külön parancs lesz a helyi menüben.

Mi az a makrócsoport?

A makrócsoport egyetlen makróobjektum, amely két vagy több független makrót tartalmaz. Az egyes makrók azonosítása úgy történik, hogy a Makrónevek oszlopban minden makróra nevet írunk be. A következő ábrán  a Macro3  egy makrócsoport. A NotFoundMsg  és  a FoundMsg  különálló makrók a csoporton belül, mindegyik makró két makróműveletből áll.

Makrócsoport példa

Megjegyzés: Makró neve  oszlop alapértelmezés szerint el van rejtve. A Makró neve  oszlop  megjelenítéséhez  a Tervezés  lap  Megjelenítés/elrejtés  csoportjában kattintson  a Makrónevek elemre .

  1. Létrehozás  lap Egyéb csoportjában  kattintson  a  Makró elemre . Ha ez a parancs nem érhető el, kattintson a Modul  vagy az  Osztálymodul gomb alatti nyílra   , majd kattintson  a Makró elemre .

  2. Tervezés  lap  Megjelenítés/elrejtés  csoportjában kattintson  a Makrónevek lehetőségre a Makrónév oszlop  megjelenítéséhez   .

  3. Minden egyes parancshoz, amelyet az egyéni helyi menüben szeretne megjeleníteni:

    • Makró neve  oszlopban írja be a helyi menüben megjeleníteni kívánt szöveget (például "Jelentés nyomtatása" vagy "Mentés").

      Megjegyzés:  Ha hozzáférési kulcsot szeretne létrehozni, hogy a billentyűzet segítségével válassza ki a parancsot, írjon be egy "és" jelet (&) a parancs nevében a hozzáférési kulcsként használni kívánt betű elé (például "&Mentés"). Ez a betű aláhúzva lesz a menüben.
    • Művelet  oszlopban válassza ki az első műveletet, amelyet a helyi menü parancsára kattintva végrehajtani szeretne.

    • Ha a parancs kiválasztásakor több műveletet szeretne végrehajtani, adja hozzá azokat a következő sorokhoz. Minden további műveletnél hagyja   üresen a Makrónév cellát.

      Megjegyzés:  Két menüparancs közötti vonal létrehozásához írjon be egy kötőjelet (-) a  Makrónév  oszlopba a megfelelő menüparancsok közé.
  4. Mentse el és nevezze el a makrót, például   mcrShortcutMenuCommands .

A következő ábra egy példa makrócsoportot mutat be egyéni menühöz vagy helyi menühöz.

Menü makrócsoport Tervező nézetben

2. lépés az Access 2007-hez: Hozzon létre egy makrót, amely létrehozza a menüt

Ez a lépés feleslegesnek tűnhet, de az 1. lépésben létrehozott makrócsoportból a helyi menü létrehozásához létre kell hoznia egy második makrót, amely tartalmazza az  AddMenu  makróműveletet. Ezt a makrót néha "menü makrónak" is nevezik.

  1. Létrehozás  lap Egyéb csoportjában  kattintson  a  Makró elemre . Ha ez a parancs nem érhető el, kattintson a Modul  vagy az  Osztálymodul gomb alatti nyílra   , majd kattintson  a Makró elemre .

  2. A makró első sorában válassza  az AddMenu lehetőséget  a  Művelet listában  .

  3. Műveletargumentumok alatt  a Menü neve  mezőbe írja be a menü nevét (például "Jelentésparancsok"). Ez az argumentum nem kötelező, de akkor ajánlott, ha a 3. lépésben a menüt egy Szalaglaphoz kívánja hozzáadni (például egy  űrlap vagy jelentés Bővítmények lapjához  ). Ha a menüt a 3. lépésben helyi menüként adják hozzá, a  Menü neve  argumentumot figyelmen kívül hagyja.

  4. Menü Makró neve  mezőbe írja be az 1. lépésben létrehozott makró nevét.

  5. Mentse el és nevezze el a makrót, például  mcrAddShortcutMenu .

A következő ábra egy példamenü makrót mutat be, amely létrehozza az 1. lépésben általunk tervezett menüt.

Menü makró Tervező nézetben

3. lépés az Access 2007 esetében: Csatolja a menüt egy vezérlőhöz, űrlaphoz, jelentéshez vagy adatbázishoz

Attól függően, hogy hol szeretné megjeleníteni a menüt, használja az alábbi eljárások közül egyet vagy többet.

  • Adja hozzá a menüt egy űrlap vagy jelentés Bővítmények lapjához

    Használja ezt az eljárást, ha azt szeretné, hogy a menü megjelenjen a  Bővítmények  lapon egy adott űrlaphoz vagy jelentéshez, ahogy az az alábbi ábrán látható:

    Egyéni menüt tartalmazó Bővítmények lap

    1. A navigációs ablakban kattintson jobb gombbal arra az űrlapra vagy jelentésre, ahol meg szeretné jeleníteni a menüt, majd kattintson a  Tervező nézet parancsra .

    2. Tervezés  lap  Megjelenítés/elrejtés  csoportjában kattintson  a Tulajdonságlap elemre .

    3. Jelölje ki a teljes objektumot az Űrlap  vagy  Jelentés kiválasztásával   a Tulajdonságlap munkaablak tetején található listából.

    4. A   Tulajdonságlap  Egyéb lapján a Parancsikon menü  tulajdonság mezőbe írja be a 2. lépésben létrehozott makró nevét (ebben a példában „mcrAddShortcutMenu”).

      Az űrlap vagy jelentés következő megnyitásakor a  Bővítmények  lap jelenik meg a szalagon. Kattintson a fülre a menü megtekintéséhez.

      A szalagok testreszabási technikáiról, például egyéni lapok hozzáadásával vagy az alapértelmezett lapok elrejtésével kapcsolatos további információkért tekintse meg az  Egyéni szalag létrehozása az Accessben című cikket .

      A szalag a Microsoft Office Fluent felhasználói felület egyik összetevője.

  • Adja hozzá a menüt egy űrlaphoz, jelentéshez vagy vezérlőelemhez helyi menüként

    Használja ezt az eljárást, ha azt szeretné, hogy a menü megjelenjen, amikor jobb gombbal kattint egy adott űrlapra, jelentésre vagy vezérlőelemre, ahogy az alábbi ábrán látható:

    Egy egyszerű gyorsmenü

    1. A navigációs ablakban kattintson jobb gombbal arra az űrlapra vagy jelentésre, ahol meg szeretné jeleníteni a helyi menüt, majd kattintson a  Tervező nézet parancsra .

    2. Tervezés  lap  Megjelenítés/elrejtés  csoportjában kattintson  a Tulajdonságlap elemre .

    3. Válassza ki azt a vezérlőt vagy objektumot, amelyhez a helyi menüt csatolni szeretné.

      Megjegyzés:  A teljes objektum kijelöléséhez válassza  az Űrlap  vagy  Jelentés lehetőséget  a Tulajdonságlap munkaablak tetején található listából.

    4. A   Tulajdonságlap  Egyéb lapján a Parancsikon menüsor  tulajdonság mezőbe írja be a 2. lépésben létrehozott makró nevét (ebben a példában „mcrAddShortcutMenu”).

  • Adja hozzá a menüt globális helyi menüként

    Ez az eljárás lecseréli az összes alapértelmezett helyi menüt az aktuális adatbázisban. Ez nem érinti az egyes űrlapokhoz, jelentésekhez vagy vezérlőelemekhez csatolt egyéni helyi menüket.

    1. Kattintson a  Microsoft Office gombra  , majd kattintson  a Hozzáférési beállítások elemre .

    2. Az  Access Options  párbeszédpanelen kattintson  az Aktuális adatbázis elemre .

    3. A Szalag és eszköztár beállításai alatt  a  Parancsikon menüsor mezőbe  írja be a 2. lépésben létrehozott makró nevét (ebben a példában „mcrAddShortcutMenu”).

  • Az egyéni helyi menük felváltják a hozzájuk csatolt objektumok alapértelmezett helyi menüit. Ha meg szeretne tartani bizonyos Access-parancsokat ezekben a menükben, használja a  RunCommand  műveletet, hogy a parancsokat a kívánt menük makrócsoportjaiba helyezze.

  • A vezérlőhöz csatolt egyéni helyi menü felülír minden más, az adatbázisban definiált egyéni helyi menüt. Az űrlaphoz vagy jelentéshez csatolt egyéni helyi menü felülírja az egyéni globális helyi menüt.

  • Amikor menümakrót ad meg egy űrlaphoz, jelentéshez vagy adatbázishoz, az Access ezt a menümakrót futtatja, amikor az űrlapot, jelentést vagy adatbázist megnyitja. Ha módosítja a menümakrót vagy a parancsait meghatározó makrócsoportot, miközben az űrlap, jelentés vagy adatbázis nyitva van, be kell zárnia az űrlapot, jelentést vagy adatbázist, majd újra meg kell nyitnia a módosítások megtekintéséhez.

  • Almenü létrehozásához kövesse az 1. lépést egy különálló makrócsoport létrehozásához, amely csak az almenü parancsait tartalmazza. Ezután ismét kövesse az 1. lépést a magasabb szintű menü parancsainak meghatározásához. Adja hozzá az almenüt elemként a magasabb szintű makrócsoporthoz az  AddMenu  makróművelet segítségével. Az alábbi ábra egy almenüt tartalmazó menü makrócsoportját mutatja, majd az eredményül kapott helyi menüt. A makrócsoport harmadik sora létrehozza az  Exportálás ide...  almenüt ( mcrSubMenu ).

    Helyi menü, amely almenüt tartalmaz

    Több szintű almenüt hozhat létre  az AddMenu  műveletek használatával a makrócsoportokban az egyes menüszintekhez. Ügyeljen arra, hogy   minden  AddMenu művelethez adjon meg egy értéket a Menü neve argumentumhoz  , különben az almenü üres sorként jelenik meg a magasabb szintű menüben.

  • A makrófeltételeket csak a legfelső szintű menümakró támogatja. Más szóval, a menümakró feltételével meghatározhatja, hogy egy adott menü vagy helyi menü megjelenjen-e, de csak a legfelső szintű menük esetében. Nem használhat feltételeket parancsok vagy almenük megjelenítésére vagy elrejtésére a menükben. Egyedi helyi menü vagy globális helyi menü elrejtésére vagy megjelenítésére is használhat feltételt.

  • A 2. lépésben létrehozott menümakró opcionálisan része lehet egy makrócsoportnak. Ha például több helyi menüvel rendelkezik különböző objektumokhoz vagy vezérlőelemekhez, létrehozhat egyetlen makróobjektumot, amely tartalmazza az összes szükséges menümakrót. Győződjön meg arról, hogy megjelenik a  Makró neve  oszlop, és minden makróhoz írjon be egy egyedi nevet. A 3. lépésben a következő jelöléssel hivatkozzon a makróra:  makrócsoportnév.makrónév . Például  mcrAddShortcutMenus.AddMenu2 .

Leave a Comment

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban. Részletes útmutató, hogyan készíthet különféle stílusú jegyzeteket bibliográfiai információkhoz vagy magyarázó megjegyzésekhez.

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Tudjon meg mindent arról, hogyan lehet az Excelben kiemelni a statisztikailag kiugró értékeket, mégpedig egyszerű eszközökkel és módszerekkel. Kiemelt figyelmet fordítunk a kiugró értékek azonosítására és kezelésére.

Hogyan lehet mintát venni az adatokból Excelben

Hogyan lehet mintát venni az adatokból Excelben

Az Excel Mintavételi eszközével véletlenszerűen kiválaszthat elemeket egy adatkészletből vagy választhat minden n-edik elemet. Ismerje meg, hogyan használhatja ezt a hasznos funkciót az adatelemzéshez!

10 klassz trükk a Microsoft Word 2019 programmal

10 klassz trükk a Microsoft Word 2019 programmal

Fedezze fel a Microsoft Word 2019 legjobb trükkjeit, amelyek segítenek a hatékonyabb munkavégzésben. Tudd meg, hogyan használhatod ki a program funkcióit!

Bekezdések igazítása és behúzása a Word 2019-ben

Bekezdések igazítása és behúzása a Word 2019-ben

A Word 2019-ben a bekezdések igazítása és behúzása kulcsfontosságú a dokumentumok megfelelő megjelenítéséhez. Ismerje meg a formázási lehetőségeket és tippeket a hatékonyabb munkához.

Az Excel 2019 Solver használata

Az Excel 2019 Solver használata

Fedezze fel, hogyan használhatja az Excel 2019 Solver bővítményt a komplex problémák megoldására. A célcella, változócellák és kényszerek beállítása lépésről lépésre.

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

A Word lehetővé teszi dinamikus elemek hozzáadását a dokumentumhoz. Fedezze fel, hogyan lehet különböző mezőket használni a Word programban a dinamikus tartalom létrehozásához.

Oszloptípusok a SharePoint 2010-ben

Oszloptípusok a SharePoint 2010-ben

A SharePoint 2010 oszlopai az adatok tárolására szolgálnak. Fedezze fel a különböző oszlop típusokat és azok alkalmazását a SharePoint rendszeren belül.

A nem kívánt szöveg eltávolítása a Word 2013-ban

A nem kívánt szöveg eltávolítása a Word 2013-ban

A Word 2013 szövegtörlésének képessége kulcsfontosságú, legyen szó szövegalkotásról vagy törlésről. Ismerje meg a hatékony szövegtörlési módszereket!

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

A fotóalbum funkció a PowerPoint 2016-ban lehetővé teszi, hogy egyszerre több fényképet illesszen be egy prezentációba, megkönnyítve ezzel a többszörös képek kezelését.