Jak přizpůsobit místní nabídky Excel 2016 ve VBA

Před Excelem 2007 používali programátoři VBA objekt CommandBar k vytváření vlastních nabídek, vlastních panelů nástrojů a vlastních místních nabídek (klepnutí pravým tlačítkem). Počínaje aplikací Excel 2007 je objekt CommandBar v poněkud zvláštní pozici. Pokud napíšete kód pro přizpůsobení nabídky nebo panelu nástrojů, Excel tento kód zachytí a ignoruje mnoho vašich příkazů.

Místo zobrazení vašeho promyšleného vylepšení rozhraní Excel 2007 (stejně jako novější verze) jednoduše vypíše vaše přizpůsobené nabídky a panely nástrojů na univerzální kartu pásu s názvem Doplňky.

Přizpůsobení nabídky a panelu nástrojů končí ve skupině Doplňky → Příkazy nabídky nebo Doplňky → Vlastní panely nástrojů. Ale přizpůsobení místních nabídek (které také používá objekt CommandBar) stále funguje jako vždy – no, tak nějak.

Sečteno a podtrženo? Objekt CommandBar již není příliš užitečný, ale zůstává jediným způsobem, jak přizpůsobit místní nabídky.

Přidání nové položky do místní nabídky Buňka

Níže naleznete ukázkový kód, který přidá novou položku do místní nabídky, která se zobrazí po kliknutí pravým tlačítkem na buňku. Tyto příklady byste měli být schopni přizpůsobit svým potřebám.

Nástroj Change Case můžete trochu vylepšit tím, že jej zpřístupníte z místní nabídky buňky.

Procedura AddToShortcut přidá novou položku nabídky do místní nabídky Buňka. Můžete jej přizpůsobit tak, aby ukazoval na vaše vlastní makra, změnou vlastností Caption a OnAction objektu s názvem NewControl.

Sub AddToShortCut()
  Dim Bar Jako CommandBar
  Ztlumit NewControl jako CommandBarButton
  DeleteFromShortcut
  Nastavit pruh = Application.CommandBars(“Buňka”)
  Set NewControl = Bar.Controls.Add _
     (Typ:=msoControlButton, ID:=1, _
     dočasné:=pravda)
  S NewControl
    .Caption = „&Změnit velikost písmen“
    .OnAction = “ChangeCase”
    .Style = msoButtonIconAndCaption
  Konec s
End Sub

Když upravíte místní nabídku, tato úprava zůstane v platnosti, dokud nerestartujete Excel. Jinými slovy, upravené místní nabídky se samy neresetují, když zavřete sešit obsahující kód VBA. Pokud tedy napíšete kód pro úpravu místní nabídky, téměř vždy napíšete kód, který zvrátit účinek vaší úpravy.

Procedura DeleteFromShortcut odstraní novou položku nabídky z místní nabídky buňky:

Sub DeleteFromShortcut()
  Při chybě pokračovat dále
  Application.CommandBars(“Buňka”).Ovládací prvky _
    („&Změnit případ“). Odstranit
End Sub

To ukazuje, jak se nová položka nabídky zobrazí po kliknutí pravým tlačítkem na buňku.

Jak přizpůsobit místní nabídky Excel 2016 ve VBA

Místní nabídka Buňka zobrazující vlastní položku nabídky: Změnit velikost písmen.

První skutečný příkaz po deklaraci několika proměnných volá proceduru DeleteFromShortcut. Tento příkaz zajišťuje, že se v místní nabídce Buňka zobrazí pouze jedna položka nabídky Změnit případ. Zkuste tento řádek okomentovat (na začátek řádku vložte apostrof) a několikrát spusťte proceduru – ale nenechte se unést!

Klepněte pravým tlačítkem na buňku a uvidíte několik instancí položky nabídky Změnit velikost písmen. Zbavte se všech položek spuštěním DeleteFromShortcut vícekrát (jednou pro každou další položku nabídky).

Nakonec potřebujete způsob, jak přidat položku místní nabídky při otevření sešitu a odstranit položku nabídky při zavření sešitu. To je snadné. Stačí přidat tyto dvě procedury událostí do modulu kódu ThisWorkbook:

