Jak dostosować menu skrótów programu Excel 2016 w VBA?

Jak dostosować menu skrótów programu Excel 2016 w VBA?

Przed Excel 2007 programiści VBA używali obiektu CommandBar do tworzenia niestandardowych menu, niestandardowych pasków narzędzi i niestandardowych menu skrótów (kliknij prawym przyciskiem myszy). Począwszy od programu Excel 2007 obiekt CommandBar znajduje się w dość dziwnej pozycji. Jeśli napiszesz kod w celu dostosowania menu lub paska narzędzi, program Excel przechwyci ten kod i zignoruje wiele poleceń.

Zamiast wyświetlać dobrze przemyślane ulepszenie interfejsu, Excel 2007 (podobnie jak późniejsze wersje) po prostu zrzuca dostosowane menu i paski narzędzi do ogólnej karty wstążki o nazwie Dodatki.

Dostosowania menu i pasków narzędzi trafiają do grupy Dodatki → Polecenia menu lub Dodatki → Niestandardowe paski narzędzi. Ale dostosowywanie menu skrótów (które również używa obiektu CommandBar) nadal działa tak, jak zawsze - cóż, w pewnym sensie.

Konkluzja? Obiekt CommandBar nie jest już bardzo przydatny, ale pozostaje jedynym sposobem dostosowania menu skrótów.

Dodawanie nowego elementu do menu skrótów komórki

Poniżej znajdziesz przykładowy kod, który dodaje nowy element do menu skrótów, które pojawia się po kliknięciu komórki prawym przyciskiem myszy. Powinieneś być w stanie dostosować te przykłady do swoich potrzeb.

Możesz nieco poprawić narzędzie Zmień wielkość liter, udostępniając je z menu skrótów Cell.

Procedura AddToShortcut dodaje nowy element menu do menu skrótów komórki. Możesz dostosować go tak, aby wskazywał na własne makra, zmieniając właściwości Caption i OnAction obiektu o nazwie NewControl.

Sub AddToShortCut()
  Pasek przyciemniania jako pasek poleceń
  Dim NewControl As CommandBarButton
  Usuń ze skrótu
  Ustaw pasek = Application.CommandBars("Komórka")
  Ustaw NewControl = Bar.Controls.Add _
     (Typ:=msoControlButton, ID:=1, _
     tymczasowe:=prawda)
  Z NewControl
    .Caption = „&Zmień wielkość liter”
    .OnAction = „Przypadek zmiany”
    .Style = msoButtonIconAndCaption
  Kończyć z
Napis końcowy

Modyfikacja menu skrótów będzie obowiązywać do momentu ponownego uruchomienia programu Excel. Innymi słowy, zmodyfikowane menu skrótów nie resetują się po zamknięciu skoroszytu zawierającego kod VBA. Dlatego, jeśli piszesz kod modyfikujący menu skrótów, prawie zawsze piszesz kod odwracający efekt modyfikacji.

Procedura DeleteFromShortcut usuwa nowy element menu z menu skrótów komórki:

Sub UsuńZSkrótu()
  Przy błędzie Wznów Dalej
  Application.CommandBars („Komórka”). Elementy sterujące _
    („&Zmień przypadek”). Usuń
Napis końcowy

Pokazuje, jak nowy element menu jest wyświetlany po kliknięciu komórki prawym przyciskiem myszy.

Jak dostosować menu skrótów programu Excel 2016 w VBA?

Menu skrótów komórki zawierające niestandardowy element menu: Zmień wielkość liter.

Pierwsze rzeczywiste polecenie po deklaracji kilku zmiennych wywołuje procedurę DeleteFromShortcut. Ta instrukcja gwarantuje, że w menu skrótów Komórka pojawi się tylko jeden element menu Zmień wielkość liter. Spróbuj skomentować ten wiersz (wstaw apostrof na początku wiersza) i uruchom procedurę kilka razy — ale nie daj się ponieść emocjom!

Kliknij komórkę prawym przyciskiem myszy, a zobaczysz wiele wystąpień elementu menu Zmień wielkość liter. Pozbądź się wszystkich wpisów, uruchamiając wielokrotnie DeleteFromShortcut (raz dla każdego dodatkowego elementu menu).

