Excel 2016 otseteemenüüde kohandamine VBA-s

Enne Excel 2007 kasutasid VBA programmeerijad CommandBar objekti kohandatud menüüde, kohandatud tööriistaribade ja kohandatud otsetee (paremklõpsu) menüüde loomiseks. Alates Excel 2007-st on CommandBar objekt üsna kummalises positsioonis. Kui kirjutate koodi menüü või tööriistariba kohandamiseks, püüab Excel selle koodi kinni ja ignoreerib paljusid teie käske.

Selle asemel, et kuvada hästi läbimõeldud liidese täiustusi, lisab Excel 2007 (nagu ka hilisemad versioonid) lihtsalt teie kohandatud menüüd ja tööriistaribad kõikehõlmavale lindi vahekaardile nimega Lisandmoodulid.

Menüü- ja tööriistariba kohandused jõuavad gruppi Lisandmoodulid → Menüükäsud või Lisandmoodulid → Kohandatud tööriistaribad. Kuid kiirmenüüde kohandamine (mis kasutab ka CommandBar objekti) töötab endiselt nagu alati – noh, omamoodi.

Alumine joon? CommandBar objekt pole enam eriti kasulik, kuid see jääb ainsaks viisiks otseteemenüüde kohandamiseks.

Lahtri kiirmenüüsse uue üksuse lisamine

Altpoolt leiate näidiskoodi, mis lisab lahtril paremklõpsamisel ilmuvasse kiirmenüüsse uue üksuse. Peaksite saama neid näiteid oma vajadustega kohandada.

Saate seda utiliiti Change Case veidi täiustada, tehes selle kättesaadavaks kiirmenüüst Cell.

Protseduur AddToShortcut lisab lahtri kiirmenüüsse uue menüüelemendi. Saate seda kohandada nii, et see osutaks teie enda makrodele, muutes objekti nimega NewControl atribuute Caption ja OnAction.

Sub AddToShortCut()
  Dim Bar nagu CommandBar
  Dim New Control as CommandBar Button
  DeleteFromShortcut
  Määra riba = Application.CommandBars ("Cell")
  Määra NewControl = Bar.Controls.Add _
     (Tüüp:=msoControlButton, ID:=1, _
     ajutine:=Tõsi)
  NewControliga
    .Caption = "&Muuda suurtähti"
    .OnAction = "ChangeCase"
    .Style = msoButtonIconAndCaption
  Lõpeta
Lõpeta alam

Kui muudate kiirmenüüd, jääb see muudatus jõusse kuni Exceli taaskäivitamiseni. Teisisõnu, muudetud kiirmenüüd ei lähtestu, kui sulgete VBA-koodi sisaldava töövihiku. Seega, kui kirjutate kiirmenüü muutmiseks koodi, kirjutate peaaegu alati koodi, et muuta muudatuse mõju vastupidiseks.

Protseduur DeleteFromShortcut eemaldab uue menüüelemendi lahtri kiirmenüüst:

Sub DeleteFromShortcut()
  Vea korral Jätka järgmisena
  Application.CommandBars (“Cell”). Juhtelemendid _
    (“&Muuda suurtähte”). Kustuta
Lõpeta alam

See näitab, kuidas uus menüüelement kuvatakse pärast lahtril paremklõpsamist.

Excel 2016 otseteemenüüde kohandamine VBA-s

Lahtri kiirmenüü, mis näitab kohandatud menüüüksust: Change Case.

Esimene tegelik käsk pärast paari muutuja deklareerimist kutsub esile protseduuri DeleteFromShortcut. See avaldus tagab, et kiirmenüüs Lahter kuvatakse ainult üks menüükäsk Muuda tähte. Proovige seda rida kommenteerida (pange rea algusesse apostroof) ja käivitage protseduur paar korda – kuid ärge laske end sellest endast välja lasta!

Paremklõpsake lahtrit ja näete mitut menüüüksuse Change Case esinemisjuhtu. Vabanege kõigist kirjetest, käivitades DeleteFromShortcuti mitu korda (üks kord iga täiendava menüüüksuse jaoks).

Lõpuks on teil vaja võimalust lisada töövihiku avamisel kiirmenüü üksus ja töövihiku sulgemisel see menüüelement kustutada. Seda on lihtne teha. Lihtsalt lisage ThisWorkbooki koodimoodulisse need kaks sündmuseprotseduuri:

Privaatne alamtöövihik_Open()
Helistage AddToShortCut
Lõpeta alam
Privaatne alamtöövihik_BeforeClose (Tühista kui Boolean)
Helistage valikule DeleteFromShortcut
Lõpeta alam

Protseduur Workbook_Open käivitatakse töövihiku avamisel ja protseduur Workbook_BeforeClose enne töövihiku sulgemist. Just see, mida arst määras.