Private Sub Workbook_Open()
Zavolejte AddToShortCut
End Sub
Private Sub Workbook_BeforeClose (Zrušit jako Boolean)
Zavolejte DeleteFromShortcut
End Sub

Procedura Workbook_Open se provede při otevření sešitu a procedura Workbook_BeforeClose se provede před zavřením sešitu. Přesně to, co lékař nařídil.

Co se liší v Excelu 2013 a Excelu 2016?

Pokud jste používali VBA pro práci s místními nabídkami v Excelu 2007 nebo starším, musíte si být vědomi významné změny.

Pokud v minulosti váš kód upravoval místní nabídku, byla tato úprava platná pro všechny sešity. Pokud jste například přidali novou položku do nabídky po klepnutí pravým tlačítkem na buňku, tato nová položka se zobrazí, když klepnete pravým tlačítkem na buňku v libovolném sešitu (a v dalších sešitech, které otevřete později). Jinými slovy, úpravy místní nabídky byly provedeny na úrovni aplikace .

Excel 2013 a Excel 2016 používají jediné rozhraní dokumentu, které ovlivňuje místní nabídky. Změny, které provedete v místní nabídce, ovlivní pouze okno aktivního sešitu. Když spustíte kód, který upravuje místní nabídku, místní nabídka pro jiná okna než aktivní okno se nezmění. Jde o radikální odklon od toho, jak věci fungovaly dříve.

Další změna: Pokud uživatel otevře sešit (nebo vytvoří nový sešit), když aktivní okno zobrazuje upravenou místní nabídku, nový sešit také zobrazí upravenou místní nabídku. Jinými slovy, nová okna zobrazují stejné místní nabídky jako okno, které bylo aktivní při otevření nových oken.

Sečteno a podtrženo: Pokud jste v minulosti otevřeli sešit nebo doplněk, který upravoval místní nabídky, mohli jste si být jisti, že upravené místní nabídky budou dostupné ve všech sešitech. Tu jistotu už nemáte.

Vytvářejte vlastní místní nabídky v Accessu 2007

Okno návrhu maker se v Accessu 2007 liší ve srovnání s novějšími verzemi, takže pokud používáte Access 2007, rozbalte následující části a postupujte podle nich.

Krok 1 pro Access 2007: Vytvořte skupinu maker, která obsahuje příkazy nabídky

V tomto kroku vytvoříte skupinu maker, z nichž každé makro bude samostatným příkazem v místní nabídce.

Co je makroskupina?

Skupina maker je jeden objekt maker, který obsahuje dvě nebo více nezávislých maker. Jednotlivá makra se identifikují zadáním názvu každého makra do sloupce Názvy maker. Na následujícím obrázku  je Macro3  skupina maker. NotFoundMsg  a  FoundMsg  jsou jednotlivá makra v rámci skupiny, každé makro se skládá ze dvou akcí makra.

Příklad skupiny maker

Poznámka:  Sloupec  Název makra  je ve výchozím nastavení skrytý. Chcete-li zobrazit  sloupec Název makra  , na  kartě Návrh  ve   skupině  Zobrazit/skrýt klikněte na Názvy maker .

  1. Na  kartě Vytvořit  ve  skupině Jiné  klikněte na  Makro . Pokud tento příkaz není k dispozici, klikněte na šipku pod  tlačítkem Modul  nebo  Modul třídy  a poté klikněte na  Makro .

  2. Na  kartě Návrh  ve   skupině  Zobrazit/skrýt kliknutím na Názvy maker  zobrazte  sloupec Název makra  .

  3. Pro každý příkaz, který chcete ve své vlastní místní nabídce:

    • Do  sloupce Název makra  zadejte text, který chcete zobrazit v místní nabídce (například "Tisk sestavy" nebo "Uložit").

      Poznámka:  Chcete-li vytvořit přístupovou klávesu, abyste mohli k výběru příkazu použít klávesnici, zadejte ampersand (&) před písmeno, které má být přístupovou klávesou v názvu příkazu (například „&Uložit“). Toto písmeno bude v nabídce podtrženo.
    • Ve  sloupci Akce  vyberte první akci, kterou chcete provést, když kliknete na příkaz v místní nabídce.

    • Pokud chcete při výběru tohoto příkazu provést více akcí, přidejte je na následující řádky. Pro každou následující akci ponechte  buňku Název makra  prázdnou.

      Poznámka:  Chcete-li vytvořit čáru mezi dvěma příkazy nabídky, zadejte do sloupce  Název makra  mezi příslušnými příkazy nabídky pomlčku (-).
  4. Uložte a pojmenujte makro, například   mcrShortcutMenuCommands .

