Ndërsa bëheni të aftë me Excel VBA, kaloni shumë kohë duke punuar në Windows Code. Makrot që regjistroni ruhen në një modul dhe mund të shkruani kodin Excel VBA direkt në një modul VBA.
Minimizimi dhe maksimizimi i dritareve të kodit VBA
Nëse keni disa projekte të hapura, VBE mund të ketë shumë dritare Kodi në çdo kohë të caktuar.
Mbingarkesa e dritares së kodit nuk është një pamje e bukur.
Dritaret e kodit janë shumë të ngjashme me dritaret e librit të punës në Excel. Ju mund t'i minimizoni ato, t'i maksimizoni, t'i ndryshoni përmasat, t'i fshehni, t'i riorganizoni ato, etj. Shumica e njerëzve e kanë shumë më të lehtë të maksimizojnë dritaren e Kodit me të cilën po punojnë. Bërja e kësaj ju lejon të shihni më shumë kod dhe të mos shpërqendroheni.
Për të maksimizuar një dritare të Kodit, klikoni butonin Maksimizoni në shiritin e titullit të saj (mjaft pranë X). Ose thjesht klikoni dy herë në shiritin e titullit për ta maksimizuar. Për të rivendosur një dritare Kodi në madhësinë e saj origjinale, klikoni butonin Rivendos. Kur një dritare maksimizohet, shiriti i titullit të saj nuk është i dukshëm, kështu që do të gjeni butonin Restore poshtë shiritit të titullit VBE.
Ndonjëherë, mund të dëshironi të keni dy ose më shumë dritare të kodit të dukshme. Për shembull, mund të dëshironi të krahasoni kodin në dy module ose të kopjoni kodin nga një modul në tjetrin. Ju mund t'i rregulloni dritaret me dorë ose zgjidhni Dritare → Pllakë horizontalisht ose Dritare → Pllakë vertikale për t'i rregulluar ato automatikisht.
Mund të kaloni shpejt midis dritareve të kodit duke shtypur Ctrl+F6. Nëse e përsëritni atë kombinim të tasteve, vazhdoni të kaloni me biçikletë nëpër të gjitha dritaret e hapura të Kodit. Shtypja e Ctrl+Shift+F6 kalon nëpër dritare në rend të kundërt. (Për më shumë informacion, shikoni këto shkurtore të tastierës Excel VBA .)
Minimizimi i një dritareje Kodi e largon atë nga rruga. Ju gjithashtu mund të klikoni butonin Mbyll të dritares (i cili shfaq X) në shiritin e titullit të një dritareje Kodi për të mbyllur dritaren. (Mbyllja e një dritareje thjesht e fsheh; nuk do të humbisni asgjë.) Për ta hapur përsëri, thjesht klikoni dy herë mbi objektin e duhur në dritaren e Projektit. Nga rruga, puna me këto dritare të Kodit tingëllon më e vështirë se sa është në të vërtetë.
Krijimi i një moduli VBA
Në përgjithësi, një modul Excel VBA mund të mbajë tre lloje kodesh:
- Deklaratat: Një ose më shumë deklarata informacioni që i jepni VBA-së. Për shembull, mund të deklaroni llojin e të dhënave për variablat që planifikoni të përdorni ose të vendosni disa opsione të tjera në të gjithë modulin. Deklaratat janë në thelb deklarata të mirëmbajtjes. Ata në fakt nuk janë ekzekutuar.
- Nënprocedurat: Një grup instruksionesh programimi që, kur ekzekutohen, kryejnë disa veprime.
- Procedurat e funksionit: Një grup instruksionesh programimi që kthejnë një vlerë të vetme (të ngjashme në koncept me një funksion të fletës së punës, siç është SUM).
Një modul i vetëm VBA mund të ruajë çdo numër të nënprocedurave, procedurave të funksionit dhe deklaratave. E pra, nuk është një kufi - rreth 64.000 karaktere për modul. Nuk ka gjasa që madje të arrini kufirin e 64,000 karaktereve. Por nëse e keni bërë, zgjidhja është e thjeshtë: thjesht futni një modul të ri.
Mënyra se si organizoni një modul VBA varet plotësisht nga ju. Disa njerëz preferojnë të mbajnë të gjithë kodin e tyre VBA për një aplikacion në një modul të vetëm VBA; të tjerëve u pëlqen ta ndajnë kodin në disa module. Është një zgjedhje personale, ashtu si rregullimi i mobiljeve.
Marrja e kodit VBA në një modul
Një modul bosh VBA është si ushqimi i rremë që shihni në dritaret e disa restoranteve kineze; duket mirë, por nuk bën shumë për ty. Përpara se të bëni ndonjë gjë kuptimplote, duhet të keni një kod VBA në modulin VBA. Ju mund të merrni kodin VBA në një modul VBA në tre mënyra:
- Fusni kodin drejtpërdrejt.
- Përdorni regjistruesin makro Excel për të regjistruar veprimet tuaja dhe për t'i konvertuar ato veprime në kodin VBA.
- Kopjoni kodin nga një modul dhe ngjisni në një tjetër.
Futja e kodit Excel VBA drejtpërdrejt
Ndonjëherë, rruga më e mirë është ajo më e drejtpërdrejtë. Futja e kodit direkt përfshin … mirë, futjen e kodit drejtpërdrejt. Me fjalë të tjera, ju shkruani kodin duke përdorur tastierën tuaj. Futja dhe redaktimi i tekstit në një modul VBA funksionon siç mund të prisni. Mund të zgjidhni, kopjoni, prisni, ngjitni dhe bëni gjëra të tjera në tekst.
Përdorni tastin Tab për të futur në dhëmbë disa nga rreshtat për ta bërë kodin tuaj më të lehtë për t'u lexuar. Indensimi nuk është i nevojshëm, por është një zakon i mirë për t'u fituar. Ndërsa studioni kodimin e Excel VBA, do të kuptoni pse futja e rreshtave të kodit është e dobishme.
Një rresht i vetëm i kodit VBA mund të jetë aq i gjatë sa ju nevojitet. Megjithatë, ju mund të dëshironi të përdorni karakteret e vazhdimit të linjës për të ndarë linjat e gjata të kodit. Për të vazhduar një rresht të vetëm kodi (i njohur gjithashtu si një deklaratë) nga një rresht në tjetrin, përfundoni rreshtin e parë me një hapësirë të ndjekur nga një nënvizim (_). Pastaj vazhdoni deklaratën në rreshtin tjetër. Dhe mos harroni hapësirën. Një karakter nënvizues që nuk paraprihet nga një hapësirë nuk do ta bëjë punën.
Këtu është një shembull i një deklarate të vetme të ndarë në tre rreshta:
Selection.Rendit Key1:=Range("A1"), _
Rendi1:=xlNgjitje, Kreu:=xlGuess, _
Orientimi:=xlTopToPoshtë
Kjo deklaratë do të funksiononte saktësisht në të njëjtën mënyrë nëse do të futej në një rresht të vetëm (pa karaktere vijuese të rreshtit). Vini re se rreshtat e dytë dhe të tretë të kësaj deklarate janë të prera. Indentizimi është opsional, por ndihmon në sqarimin e faktit se këto rreshta nuk janë deklarata të veçanta.
Inxhinierët e veshur me të bardhë që projektuan VBE parashikuan që njerëzit do të bënin gabime. Prandaj, VBE ka nivele të shumta të zhbërjes dhe ribërjes. Nëse keni fshirë një deklaratë që nuk duhet ta kishit, klikoni butonin Zhbër në shiritin e veglave (ose shtypni Ctrl+Z) derisa deklarata të shfaqet sërish. Pas zhbërjes, mund të klikoni butonin Redo për të kryer ndryshimet që keni zhbërë.
A jeni gati për të futur një kod real? Provoni hapat e mëposhtëm:
Krijoni një libër të ri pune në Excel.
Shtypni Alt+F11 për të aktivizuar VBE.
Klikoni emrin e librit të ri të punës në dritaren e Projektit.
Zgjidhni Insert → Module për të futur një modul VBA në projekt.
Shkruani kodin e mëposhtëm në modul:
Nën-GessName()
Msg = "A është emri juaj " & Application.UserName & "?"
Përgjigje = MsgBox (Msg, vbPo Jo)
Nëse Ans = vbNo Atëherë MsgBox "Oh, mos ki parasysh."
Nëse Ans = vbPo Atëherë MsgBox "Unë duhet të jem psikik!"
Fundi Nën
Vendoseni kursorin kudo brenda tekstit që keni shkruar dhe shtypni F5 për të ekzekutuar procedurën.
F5 është një shkurtore për Run → Run Sub/UserForm. Nëse e keni futur saktë kodin, Excel e ekzekuton procedurën dhe ju mund t'i përgjigjeni kutisë së thjeshtë të dialogut. Teksti në kutinë e dialogut do të jetë i ndryshëm nga teksti i paraqitur këtu.
Procedura GuessName shfaq këtë kuti dialogu.
Kur futni kodin e renditur në Hapin 5, mund të vëreni se VBE bën disa rregullime në tekstin që futni. Për shembull, pasi të shkruani deklaratën Sub, VBE automatikisht fut deklaratën End Sub. Dhe nëse e lini hapësirën para ose pas një shenje të barabartë, VBE e fut hapësirën për ju. Gjithashtu, VBE ndryshon ngjyrën dhe kapitalizimin e disa teksteve. E gjithë kjo është krejtësisht normale. Është thjesht mënyra e VBE për t'i mbajtur gjërat të rregullta dhe të lexueshme.
Nëse keni ndjekur hapat e mëparshëm, sapo keni shkruar një procedurë VBA Sub, e njohur gjithashtu si një makro. Kur shtypni F5, Excel ekzekuton kodin dhe ndjek udhëzimet. Me fjalë të tjera, Excel vlerëson çdo deklaratë dhe bën atë që i keni thënë të bëjë. (Mos lejoni që kjo fuqi e sapogjetur t'ju shkojë në kokë.) Ju mund ta ekzekutoni këtë makro disa herë - megjithëse ka tendencë të humbasë tërheqjen e saj pas disa duzina herë.
Për regjistrim, kjo makro e thjeshtë Excel përdor konceptet e mëposhtme:
- Përcaktimi i një nënprocedure (rreshti i parë)
- Caktimi i vlerave variablave (Msg dhe Ans)
- Lidhja (bashkimi) i një vargu (duke përdorur operatorin &)
- Përdorimi i një funksioni të integruar VBA (MsgBox)
- Duke përdorur konstante të integruara VBA (vbYesNo, vbNo dhe vbYes)
- Përdorimi i një konstrukti If-Then (dy herë)
- Përfundimi i një nënprocedure (rreshti i fundit)
Përdorimi i makroregjistruesit Excel VBA
Një mënyrë tjetër për të futur kodin në një modul VBA është duke regjistruar veprimet tuaja, duke përdorur regjistruesin makro Excel.
Nga rruga, nuk ka absolutisht asnjë mënyrë që të regjistroni procedurën GuessName të treguar më lart. Mund të regjistroni vetëm gjërat që mund t'i bëni drejtpërdrejt në Excel. Shfaqja e një kutie mesazhesh nuk është në repertorin normal të Excel. (Është një gjë VBA.) Regjistruesi makro është i dobishëm, por në shumë raste, ndoshta do t'ju duhet të futni të paktën disa kode me dorë.
Këtu është një shembull hap pas hapi që tregon se si të regjistroni një makro që fut një fletë të re pune dhe fsheh të gjitha, përveç dhjetë rreshtave të parë dhe të gjitha, përveç dhjetë kolonave të para. Nëse dëshironi të provoni këtë shembull, filloni me një libër pune të ri, bosh në Excel dhe ndiqni këto hapa:
Aktivizoni një fletë pune në librin e punës.
Çdo fletë pune në Excel do të funksionojë.
Klikoni në skedën Zhvilluesi dhe sigurohuni që Përdor Referencat Relative të mos theksohet.
Kjo makro regjistrohet duke përdorur Referencat Absolute.
Zgjidhni Zhvillues → Kodi → Regjistro makro ose klikoni ikonën pranë treguesit Gati në skajin e majtë të shiritit të statusit.
Excel shfaq kutinë e tij të dialogut Record Macro.
Në kutinë e dialogut Record Macro, emërtojeni makronë TenByTen, specifikoni se dëshironi që makroja të ruhet në këtë Libër pune dhe shtypni Shift+T për tastin e shkurtores.
Makroja mund të ekzekutohet kur shtypni Ctrl+Shift+T.
Kliko OK për të filluar regjistrimin. Excel fut automatikisht një modul të ri VBA në projekt që korrespondon me librin aktiv të punës.
Nga kjo pikë e tutje, Excel i konverton veprimet tuaja në kodin VBA. Ndërsa jeni duke regjistruar, ikona në shiritin e statusit kthehet në një katror të vogël. Ky është një kujtesë se makroregjistruesi po funksionon. Mund të klikoni gjithashtu atë ikonë për të ndaluar makroregjistruesin.
Klikoni ikonën e Fletës së Re në të djathtë të skedës së fundit të fletës.
Excel fut një fletë të re pune.
Zgjidhni të gjithë kolonën K (kolona e 11-të) dhe shtypni Ctrl+Shift+shigjetën djathtas; pastaj kliko me të djathtën në çdo kolonë të zgjedhur dhe zgjidh Hide nga menyja e shkurtoreve.
Excel fsheh të gjitha kolonat e zgjedhura.
Zgjidhni të gjithë rreshtin 11 dhe shtypni Ctrl+Shift+shigjetën poshtë; pastaj kliko me të djathtën në çdo rresht të përzgjedhur dhe zgjidh Hide nga menyja e shkurtoreve.
Excel fsheh të gjitha kolonat e zgjedhura.
Zgjidhni qelizën A1.
Zgjidhni Zhvillues → Kodi → Ndalo regjistrimin ose klikoni butonin Ndalo regjistrimin në shiritin e statusit (katrori i vogël). Excel ndalon regjistrimin e veprimeve tuaja.
Për të parë këtë makro të sapo regjistruar, shtypni Alt+F11 për të aktivizuar VBE. Gjeni emrin e librit të punës në dritaren e Projektit. Ju shikoni që projekti ka një modul të ri të listuar. Emri i modulit varet nëse keni pasur ndonjë modul tjetër në librin e punës kur keni filluar të regjistroni makro. Nëse nuk e keni bërë, moduli quhet Module1. Mund të klikoni dy herë mbi modulin për të parë dritaren e Kodit për modulin.
Këtu është kodi i krijuar nga veprimet tuaja:
Nën TenByTen()
'
Makro TenByTen
'
Shkurtorja e tastierës: Ctrl+Shift+T
'
Sheets.Add After:=ActiveSheet
Columns("K:K").Zgjidh
Gama (Zgjedhja, Përzgjedhja. Fundi (xlToDjathtas)).Zgjidh
Selection.EntireColumn.Hidden = True
Rreshtat ("11:11"). Zgjidhni
Gama (Përzgjedhja, Përzgjedhja. Fundi (xlPoshtë)).Zgjidh
Selection.EntireRow.Hidden = E vërtetë
Gama ("A1"). Zgjidhni
Fundi Nën
Për të provuar këtë makro, aktivizoni çdo fletë pune dhe shtypni tastin e shkurtores që keni caktuar në Hapin 4: Ctrl+Shift+T.
Nëse nuk i keni caktuar një çelës shkurtore makros, mos u shqetësoni. Ja se si të shfaqni një listë të të gjitha makrove të disponueshme dhe të ekzekutoni atë që dëshironi:
Zgjidhni Zhvillues → Kodi → Makro. Tifozët e tastierës mund të shtypin Alt+F8.
Secila prej këtyre metodave shfaq një kuti dialogu që liston të gjitha makrot e disponueshme.
Zgjidhni makro në listë (në këtë rast, TenByTen).
Klikoni butonin Run.
Excel ekzekuton makro dhe ju merrni një fletë të re pune me dhjetë rreshta të dukshëm dhe dhjetë kolona të dukshme.
Mund të ekzekutoni çdo numër komandash dhe të kryeni çdo numër veprimesh ndërsa makroregjistruesi është në punë. Excel i përkthen me përkushtim veprimet dhe goditjet e tastit të miut në kodin VBA.
Dhe, sigurisht, mund të modifikoni gjithashtu makro pasi ta regjistroni atë. Për të testuar aftësitë tuaja të reja, provoni të redaktoni makro në mënyrë që ajo të futë një fletë pune me nëntë rreshta dhe kolona të dukshme — perfekte për një enigmë Sudoku.
Kopjimi i kodit VBA
Metoda përfundimtare për marrjen e kodit në një modul VBA është ta kopjoni atë nga një modul tjetër ose nga ndonjë vend tjetër (si p.sh. një faqe interneti). Për shembull, një procedurë Nën ose Funksion që shkruani për një projekt mund të jetë gjithashtu e dobishme në një projekt tjetër. Në vend që të humbni kohë për të rifutur kodin, mund të aktivizoni modulin dhe të përdorni procedurat normale të kopjimit dhe ngjitjes së Clipboard. (Me siguri ju pëlqejnë më shumë shkurtoret e tastierës Ctrl+C për të kopjuar dhe Ctrl+V për të ngjitur.) Pas ngjitjes së kodit në një modul VBA, mund ta modifikoni kodin nëse është e nevojshme.
Meqë ra fjala, do të gjeni shumë shembuj të kodit VBA në ueb. Nëse dëshironi t'i provoni, zgjidhni kodin në shfletuesin tuaj dhe shtypni Ctrl+C për ta kopjuar. Më pas aktivizoni një modul dhe shtypni Ctrl+V për ta ngjitur.
Kur kopjoni kodin nga një faqe interneti, ndonjëherë kërkon disa rregullime. Për shembull, karakteret e thonjëzave mund të jenë "citate inteligjente" dhe ato duhet të konvertohen në karaktere të thjeshta thonjëza. Dhe ndonjëherë, radhët e gjata mbështillen. Deklaratat e gabuara janë të lehta për t'u dalluar në VBE sepse ato shfaqen me të kuqe.