Na koniec potrzebujesz sposobu, aby dodać element menu skrótów, gdy skoroszyt jest otwarty, i usunąć element menu, gdy skoroszyt jest zamknięty. Robienie tego jest łatwe. Wystarczy dodać te dwie procedury zdarzeń do modułu kodu ThisWorkbook:

Prywatny skoroszyt pomocniczy_Open()
Zadzwoń do AddToShortCut
Napis końcowy
Prywatny skoroszyt pomocniczy_BeforeClose (Anuluj jako Boolean)
Zadzwoń Usuń ze skrótu
Napis końcowy

Procedura Workbook_Open jest wykonywana po otwarciu skoroszytu, a procedura Workbook_BeforeClose jest wykonywana przed zamknięciem skoroszytu. Dokładnie to, co zalecił lekarz.

Czym różnią się programy Excel 2013 i Excel 2016?

Jeśli używałeś języka VBA do pracy z menu skrótów w programie Excel 2007 lub starszym, musisz zdawać sobie sprawę z istotnej zmiany.

W przeszłości, jeśli kod modyfikował menu skrótów, ta modyfikacja obowiązywała dla wszystkich skoroszytów. Na przykład, jeśli dodasz nowy element do menu rozwijanego prawym przyciskiem myszy Komórka, ten nowy element pojawi się po kliknięciu prawym przyciskiem komórki w dowolnym skoroszycie (oraz innych skoroszytach, które otworzysz później). Innymi słowy, modyfikacje menu skrótów zostały dokonane na poziomie aplikacji .

Excel 2013 i Excel 2016 używają interfejsu pojedynczego dokumentu, co wpływa na menu skrótów. Zmiany wprowadzane w menu skrótów mają wpływ tylko na aktywne okno skoroszytu. Po wykonaniu kodu modyfikującego menu skrótów menu skrótów dla okien innych niż aktywne okno nie zostanie zmienione. To radykalne odejście od tego, jak kiedyś działały rzeczy.

Kolejny zwrot: jeśli użytkownik otworzy skoroszyt (lub utworzy nowy skoroszyt), gdy aktywne okno wyświetla zmodyfikowane menu skrótów, nowy skoroszyt wyświetla również zmodyfikowane menu skrótów. Innymi słowy, nowe okna wyświetlają te same menu skrótów, co okno, które było aktywne podczas otwierania nowych okien.

Konkluzja: W przeszłości, jeśli otworzyłeś skoroszyt lub dodatek ze zmodyfikowanymi menu skrótów, możesz mieć pewność, że zmodyfikowane menu skrótów będą dostępne we wszystkich skoroszytach. Nie masz już tej pewności.

Twórz niestandardowe menu skrótów w programie Access 2007

Okno projektowania makr różni się w programie Access 2007 w porównaniu z nowszymi wersjami, więc rozwiń poniższe sekcje, aby zapoznać się z nimi, jeśli używasz programu Access 2007.

Krok 1 w programie Access 2007: Utwórz grupę makr zawierającą polecenia menu

W tym kroku utworzysz grupę makr, z której każde makro będzie osobnym poleceniem w menu skrótów.

Co to jest grupa makr?

Grupa makr to pojedynczy obiekt makra, który zawiera dwa lub więcej niezależnych makr. Poszczególne makra identyfikuje się poprzez wpisanie nazwy każdego makra w kolumnie Nazwy makr. Na poniższej ilustracji  Macro3  jest grupą makr. NotFoundMsg  i  FoundMsg  to indywidualne makra w grupie, każde makro składa się z dwóch akcji makra.

Przykład grupy makr