Následující obrázek ukazuje příklad skupiny maker pro vlastní nabídku nebo místní nabídku.

Skupina maker nabídky v zobrazení Návrh

Krok 2 pro Access 2007: Vytvořte makro, které vytvoří nabídku

Tento krok se může zdát nadbytečný, ale chcete-li vytvořit místní nabídku ze skupiny maker, kterou jste vytvořili v kroku 1, musíte vytvořit druhé makro, které obsahuje  akci makra AddMenu  . Toto makro se někdy nazývá „makro nabídky“.

  1. Na  kartě Vytvořit  ve  skupině Jiné  klikněte na  Makro . Pokud tento příkaz není k dispozici, klikněte na šipku pod  tlačítkem Modul  nebo  Modul třídy  a poté klikněte na  Makro .

  2. Na prvním řádku makra vyberte  AddMenu  v  seznamu Action  .

  3. V  části Argumenty akce zadejte do pole  Název  nabídky název nabídky (například „Příkazy sestavy“). Tento argument není povinný, ale doporučuje se, pokud v kroku 3 plánujete přidat nabídku na kartu pásu karet (jako je karta  Doplňky  formuláře nebo sestavy). Pokud je nabídka přidána jako místní nabídka v kroku 3,  argument Název nabídky  je ignorován.

  4. Do  pole Název makra nabídky  zadejte název makra, které jste vytvořili v kroku 1.

  5. Uložte a pojmenujte makro, například  mcrAddShortcutMenu .

Následující obrázek ukazuje příklad makra nabídky, které vytváří nabídku, kterou jsme navrhli v kroku 1.

Makro nabídky v návrhovém zobrazení

Krok 3 pro Access 2007: Připojte nabídku k ovládacímu prvku, formuláři, sestavě nebo databázi