Mille poolest Excel 2013 ja Excel 2016 erinevad?

Kui olete kasutanud Excel 2007 või varasemas versioonis kiirmenüüdega töötamiseks VBA-d, peate olema teadlikud olulisest muudatusest.

Varem, kui teie kood muutis kiirmenüüd, kehtis see muudatus kõigi töövihikute puhul. Näiteks kui lisasite lahtri paremklõpsumenüüsse uue üksuse, ilmub see uus üksus, kui paremklõpsate mis tahes töövihiku lahtril (lisaks muudes töövihikutes, mille avate hiljem). Teisisõnu, kiirmenüü muudatusi tehti rakenduse tasemel.

Excel 2013 ja Excel 2016 kasutavad ühte dokumendiliidest ja see mõjutab kiirmenüüd. Otsemenüüdes tehtavad muudatused mõjutavad ainult aktiivset töövihiku akent. Kui käivitate kiirmenüüd muutva koodi, siis muude akende kui aktiivse akna kiirmenüüd ei muudeta. See on radikaalne kõrvalekalle sellest, kuidas asjad varem toimisid.

Veel üks pööre: kui kasutaja avab töövihiku (või loob uue töövihiku), kui aktiivses aknas kuvatakse muudetud kiirmenüü, kuvatakse uues töövihikus ka muudetud kiirmenüü. Teisisõnu, uued aknad kuvavad samad kiirmenüüd nagu aken, mis oli aktiivne uute akende avamisel.

Alumine rida: kui avasite varem töövihiku või lisandmooduli, milles on muudetud kiirmenüüd, võisite olla kindel, et muudetud kiirmenüüd on saadaval kõigis töövihikutes. Teil pole enam seda kindlust.

Leave a Comment

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

Uurige kümmet nõuannet Microsoft Teamsiga parema koosolekukogemuse saamiseks, sealhulgas märkmete tegemine, tausta hägustamine, vaigistamine ja koosolekute salvestamine.

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Lühikeses Word 2013 dokumendis saate kommentaare hõlpsalt sirvida ja uurida. Siit leiate samm-sammult, kuidas kommentaare lugeda ja eemaldada.

Kuidas parandada Word 2016 tavalist malli

Kuidas parandada Word 2016 tavalist malli

Mõnikord varitseb kurjus selles, mis peaks olema Word 2016 peamises mõistlikkuse hoidlas: tavalises mallifailis. Õpi, kuidas taastada normaalne mall ja eemaldada probleemid.

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s, et luua selgem ja professionaalsem ilme. Meie juhend aitab sul lihtsasti navigeerida Wordi funktsioonide kaudu ja tutvustab esimeses reas taande ning rippuva taande lisamise viise.

Kuidas Outlook 2016-s uusi kiireid samme luua

Kuidas Outlook 2016-s uusi kiireid samme luua

Lisaks kuuele kiirtoimingule, mis kuvatakse Outlooki esmakordsel installimisel, on teil valida veelgi rohkemate Quick Step mallide hulgast.

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kui olete esitluse ajal PowerPointi slaididele joonistamiseks kasutanud pliiatsit või markerit, saate joonised järgmise esitluse jaoks salvestada või need kustutada, nii et järgmisel näitamisel alustate puhaste PowerPointi slaididega. Pliiatsi ja markeri jooniste kustutamiseks järgige neid juhiseid: joonte kustutamine […]

Stiili teegi sisu rakenduses SharePoint 2010

Stiili teegi sisu rakenduses SharePoint 2010

Style'i teek sisaldab CSS-faile, XSL-faile ja eelmääratletud mallilehtede, lehepaigutuste ja juhtelementide poolt kasutatavaid pilte rakenduses SharePoint 2010. CSS-failide leidmiseks avaldamissaidi stiiliteegist: valige saidi toimingud → vaade. Kogu saidi sisu. Ilmub saidi sisu. Style raamatukogu asub […]

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Ärge uputage oma publikut tohutute numbritega. Microsoft Excelis saate parandada oma armatuurlaudade ja aruannete loetavust, vormindades numbrid tuhandetes või miljonites.

Kuidas SharePointi saite jagada ja jälgida

Kuidas SharePointi saite jagada ja jälgida

Siit saate teada, kuidas kasutada SharePointi suhtlusvõrgustiku tööriistu, mis võimaldavad üksikisikutel ja rühmadel suhelda, koostööd teha, jagada ja ühendada.

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Julia kuupäevi kasutatakse tootmiskeskkondades sageli ajatemplina ja partiinumbri kiirviitena. Seda tüüpi kuupäevade kodeerimine võimaldab jaemüüjatel, tarbijatel ja teenindusagentidel tuvastada toote valmistamise aja ja seega toote vanuse. Juliuse kuupäevi kasutatakse ka programmeerimises, sõjaväes ja astronoomias. Erinevad […]