Uwaga:  kolumna  Nazwa makra  jest domyślnie ukryta. Aby wyświetlić  kolumnę Nazwa makra  , na  karcie Projekt  w  grupie Pokaż/Ukryj  kliknij  Nazwy makr .

  1. Na  karcie Utwórz  w  grupie Inne  kliknij  opcję Makro . Jeśli to polecenie jest niedostępne, kliknij strzałkę pod  przyciskiem Moduł  lub  Moduł klasy  , a następnie kliknij  opcję Makro .

  2. Na  karcie Projektowanie  w  grupie Pokazywanie/ukrywanie  kliknij  Nazwy makr ,  aby wyświetlić  kolumnę Nazwa makra  .

  3. Dla każdego polecenia, które chcesz umieścić w niestandardowym menu skrótów:

    • W  kolumnie Nazwa makra  wpisz tekst, który chcesz wyświetlić w menu skrótów (na przykład „Drukuj raport” lub „Zapisz”).

      Uwaga:  Aby utworzyć klucz dostępu, dzięki któremu będziesz mógł wybierać polecenie za pomocą klawiatury, wpisz znak ampersand (&) przed literą, która ma być kluczem dostępu w nazwie polecenia (na przykład „&Zapisz”). Litera ta zostanie podkreślona w menu.
    • W  kolumnie Akcja  wybierz pierwszą akcję, którą chcesz wykonać po kliknięciu polecenia w menu skrótów.

    • Jeśli po wybraniu tego polecenia chcesz wykonać więcej akcji, dodaj je w kolejnych wierszach. Dla każdej kolejnej akcji pozostaw  pustą komórkę Nazwa makra  .

      Uwaga:  Aby utworzyć linię pomiędzy dwoma poleceniami menu, wpisz łącznik (-) w  kolumnie Nazwa makra  pomiędzy odpowiednimi poleceniami menu.
  4. Zapisz i nazwij makro, na przykład   mcrShortcutMenuCommands .

Na poniższej ilustracji przedstawiono przykładową grupę makr dla menu niestandardowego lub menu skrótów.

Grupa makr menu w widoku Projekt

Krok 2 w programie Access 2007: Utwórz makro tworzące menu

Ten krok może wydawać się zbędny, ale aby utworzyć menu skrótów z grupy makr utworzonej w kroku 1, należy utworzyć drugie makro zawierające  akcję makra DodajMenu  . To makro jest czasami nazywane „makrem menu”.

  1. Na  karcie Utwórz  w  grupie Inne  kliknij  opcję Makro . Jeśli to polecenie jest niedostępne, kliknij strzałkę pod  przyciskiem Moduł  lub  Moduł klasy  , a następnie kliknij  opcję Makro .

  2. W pierwszej linii makra wybierz opcję  DodajMenu  z  listy Akcja  .

  3. W  obszarze Argumenty akcji w  polu Nazwa menu  wpisz nazwę menu (na przykład „Polecenia raportu”). Argument ten nie jest wymagany, ale jest zalecany, jeśli w kroku 3 planujesz dodać menu do karty Wstążki (takiej jak karta  Dodatki  w formularzu lub raporcie). Jeśli menu zostanie dodane jako menu skrótów w kroku 3,  argument Nazwa menu  zostanie zignorowany.

  4. W  polu Nazwa makra menu  wprowadź nazwę makra utworzonego w kroku 1.

  5. Zapisz i nazwij makro, na przykład  mcrAddShortcutMenu .

Poniższa ilustracja przedstawia przykładowe makro menu, które tworzy menu zaprojektowane w kroku 1.

Makro menu w widoku Projekt

Krok 3 w programie Access 2007: Dołącz menu do kontrolki, formularza, raportu lub bazy danych