V závislosti na tom, kde se má nabídka zobrazit, použijte jeden nebo více z následujících postupů.

  • Přidejte nabídku na kartu Doplňky formuláře nebo sestavy

    Tento postup použijte, pokud chcete, aby se nabídka objevila na  kartě Doplňky  pro konkrétní formulář nebo sestavu, jak je znázorněno na následujícím obrázku:

    Karta Doplňky obsahující vlastní nabídku

    1. V navigačním podokně klikněte pravým tlačítkem na formulář nebo sestavu, kde se má nabídka zobrazit, a poté klikněte na  Návrhové zobrazení .

    2. Na  kartě Návrh  ve   skupině  Zobrazit/skrýt klikněte na položku List vlastností .

    3. Vyberte celý objekt výběrem  formuláře  nebo  sestavy  ze seznamu v horní části podokna úloh List vlastností.

    4. Na  kartě Jiné  na listu vlastností  zadejte do pole vlastností místní nabídky  název makra, které jste vytvořili v kroku 2 (v tomto příkladu „mcrAddShortcutMenu“).

      Při příštím otevření formuláře nebo sestavy   se na pásu karet zobrazí karta Doplňky . Klepnutím na kartu zobrazíte nabídku.

      Další informace o technikách přizpůsobení pásu karet, jako je přidání vlastních karet nebo skrytí výchozích karet, najdete v článku  Vytvoření vlastního pásu karet v Accessu .

      Pás karet je součástí uživatelského rozhraní Microsoft Office Fluent.

  • Přidejte nabídku jako místní nabídku pro formulář, sestavu nebo ovládací prvek

    Tento postup použijte, pokud chcete, aby se nabídka zobrazila po klepnutí pravým tlačítkem na konkrétní formulář, sestavu nebo ovládací prvek, jak je znázorněno na následujícím obrázku:

    Jednoduchá místní nabídka

    1. V navigačním podokně klikněte pravým tlačítkem na formulář nebo sestavu, kde se má zobrazit místní nabídka, a poté klikněte na  Návrhové zobrazení .

    2. Na  kartě Návrh  ve   skupině  Zobrazit/skrýt klikněte na položku List vlastností .

    3. Vyberte ovládací prvek nebo objekt, ke kterému chcete připojit místní nabídku.

      Poznámka:  Chcete-li vybrat celý objekt, vyberte  Formulář  nebo  Sestava  ze seznamu v horní části podokna úloh List vlastností.

    4. Na  kartě Jiné  na listu vlastností  zadejte do pole vlastností panelu místní nabídky  název makra, které jste vytvořili v kroku 2 (v tomto příkladu „mcrAddShortcutMenu“).

  • Přidejte nabídku jako globální místní nabídku

    Tento postup nahradí všechny výchozí místní nabídky v aktuální databázi. Vlastní místní nabídky, které jste připojili ke konkrétním formulářům, sestavám nebo ovládacím prvkům, nejsou ovlivněny.

    1. Klikněte na  tlačítko Microsoft Office  a poté na  Možnosti přístupu .

    2. V  dialogovém okně Možnosti aplikace Access  klikněte na položku  Aktuální databáze .

    3. V části  Možnosti pásu karet a panelu nástrojů zadejte do pole  Panel místní nabídky  název makra, které jste vytvořili v kroku 2 (v tomto příkladu „mcrAddShortcutMenu“).

  • Vlastní místní nabídky nahrazují výchozí místní nabídky pro objekty, ke kterým jsou připojeny. Chcete-li zachovat určité příkazy Accessu pro použití v těchto nabídkách, použijte  akci SpustitPříkaz  k umístění příkazů do skupin maker pro nabídky, ve kterých je chcete mít.

  • Vlastní místní nabídka, která je připojena k ovládacímu prvku, nahrazuje jakékoli jiné vlastní místní nabídky, které jsou definovány v databázi. Vlastní místní nabídka, která je připojena k formuláři nebo sestavě, nahrazuje vlastní globální místní nabídku.

  • Když zadáte makro nabídky pro formulář nebo sestavu nebo pro databázi, Access toto makro nabídky spustí při každém otevření formuláře, sestavy nebo databáze. Pokud provedete změny v makru nabídky nebo skupině maker, která definuje jeho příkazy, zatímco je formulář, sestava nebo databáze otevřená, musíte formulář, sestavu nebo databázi zavřít a znovu je otevřít, abyste viděli změny.

  • Chcete-li vytvořit podnabídku, postupujte podle kroku 1 a vytvořte samostatnou skupinu maker, která obsahuje pouze příkazy podnabídky. Poté znovu podle kroku 1 definujte příkazy pro nabídku vyšší úrovně. Přidejte podnabídku jako položku do skupiny maker vyšší úrovně pomocí  akce makra Přidat nabídku  . Následující obrázek ukazuje skupinu maker pro nabídku, která obsahuje podnabídku, a poté ukazuje výslednou místní nabídku. Třetí řádek ve skupině maker vytváří  podnabídku Exportovat do...  ( mcrSubMenu ).

    Místní nabídka, která obsahuje podnabídku

    Pomocí akcí AddMenu  ve skupinách maker pro každou úroveň nabídky můžete vytvořit více úrovní podnabídek  . Nezapomeňte zadat hodnotu  argumentu Název nabídky  pro každou  akci AddMenu  , jinak se podnabídka zobrazí jako prázdný řádek v nabídce vyšší úrovně.

  • Podmínky maker jsou podporovány pouze v makru nabídky nejvyšší úrovně. Jinými slovy, můžete použít podmínku v makru nabídky k určení, zda se zobrazí konkrétní nabídka nebo místní nabídka, ale pouze pro nabídky na nejvyšší úrovni. Podmínky nelze použít k zobrazení nebo skrytí příkazů nebo podnabídek v nabídkách. Pomocí podmínky můžete také skrýt nebo zobrazit vlastní místní nabídku nebo globální místní nabídku.

  • Volitelně může být makro nabídky, které vytvoříte v kroku 2, součástí skupiny maker. Máte-li například několik místních nabídek pro různé objekty nebo ovládací prvky, můžete vytvořit jeden objekt makra, který obsahuje všechna potřebná makra nabídky. Nezapomeňte zobrazit  sloupec Název makra  a zadejte jedinečný název pro každé makro. V kroku 3 použijte k odkazování na makro následující zápis:  název_makroskupiny.název_makra . Například  mcrAddShortcutMenus.AddMenu2 .


Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows Aplikace Microsoft Word otevírá soubory v režimu pouze pro čtení, takže je nelze upravovat? Nebojte se, metody jsou uvedeny níže

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit chyby při tisku nesprávných dokumentů Microsoft Word Chyby při tisku dokumentů Word se změněným písmem, chaotickými odstavci, chybějícím textem nebo ztraceným obsahem jsou poměrně časté. Nicméně ne

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Pokud jste použili pero nebo zvýrazňovač ke kreslení na snímky aplikace PowerPoint během prezentace, můžete kresby uložit pro další prezentaci nebo je vymazat, takže až ji příště ukážete, začnete s čistými snímky aplikace PowerPoint. Chcete-li vymazat kresby perem a zvýrazňovačem, postupujte podle těchto pokynů: Mazání čar jedna na […]

