Pred Excelom 2007 so programerji VBA uporabljali predmet CommandBar za ustvarjanje menijev po meri, orodnih vrstic po meri in menijev za bližnjice (z desnim klikom). Začenši z Excelom 2007 je predmet CommandBar v precej nenavadnem položaju. Če napišete kodo za prilagajanje menija ali orodne vrstice, Excel to kodo prestreže in prezre veliko vaših ukazov.
Namesto da bi prikazal vašo dobro premišljeno izboljšavo vmesnika, Excel 2007 (tako kot novejše različice) preprosto shrani vaše prilagojene menije in orodne vrstice v vsestranski zavihek traku z imenom Dodatki.
Prilagoditve menija in orodne vrstice se končajo v skupini Dodatki → Ukazi menija ali v skupini Dodatki → Orodne vrstice po meri. Toda prilagajanje menijev bližnjic (ki uporablja tudi predmet CommandBar) še vedno deluje kot vedno - no, nekako.
Spodnja črta? Objekt CommandBar ni več zelo uporaben, vendar ostaja edini način za prilagajanje menijev bližnjic.
Dodajanje novega elementa v meni bližnjic celice
Spodaj boste našli vzorčno kodo, ki doda nov element v meni bližnjic, ki se prikaže, ko z desno tipko miške kliknete celico. Te primere bi morali biti sposobni prilagoditi svojim potrebam.
Pripomoček Change Case lahko nekoliko izboljšate tako, da ga omogočite v meniju bližnjic Cell.
Postopek AddToShortcut doda nov element menija v meni bližnjice Cell. Lahko ga prilagodite tako, da kaže na vaše lastne makre, tako da spremenite lastnosti Caption in OnAction predmeta z imenom NewControl.
Sub AddToShortCut()
Dim Bar Kot ukazna vrstica
Zatemni NewControl kot gumb CommandBar
DeleteFromShortcut
Nastavi vrstica = Application.CommandBars(»Celica«)
Nastavi NewControl = Bar.Controls.Add _
(Vrsta:=msoControlButton, ID:=1, _
začasno:=True)
Z NewControl
.Caption = »&Spremeni male črke«
.OnAction = "ChangeCase"
.Style = msoButtonIconAndCaption
Končaj z
Končni sub
Ko spremenite meni bližnjic, ta sprememba ostane v veljavi, dokler ne znova zaženete Excela. Z drugimi besedami, spremenjeni meniji bližnjic se ne ponastavijo, ko zaprete delovni zvezek, ki vsebuje kodo VBA. Če torej napišete kodo za spreminjanje menija bližnjic, skoraj vedno napišete kodo, da obrnete učinek vaše spremembe.
Postopek DeleteFromShortcut odstrani nov element menija iz menija bližnjice Cell:
Sub DeleteFromShortcut()
Ob napaki Nadaljuj naprej
Application.CommandBars(»Cell«).Kontroli _
(»&Spremeni male črke«).Izbriši
Končni sub
To prikazuje, kako se prikaže nov element menija, ko z desno tipko miške kliknete celico.
Bližnjični meni celice, ki prikazuje element menija po meri: Spremeni velike in male črke.
Prvi dejanski ukaz po deklaraciji nekaj spremenljivk pokliče proceduro DeleteFromShortcut. Ta izjava zagotavlja, da se v priročnem meniju celice prikaže samo en element menija Spremeni velikost črk. Poskusite komentirati to vrstico (dajte apostrof na začetku vrstice) in nekajkrat zaženite postopek – vendar naj vas ne zanese!
Z desno tipko miške kliknite celico in videli boste več primerkov menijske postavke Spremeni velikost črk. Znebite se vseh vnosov tako, da večkrat zaženete DeleteFromShortcut (enkrat za vsak dodatni element menija).
Končno potrebujete način, da dodate element menija bližnjic, ko je delovni zvezek odprt, in izbrišete element menija, ko je delovni zvezek zaprt. To je enostavno. Samo dodajte ta dva postopka dogodkov v kodni modul ThisWorkbook:
Zasebni delovni zvezek_Open()
Pokličite AddToShortCut
Končni sub
Private Sub Workbook_BeforeClose(Prekliči kot Boolean)
Pokličite DeleteFromShortcut
Končni sub
Procedura Workbook_Open se izvede, ko je delovni zvezek odprt, in Workbook_BeforeClose postopek se izvede, preden se delovni zvezek zapre. Samo tisto, kar je zdravnik naročil.
Kakšna je razlika v Excelu 2013 in Excelu 2016?
Če ste uporabljali VBA za delo s priročnimi meniji v programu Excel 2007 ali starejših, se morate zavedati pomembne spremembe.
V preteklosti, če je vaša koda spremenila meni bližnjic, je ta sprememba veljala za vse delovne zvezke. Če ste na primer dodali nov element v meni z desnim klikom na celico, bi se ta nov element pojavil, ko bi z desno tipko miške kliknili celico v katerem koli delovnem zvezku (in druge delovne zvezke, ki jih odprete pozneje). Z drugimi besedami, spremembe menija bližnjic so bile narejene na ravni aplikacije .
Excel 2013 in Excel 2016 uporabljata en sam vmesnik dokumenta, kar vpliva na menije bližnjic. Spremembe, ki jih naredite v menijih bližnjic, vplivajo samo na okno aktivnega delovnega zvezka. Ko izvedete kodo, ki spremeni meni bližnjic, se meni bližnjic za okna, ki niso aktivno okno, ne bo spremenil. To je radikalen odmik od tega, kako so stvari delovale.
Še en zasuk: če uporabnik odpre delovni zvezek (ali ustvari nov delovni zvezek), ko aktivno okno prikaže spremenjeni meni bližnjic, novi delovni zvezek prikaže tudi spremenjeni meni bližnjic. Z drugimi besedami, nova okna prikazujejo iste menije bližnjic kot okno, ki je bilo aktivno, ko so bila nova okna odprta.
Na koncu: če ste v preteklosti odprli delovni zvezek ali dodatek, ki je spremenil menije bližnjic, ste lahko bili prepričani, da bodo spremenjeni meniji bližnjic na voljo v vseh delovnih zvezkih. Tega zagotovila nimaš več.
Ustvarite priročne menije po meri v programu Access 2007
Okno za načrtovanje makra je drugačno v Accessu 2007 v primerjavi s poznejšimi različicami, zato razširite naslednje razdelke, če želite slediti, če uporabljate Access 2007.
1. korak za Access 2007: ustvarite skupino makrov, ki vsebuje menijske ukaze
V tem koraku ustvarite skupino makrov, od katerih bo vsak makro ločen ukaz v priročnem meniju.
Kaj je makro skupina?
Makro skupina je en sam makro objekt, ki vsebuje dva ali več neodvisnih makrov. Posamezne makre prepoznate tako, da v stolpec Imena makrov vnesete ime za vsak makro. Na naslednji sliki je Macro3 skupina makrov. NotFoundMsg in FoundMsg sta posamezna makra v skupini, pri čemer je vsak makro sestavljen iz dveh dejanj makra.
Opomba: Stolpec Ime makra je privzeto skrit. Če želite prikazati stolpec z imenom makra , na zavihku Načrt v skupini Pokaži/skrij kliknite Imena makrov .
-
Na zavihku Ustvari v skupini Drugo kliknite Makro . Če ta ukaz ni na voljo, kliknite puščico pod gumbom modula ali modula razreda in nato kliknite Makro .
-
Na zavihku Načrt v skupini Pokaži/skrij kliknite Imena makrov , da prikažete stolpec Ime makra .
-
Za vsak ukaz, ki ga želite v svojem priročnem meniju po meri:
-
V stolpec Ime makra vnesite besedilo, ki ga želite prikazati v priročnem meniju (na primer »Natisni poročilo« ali »Shrani«).
Opomba: Če želite ustvariti tipko za dostop, tako da lahko uporabite tipkovnico za izbiro ukaza, vnesite znak & (&) pred črko, za katero želite, da je tipka za dostop v imenu ukaza (na primer "&Shrani"). Ta črka bo v meniju podčrtana.
-
V stolpcu Dejanje izberite prvo dejanje, ki ga želite izvesti, ko kliknete ukaz v priročnem meniju.
-
Če obstaja več dejanj, ki jih želite izvesti, ko izberete ta ukaz, jih dodajte v naslednjih vrsticah. Za vsako naslednje dejanje pustite celico Ime makra prazno.
Opomba: Če želite ustvariti črto med dvema ukazoma menija, vnesite vezaj (-) v stolpec Ime makra med ustreznima ukazoma menija.
-
Shranite in poimenujte makro, na primer mcrShortcutMenuCommands .
Naslednja slika prikazuje primer skupine makrov za meni po meri ali priročni meni.
2. korak za Access 2007: ustvarite makro, ki ustvari meni
Ta korak se morda zdi odvečen, toda če želite ustvariti priročni meni iz skupine makrov, ki ste jo ustvarili v 1. koraku, morate ustvariti drugi makro, ki vsebuje dejanje makra AddMenu . Ta makro se včasih imenuje "menijski makro".
-
Na zavihku Ustvari v skupini Drugo kliknite Makro . Če ta ukaz ni na voljo, kliknite puščico pod gumbom modula ali modula razreda in nato kliknite Makro .
-
V prvi vrstici makra izberite AddMenu na seznamu Action .
-
Pod Argumenti dejanja v polje Ime menija vnesite ime menija (na primer »Ukazi poročila«). Ta argument ni obvezen, vendar je priporočljiv, če nameravate v 3. koraku dodati meni na zavihek Trak (kot je zavihek Dodatki v obrazcu ali poročilu). Če je meni dodan kot priročni meni v 3. koraku, je argument Ime menija prezrt.
-
V polje Ime makra menija vnesite ime makra, ki ste ga ustvarili v 1. koraku.
-
Shranite in poimenujte makro, na primer mcrAddShortcutMenu .
Naslednja slika prikazuje primer makra menija, ki ustvari meni, ki smo ga oblikovali v 1. koraku.
3. korak za Access 2007: pripnite meni kontrolniku, obrazcu, poročilu ali zbirki podatkov
Odvisno od tega, kje želite, da se prikaže meni, uporabite enega ali več naslednjih postopkov.
-
Dodajte meni na zavihek Dodatki v obrazcu ali poročilu
Uporabite ta postopek, če želite, da se meni prikaže na kartici Dodatki za določen obrazec ali poročilo, kot je prikazano na naslednji sliki:
-
V podoknu za krmarjenje z desno tipko miške kliknite obrazec ali poročilo, kjer želite, da se prikaže meni, in nato kliknite Pogled načrta .
-
Na zavihku Načrt v skupini Pokaži/skrij kliknite List lastnosti .
-
Izberite celoten predmet tako, da izberete Obrazec ali Poročilo s seznama na vrhu opravilnega podokna List lastnosti.
-
Na zavihku Drugo na listu z lastnostmi v polje lastnosti menija bližnjic vnesite ime makra, ki ste ga ustvarili v 2. koraku (v tem primeru »mcrAddShortcutMenu«).
Ko naslednjič odprete obrazec ali poročilo, se na traku prikaže zavihek Dodatki . Kliknite zavihek, da vidite meni.
Za več informacij o tehnikah prilagajanja traku, kot je dodajanje zavihkov po meri ali skrivanje privzetih zavihkov, glejte članek Ustvarjanje traku po meri v Accessu .
Trak je komponenta uporabniškega vmesnika Microsoft Office Fluent.
-
Dodajte meni kot priročni meni za obrazec, poročilo ali kontrolnik
Uporabite ta postopek, če želite, da se meni prikaže, ko z desno tipko miške kliknete določen obrazec, poročilo ali kontrolnik, kot je prikazano na naslednji sliki:
-
V podoknu za krmarjenje z desno tipko miške kliknite obrazec ali poročilo, kjer želite, da se prikaže priročni meni, in nato kliknite Pogled načrta .
-
Na zavihku Načrt v skupini Pokaži/skrij kliknite List lastnosti .
-
Izberite kontrolnik ali predmet, ki mu želite pripeti priročni meni.
Opomba: Če želite izbrati celoten predmet, izberite Obrazec ali Poročilo s seznama na vrhu opravilnega podokna List lastnosti.
-
Na zavihku Drugo na listu z lastnostmi v polje z lastnostmi Vrstica bližnjičnega menija vnesite ime makra, ki ste ga ustvarili v 2. koraku (v tem primeru »mcrAddShortcutMenu«).
-
Dodajte meni kot globalni priročni meni
Ta postopek nadomesti vse privzete priročne menije v trenutni bazi podatkov. To ne vpliva na priročne menije po meri, ki ste jih priložili določenim obrazcem, poročilom ali kontrolnikom.
-
Kliknite gumb Microsoft Office in nato Accessove možnosti .
-
V pogovornem oknu Accessove možnosti kliknite Trenutna zbirka podatkov .
-
V razdelku Možnosti traku in orodne vrstice v polje Vrstica bližnjičnega menija vnesite ime makra, ki ste ga ustvarili v 2. koraku (v tem primeru »mcrAddShortcutMenu«).
-
Priročni meniji po meri nadomestijo privzete priročne menije za predmete, ki so jim priloženi. Če želite obdržati določene Accessove ukaze za uporabo v teh menijih, uporabite dejanje RunCommand , da ukaze postavite v skupine makrov za menije, v katerih jih želite.
-
Priročni meni po meri, ki je priložen kontrolniku, nadomesti vse druge priročne menije po meri, ki so definirani v bazi podatkov. Priročni meni po meri, ki je priložen obrazcu ali poročilu, nadomesti globalni priročni meni po meri.
-
Ko določite menijski makro za obrazec ali poročilo ali za zbirko podatkov, Access zažene ta menijski makro vsakič, ko se odpre obrazec, poročilo ali zbirka podatkov. Če spremenite menijski makro ali skupino makrov, ki definira njegove ukaze, medtem ko je obrazec, poročilo ali zbirka podatkov odprt, morate zapreti obrazec, poročilo ali zbirko podatkov in jih znova odpreti, da vidite spremembe.
-
Če želite ustvariti podmeni, sledite 1. koraku, da ustvarite ločeno skupino makrov, ki vsebuje samo ukaze podmenija. Nato znova sledite 1. koraku, da določite ukaze za meni višje ravni. Dodajte podmeni kot element v skupini makrov višje ravni z uporabo dejanja makra AddMenu . Naslednja ilustracija prikazuje skupino makrov za meni, ki vsebuje podmeni, nato pa prikaže nastali priročni meni. Tretja vrstica v skupini makrov ustvari podmeni Izvozi v ... ( mcrSubMenu ).
Ustvarite lahko več ravni podmenijev z uporabo dejanj AddMenu v skupinah makrov za vsako raven menija. Prepričajte se, da ste podali vrednost za argument Ime menija za vsako dejanje AddMenu , sicer bo podmeni prikazan kot prazna vrstica v meniju višje ravni.
-
Pogoji makra so podprti samo v makru menija na najvišji ravni. Z drugimi besedami, lahko uporabite pogoj v makru menija, da določite, ali bo določen meni ali priročni meni prikazan, vendar le za menije na najvišji ravni. Pogojev ne morete uporabiti za prikaz ali skrivanje ukazov ali podmenijev v menijih. Uporabite lahko tudi pogoj, da skrijete ali prikažete priročni meni po meri ali globalni priročni meni.
-
Po želji je lahko menijski makro, ki ga ustvarite v 2. koraku, del skupine makrov. Če imate na primer več priročnih menijev za različne predmete ali kontrolnike, lahko ustvarite en sam predmet makra, ki vsebuje vse potrebne menijske makre. Prepričajte se, da je prikazan stolpec Ime makra in vnesite edinstveno ime za vsak makro. V 3. koraku uporabite naslednji zapis za sklicevanje na makro: imemakroskupine.imemakra . Na primer, mcrAddShortcutMenus.AddMenu2 .