W zależności od tego, gdzie ma się pojawić menu, użyj jednej lub kilku z poniższych procedur.

  • Dodaj menu do karty Dodatki formularza lub raportu

    Użyj tej procedury, jeśli chcesz, aby menu pojawiło się na  karcie Dodatki  dla określonego formularza lub raportu, jak pokazano na poniższej ilustracji:

    Karta Dodatki zawierająca menu niestandardowe

    1. W okienku nawigacji kliknij prawym przyciskiem myszy formularz lub raport, w którym ma się pojawić menu, a następnie kliknij opcję  Widok projektu .

    2. Na  karcie Projekt  w  grupie Pokaż/Ukryj  kliknij  Arkusz właściwości .

    3. Wybierz cały obiekt, wybierając opcję  Formularz  lub  Raport  z listy u góry panelu zadań Arkusz właściwości.

    4. Na  karcie Inne  w arkuszu właściwości, w  polu właściwości Menu skrótów  wpisz nazwę makra utworzonego w kroku 2 (w tym przykładzie „mcrAddShortcutMenu”).

      Przy następnym otwarciu formularza lub raportu   na Wstążce pojawi się karta Dodatki . Kliknij zakładkę, aby zobaczyć menu.

      Aby uzyskać więcej informacji na temat technik dostosowywania Wstążki, takich jak dodawanie kart niestandardowych lub ukrywanie kart domyślnych, zobacz artykuł  Tworzenie niestandardowej wstążki w programie Access .

      Wstążka jest składnikiem interfejsu użytkownika Microsoft Office Fluent.

  • Dodaj menu jako menu skrótów formularza, raportu lub kontrolki

    Użyj tej procedury, jeśli chcesz, aby menu było wyświetlane po kliknięciu prawym przyciskiem myszy określonego formularza, raportu lub kontrolki, jak pokazano na poniższej ilustracji:

    Proste menu skrótów

    1. W okienku nawigacji kliknij prawym przyciskiem myszy formularz lub raport, w którym chcesz wyświetlić menu skrótów, a następnie kliknij opcję  Widok projektu .

    2. Na  karcie Projekt  w  grupie Pokaż/Ukryj  kliknij  Arkusz właściwości .

    3. Wybierz kontrolkę lub obiekt, do którego chcesz dołączyć menu skrótów.

      Uwaga:  Aby wybrać cały obiekt, wybierz opcję  Formularz  lub  Raport  z listy u góry panelu zadań Arkusz właściwości.

    4. Na  karcie Inne  w arkuszu właściwości, w  polu właściwości paska menu skrótów  wpisz nazwę makra utworzonego w kroku 2 (w tym przykładzie „mcrAddShortcutMenu”).

  • Dodaj menu jako globalne menu skrótów

    Ta procedura zastępuje wszystkie domyślne menu skrótów w bieżącej bazie danych. Nie ma to wpływu na niestandardowe menu skrótów dołączone do określonych formularzy, raportów lub kontrolek.

    1. Kliknij  Przycisk pakietu Microsoft Office  , a następnie kliknij  Opcje dostępu .

    2. W  oknie dialogowym Opcje programu Access  kliknij opcję  Bieżąca baza danych .

    3. W obszarze  Opcje wstążki i paska narzędzi w  polu paska menu skrótów  wpisz nazwę makra utworzonego w kroku 2 (w tym przykładzie „mcrAddShortcutMenu”).

  • Niestandardowe menu skrótów zastępują domyślne menu skrótów dla obiektów, do których są dołączone. Jeśli chcesz zachować określone polecenia programu Access do użycia w tych menu, użyj  akcji UruchomPolecenie  , aby umieścić je w grupach makr odpowiadających menu, w których chcesz je umieścić.

  • Niestandardowe menu skrótów dołączone do kontrolki zastępuje wszelkie inne niestandardowe menu skrótów zdefiniowane w bazie danych. Niestandardowe menu skrótów dołączone do formularza lub raportu zastępuje niestandardowe globalne menu skrótów.

  • Jeśli określisz makro menu dla formularza, raportu lub bazy danych, program Access uruchomi to makro menu przy każdym otwarciu formularza, raportu lub bazy danych. Jeśli dokonasz zmian w makrze menu lub grupie makr definiującej jego polecenia, gdy formularz, raport lub baza danych są otwarte, musisz zamknąć formularz, raport lub bazę danych i otworzyć je ponownie, aby zobaczyć zmiany.

  • Aby utworzyć podmenu, wykonaj krok 1 i utwórz oddzielną grupę makr zawierającą tylko polecenia podmenu. Następnie wykonaj ponownie krok 1, aby zdefiniować polecenia dla menu wyższego poziomu. Dodaj podmenu jako element w grupie makr wyższego poziomu za pomocą  akcji makra DodajMenu  . Na poniższej ilustracji przedstawiono grupę makr dla menu zawierającego podmenu, a następnie pokazano wynikowe menu skrótów. Trzecia linia w grupie makr tworzy  podmenu Eksportuj do...  ( mcrSubMenu ).

    Menu skrótów zawierające podmenu

    Można utworzyć wiele poziomów podmenu, korzystając z  akcji DodajMenu  w grupach makr dla każdego poziomu menu. Upewnij się, że   dla każdej  akcji AddMenu podano wartość argumentu Nazwa menu  , w przeciwnym razie podmenu pojawi się jako pusta linia w menu wyższego poziomu.

  • Warunki makro są obsługiwane wyłącznie w makrze menu najwyższego poziomu. Innymi słowy, możesz użyć warunku w makrze menu, aby określić, czy będzie wyświetlane określone menu lub menu skrótów, ale tylko w przypadku menu na najwyższym poziomie. Nie można używać warunków do wyświetlania lub ukrywania poleceń lub podmenu w menu. Możesz także użyć warunku, aby ukryć lub wyświetlić niestandardowe menu skrótów lub globalne menu skrótów.

  • Opcjonalnie makro menu utworzone w kroku 2 może być częścią grupy makr. Na przykład, jeśli masz kilka menu skrótów dla różnych obiektów lub kontrolek, możesz utworzyć pojedynczy obiekt makro zawierający wszystkie niezbędne makra menu. Upewnij się, że wyświetlana jest  kolumna Nazwa makra  i wpisz unikalną nazwę dla każdego makra. W kroku 3 w odniesieniu do makra użyj następującego zapisu:  nazwa_makra_grupy.nazwa_makro . Na przykład  mcrAddShortcutMenus.AddMenu2 .