Obsah knihovny stylů v SharePointu 2010

Obsah knihovny stylů v SharePointu 2010

Knihovna stylů obsahuje soubory CSS, soubory XSL (Extensible Stylesheet Language) a obrázky používané předdefinovanými vzorovými stránkami, rozvržení stránek a ovládací prvky v SharePointu 2010. Chcete-li najít soubory CSS v knihovně stylů webu pro publikování: Vyberte Akce webu→ Zobrazit Veškerý obsah webu. Zobrazí se obsah webu. Knihovna stylů se nachází v […]

Formátování čísel v tisících a milionech v sestavách Excel

Formátování čísel v tisících a milionech v sestavách Excel

Nezahlcujte své publikum gargantuovskými čísly. V aplikaci Microsoft Excel můžete zlepšit čitelnost řídicích panelů a sestav formátováním čísel tak, aby se zobrazovaly v tisících nebo milionech.

Jak sdílet a sledovat weby SharePoint

Jak sdílet a sledovat weby SharePoint

Naučte se používat nástroje sociálních sítí SharePoints, které umožňují jednotlivcům a skupinám komunikovat, spolupracovat, sdílet a propojovat se.

Jak převést data do juliánských formátů v aplikaci Excel

Jak převést data do juliánských formátů v aplikaci Excel

Juliánská data se často používají ve výrobním prostředí jako časové razítko a rychlý odkaz pro číslo šarže. Tento typ kódování data umožňuje maloobchodníkům, spotřebitelům a servisním zástupcům identifikovat, kdy byl produkt vyroben, a tím i stáří produktu. Juliánská data se také používají v programování, armádě a astronomii. Odlišný […]

Jak vytvořit webovou aplikaci Access

Jak vytvořit webovou aplikaci Access

Webovou aplikaci můžete vytvořit v Accessu 2016. Co je tedy vlastně webová aplikace? Web znamená, že je online, a aplikace je jen zkratka pro „aplikaci“. Vlastní webová aplikace je online databázová aplikace přístupná z cloudu pomocí prohlížeče. Webovou aplikaci vytváříte a udržujete ve verzi pro počítače […]

Panel rychlého spuštění v SharePointu 2010

Panel rychlého spuštění v SharePointu 2010

Většina stránek v SharePointu 2010 zobrazuje seznam navigačních odkazů na panelu Snadné spuštění na levé straně stránky. Panel Snadné spuštění zobrazuje odkazy na doporučený obsah webu, jako jsou seznamy, knihovny, weby a stránky publikování. Panel Snadné spuštění obsahuje dva velmi důležité odkazy: Odkaz na veškerý obsah webu: […]

Co znamenají chybové zprávy Řešitel v Excelu?

Co znamenají chybové zprávy Řešitel v Excelu?

U jednoduchých problémů Řešitel v Excelu obvykle rychle najde optimální hodnoty proměnné Řešitel pro účelovou funkci. Ale v některých případech má Řešitel problém najít hodnoty proměnné Řešitel, které optimalizují účelovou funkci. V těchto případech Řešitel obvykle zobrazí zprávu nebo chybovou zprávu, která popisuje nebo popisuje problém, který […]