Inteligentny arkusz 9.1.1

Inteligentny arkusz 9.1.1

Smartsheet to dynamiczna platforma robocza, która umożliwia zarządzanie projektami, tworzenie przepływów pracy i współpracę z zespołem.

SharePointa

SharePointa

SharePoint to internetowy system współpracy, który wykorzystuje różnorodne aplikacje do obsługi przepływu pracy, bazy danych „list” i inne komponenty sieciowe, a także funkcje zabezpieczeń zapewniające kontrolę nad współpracą grup biznesowych.

Wieczny kalendarz 1.0.38/1.0.36

Wieczny kalendarz 1.0.38/1.0.36

Van Nien Calendar to aplikacja do przeglądania kalendarza w telefonie, która pomaga szybko sprawdzić na telefonie datę księżycowo-słoneczną i uporządkować ważne prace.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook to aplikacja biznesowa i produktywna opracowana przez Microsoft Corporation.

Kliknij w górę

Kliknij w górę

ClickUp to jedna z najwyżej ocenianych platform zwiększających produktywność dla każdej firmy. Duże firmy, takie jak Google, Booking.com, San Diego Padres i Uber, korzystają z ClickUp, aby zwiększyć produktywność w miejscu pracy.

Przeglądarka PDF-XChange 2.5.322.10

Przeglądarka PDF-XChange 2.5.322.10

PDF stał się powszechnie używanym formatem do czytania, tworzenia i wysyłania dokumentów tekstowych. Z kolei wzrosła liczba programów wykorzystywanych do tego typu dokumentacji. Przeglądarka PDF-XChange Viewer należy do rosnącej liczby przeglądarek plików PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferuje kompletny zestaw aplikacji Office, które mogą konkurować z Microsoft 365, zwłaszcza w programach Excel, PowerPoint i Word. Pozwala efektywniej zarządzać projektami i obsługuje kilka formatów plików.

Pobierz iTaxviewer 1.8.7

Pobierz iTaxviewer 1.8.7

Oprogramowanie iTaxViewer jest obecnie najpopularniejszym oprogramowaniem do odczytu plików XML. To oprogramowanie jest aplikacją do odczytu elektronicznych deklaracji podatkowych w formacie XML Generalnego Departamentu Podatków.

Czytnik PDF Nitro

Czytnik PDF Nitro

Nitro PDF Reader to poręczny edytor plików PDF, który obejmuje wszystkie podstawowe zadania, które większość ludzi wykonuje codziennie z dokumentami PDF.

Czytnik Foxita 12

Czytnik Foxita 12

Foxit Reader to przede wszystkim czytnik plików PDF, który umożliwia także tworzenie plików PDF, podpisywanie ich, edycję i dodawanie adnotacji. Działa na systemach operacyjnych, dostępne są wtyczki do różnych programów z pakietu Microsoft Office.