Excel VBA kodēšana: darbs ar koda logu

Kļūstot par prasmēm darbā ar Excel VBA, jūs pavadāt daudz laika, strādājot koda logos. Ierakstītie makro tiek glabāti modulī, un jūs varat ierakstīt Excel VBA kodu tieši VBA modulī.

VBA koda logu samazināšana un palielināšana

Ja jums ir atvērti vairāki projekti, VBE jebkurā laikā var būt daudz koda logu.

Excel VBA kodēšana: darbs ar koda logu

Koda loga pārslodze nav patīkams skats.

Koda logi ir līdzīgi darbgrāmatas logi programmā Excel. Varat tos samazināt, palielināt, mainīt izmērus, paslēpt, pārkārtot utt. Lielākajai daļai cilvēku ir daudz vieglāk palielināt koda logu, pie kura viņi strādā. To darot, varat redzēt vairāk koda un novērst uzmanību.

Lai palielinātu koda logu, noklikšķiniet uz pogas Maksimizēt tā virsrakstjoslā (tieši blakus X). Vai vienkārši veiciet dubultklikšķi uz tās virsrakstjoslas, lai to palielinātu. Lai atjaunotu koda loga sākotnējo izmēru, noklikšķiniet uz pogas Atjaunot. Kad logs ir maksimizēts, tā virsrakstjosla nav redzama, tāpēc poga Atjaunot atrodas zem VBE virsrakstjoslas.

Dažreiz var vēlēties, lai būtu redzami divi vai vairāki koda logi. Piemēram, iespējams, vēlēsities salīdzināt kodu divos moduļos vai kopēt kodu no viena moduļa uz citu. Varat kārtot logus manuāli vai izvēlēties Logs → Flīzēšana horizontāli vai Logs → Flīzēt vertikāli, lai tos sakārtotu automātiski.

Varat ātri pārslēgties starp koda logiem, nospiežot Ctrl+F6. Ja atkārtojat šo taustiņu kombināciju, jūs turpināsit pārvietoties pa visiem atvērtajiem koda logiem. Nospiežot taustiņu kombināciju Ctrl+Shift+F6, tiek atvērti logi apgrieztā secībā. (Lai iegūtu plašāku informāciju, skatiet šos Excel VBA īsinājumtaustiņus .)

Samazinot koda logu, tas tiek novērsts. Lai aizvērtu logu, koda loga virsrakstjoslā varat arī noklikšķināt uz loga pogas Aizvērt (kas parāda X). (Aizverot logu, tas vienkārši tiek paslēpts; jūs neko nezaudēsit.) Lai to atvērtu vēlreiz, vienkārši veiciet dubultklikšķi uz atbilstošā objekta projekta logā. Starp citu, darbs ar šiem Code logiem izklausās grūtāks nekā patiesībā ir.

VBA moduļa izveide

Parasti Excel VBA modulī var būt trīs veidu kodi:

  • Deklarācijas: viens vai vairāki informācijas paziņojumi, ko sniedzat VBA. Piemēram, varat deklarēt datu tipu mainīgajiem, kurus plānojat izmantot, vai iestatīt dažas citas moduļa mēroga opcijas. Deklarācijas būtībā ir mājturības paziņojumi. Tie faktiski netiek izpildīti.
  • Apakšprocedūras: programmēšanas instrukciju kopa, kas, izpildot, veic kādu darbību.
  • Funkciju procedūras: programmēšanas instrukciju kopa, kas atgriež vienu vērtību (koncepcijas ziņā līdzīga darblapas funkcijai, piemēram, SUM).

Viens VBA modulis var uzglabāt neierobežotu skaitu apakšprocedūru, funkciju procedūru un deklarāciju. Nu, ir ierobežojums — aptuveni 64 000 rakstzīmju katrā modulī. Maz ticams, ka jūs pat pietuvosities 64 000 rakstzīmju ierobežojuma sasniegšanai. Bet, ja jūs to izdarījāt, risinājums ir vienkāršs: vienkārši ievietojiet jaunu moduli.

Tas, kā organizēt VBA moduli, ir pilnībā atkarīgs no jums. Daži cilvēki dod priekšroku visu lietojumprogrammas VBA kodu paturēt vienā VBA modulī; citiem patīk sadalīt kodu vairākos moduļos. Tā ir personīga izvēle, tāpat kā mēbeļu sakārtošana.

VBA koda iegūšana modulī

Tukšs VBA modulis ir kā viltots ēdiens, ko redzat dažu ķīniešu restorānu logos; tas izskatās labi, bet patiesībā tas jums neko daudz nedod. Lai varētu darīt kaut ko nozīmīgu, VBA modulī ir jābūt VBA kodam. Varat iegūt VBA kodu VBA modulī trīs veidos:

  • Ievadiet kodu tieši.
  • Izmantojiet Excel makro ierakstītāju, lai reģistrētu savas darbības un pārvērstu tās par VBA kodu.
  • Nokopējiet kodu no viena moduļa un ielīmējiet to citā.

Excel VBA koda tieša ievadīšana

Dažreiz labākais maršruts ir vistiešākais. Koda ievadīšana tieši ietver ... nu, koda ievadīšanu tieši. Citiem vārdiem sakot, jūs ierakstāt kodu, izmantojot tastatūru. Teksta ievadīšana un rediģēšana VBA modulī darbojas tā, kā jūs varētu gaidīt. Varat atlasīt, kopēt, izgriezt, ielīmēt tekstu un veikt citas darbības.

Izmantojiet tabulēšanas taustiņu, lai ievilktu dažas rindas, lai kods būtu vieglāk lasāms. Atkāpe nav nepieciešama, taču tas ir labs ieradums, kas jāiegūst. Izpētot Excel VBA kodēšanu, jūs sapratīsit, kāpēc koda rindu atkāpe ir noderīga.

Viena VBA koda rindiņa var būt tik gara, cik nepieciešams. Tomēr, iespējams, vēlēsities izmantot rindiņas turpinājuma rakstzīmes, lai sadalītu garas koda rindas. Lai turpinātu vienu koda rindiņu (pazīstamu arī kā paziņojumu) no vienas rindiņas uz nākamo, pabeidziet pirmo rindiņu ar atstarpi, kam seko pasvītra (_). Pēc tam turpiniet paziņojumu nākamajā rindā. Un neaizmirstiet par vietu. Pasvītra rakstzīme, kuras priekšā nav atstarpe, to nedarīs.

Šeit ir piemērs viena paziņojumam, kas sadalīts trīs rindās:

Selection.Sort Key1:=Range("A1"), _
  Order1:=xlaugošā secībā, Header:=xlUzmini, _
  Orientācija:=xlTopToBottom

Šis paziņojums darbotos tieši tāpat, ja tas tiktu ievadīts vienā rindā (bez rindas turpinājuma rakstzīmēm). Ņemiet vērā, ka šī paziņojuma otrā un trešā rindiņa ir ar atkāpi. Atkāpe nav obligāta, taču tā palīdz noskaidrot, ka šīs rindas nav atsevišķi paziņojumi.

Inženieri ar baltu pārklājumu, kas izstrādāja VBE, paredzēja, ka cilvēki pieļaus kļūdas. Tāpēc VBE ir vairāki atsaukšanas un pārtaisīšanas līmeņi. Ja izdzēsāt priekšrakstu, kuram nevajadzētu būt, rīkjoslā noklikšķiniet uz pogas Atsaukt (vai nospiediet taustiņu kombināciju Ctrl+Z), līdz paziņojums atkal tiek parādīts. Pēc atsaukšanas varat noklikšķināt uz pogas Atsaukt, lai veiktu atsauktās izmaiņas.

Vai esat gatavs ievadīt reāllaika kodu? Izmēģiniet tālāk norādītās darbības.

Izveidojiet jaunu darbgrāmatu programmā Excel.

Nospiediet Alt+F11, lai aktivizētu VBE.

Projekta logā noklikšķiniet uz jaunās darbgrāmatas nosaukuma.

Izvēlieties Ievietot → Modulis, lai projektā ievietotu VBA moduli.

Modulī ierakstiet šādu kodu:

Sub GuessName()
Msg = "Vai jūsu vārds ir " & Application.UserName & "?"
Ans = MsgBox(Ziņojums, vbYesNo)
Ja Ans = vbNo Tad MsgBox "Ak, nekas."
Ja Ans = vbYes Tad MsgBox "Man ir jābūt psihikam!"
Beigt apakš

Novietojiet kursoru jebkurā ievadītā teksta vietā un nospiediet taustiņu F5, lai izpildītu procedūru.

F5 ir saīsne Palaist → Palaist apakšpakalpojumu/lietotāja veidlapu. Ja kodu ievadījāt pareizi, programma Excel izpilda procedūru, un jūs varat atbildēt uz vienkāršu dialoglodziņu. Teksts dialoglodziņā atšķirsies no šeit redzamā teksta.

Excel VBA kodēšana: darbs ar koda logu

GuessName procedūra parāda šo dialoglodziņu.

Ievadot 5. darbībā norādīto kodu, iespējams, pamanīsit, ka VBE jūsu ievadītajā tekstā veic dažus pielāgojumus. Piemēram, pēc Subpriekšraksta ievadīšanas VBE automātiski ievieto priekšrakstu End Sub. Un, ja jūs izlaižat atstarpi pirms vai pēc vienādības zīmes, VBE ievieto atstarpi jums. Tāpat VBE maina dažu tekstu krāsu un lielo burtu lietojumu. Tas viss ir pilnīgi normāli. Tas ir tikai VBE veids, kā uzturēt lietas kārtīgas un lasāmas.

Ja veicāt iepriekšējās darbības, jūs tikko uzrakstījāt VBA apakšprocedūru, kas pazīstama arī kā makro. Nospiežot taustiņu F5, programma Excel izpilda kodu un izpilda norādījumus. Citiem vārdiem sakot, programma Excel novērtē katru paziņojumu un dara to, ko jūs tam likāt. (Neļaujiet šim jaunatklātajam spēkam iet uz jūsu galvu.) Varat izpildīt šo makro neierobežotu skaitu reižu, lai gan tas mēdz zaudēt savu pievilcību pēc dažiem desmitiem reižu.

Šajā vienkāršajā Excel makro ir izmantoti šādi jēdzieni:

  • Apakšprocedūras noteikšana (pirmā rinda)
  • Vērtību piešķiršana mainīgajiem (Msg un Ans)
  • Konkatenācijas (iestāšanās) virkni (izmantojot & operators)
  • Izmantojot iebūvēto VBA funkciju (MsgBox)
  • Izmantojot iebūvētās VBA konstantes (vbYesNo, vbNo un vbYes)
  • Ja-tad konstrukcijas izmantošana (divas reizes)
  • Apakšprocedūras beigšana (pēdējā rinda)

Izmantojot Excel VBA makro ierakstītāju

Vēl viens veids, kā iegūt kodu VBA modulī, ir ierakstīt savas darbības, izmantojot Excel makro ierakstītāju.

Starp citu, jūs nevarat ierakstīt iepriekš parādīto GuessName procedūru. Programmā Excel varat ierakstīt tikai tās lietas, kuras varat veikt tieši. Ziņojuma lodziņa parādīšana nav iekļauta Excel parastajā repertuārā. (Tā ir VBA lieta.) Makro ierakstītājs ir noderīgs, taču daudzos gadījumos jums, iespējams, būs jāievada vismaz kāds kods manuāli.

Šeit ir soli pa solim sniegts piemērs, kurā parādīts, kā ierakstīt makro, kas ievieto jaunu darblapu un paslēpj visas, izņemot pirmās desmit rindas un visas, izņemot pirmās desmit kolonnas. Ja vēlaties izmēģināt šo piemēru, sāciet ar jaunu, tukšu Excel darbgrāmatu un veiciet šīs darbības:

Aktivizējiet darblapu darbgrāmatā.

Derēs jebkura Excel darblapa.

Noklikšķiniet uz cilnes Izstrādātājs un pārliecinieties, vai nav iezīmēta opcija Izmantot relatīvās atsauces .

Šis makro tiek ierakstīts, izmantojot absolūtās atsauces.

Izvēlieties Izstrādātājs → Kods → Ierakstīt makro vai noklikšķiniet uz ikonas blakus Gatavības indikatoram statusa joslas kreisajā galā.

Programmā Excel tiek parādīts dialoglodziņš Ierakstīt makro.

Dialoglodziņā Makro ierakstīšana piešķiriet makro nosaukumu TenByTen, norādiet, ka makro vēlaties saglabāt šajā darbgrāmatā, un nospiediet taustiņu kombināciju Shift+T, lai ievadītu īsinājumtaustiņu.

Makro var izpildīt, nospiežot Ctrl+Shift+T.

Noklikšķiniet uz Labi, lai sāktu ierakstīšanu. Programma Excel projektā automātiski ievieto jaunu VBA moduli, kas atbilst aktīvajai darbgrāmatai.

No šī brīža programma Excel pārvērš jūsu darbības VBA kodā. Ierakstīšanas laikā ikona statusa joslā kļūst par nelielu kvadrātu. Šis ir atgādinājums, ka darbojas makro ierakstītājs. Varat arī noklikšķināt uz šīs ikonas, lai apturētu makro ierakstītāju.

Pēdējās lapas cilnes labajā pusē noklikšķiniet uz ikonas Jauna lapa.

Excel ievieto jaunu darblapu.

Atlasiet visu kolonnu K (11. kolonnu) un nospiediet Ctrl+Shift+labā bultiņa; pēc tam ar peles labo pogu noklikšķiniet uz jebkuras atlasītās kolonnas un īsinājumizvēlnē izvēlieties Slēpt.

Programma Excel slēpj visas atlasītās kolonnas.

Atlasiet visu 11. rindu un nospiediet Ctrl+Shift+lejupbultiņa; pēc tam ar peles labo pogu noklikšķiniet uz jebkuras atlasītās rindas un īsinājumizvēlnē izvēlieties Slēpt.

Programma Excel slēpj visas atlasītās kolonnas.

Atlasiet šūnu A1.

Izvēlieties Izstrādātājs → Kods → Pārtraukt ierakstīšanu vai noklikšķiniet uz pogas Pārtraukt ierakstīšanu statusa joslā (mazajā kvadrātā). Programma Excel pārstāj reģistrēt jūsu darbības.

Lai skatītu šo tikko ierakstīto makro, nospiediet Alt+F11, lai aktivizētu VBE. Logā Projekts atrodiet darbgrāmatas nosaukumu. Jūs redzat, ka projektā ir norādīts jauns modulis. Moduļa nosaukums ir atkarīgs no tā, vai, uzsākot makro ierakstīšanu, darbgrāmatā bija kādi citi moduļi. Ja to nedarījāt, modulis tiek nosaukts Module1. Varat veikt dubultklikšķi uz moduļa, lai skatītu moduļa koda logu.

Šis ir jūsu darbību ģenerētais kods:

Sub TenByTen()
'
TenByTen makro
'
Tastatūras īsinājumtaustiņš: Ctrl+Shift+T
'
  Sheets.Add After:=Active Sheet
  Kolonnas("K:K").Atlasiet
  Diapazons(Atlase, Atlase.Beigas(xlToRight)).Atlasiet
  Selection.EntireColumn.Hidden = True
  Rindas("11:11").Atlasiet
  Diapazons(Atlase, Atlase.Beigas(xlUz leju)).Atlasiet
  Selection.EntireRow.Hidden = True
  Diapazons("A1").Atlasiet
Beigt apakš

Lai izmēģinātu šo makro, aktivizējiet jebkuru darblapu un nospiediet 4. darbībā piešķirto īsinājumtaustiņu: Ctrl+Shift+T.

Ja makro nepiešķīrāt īsinājumtaustiņu, neuztraucieties. Tālāk ir norādīts, kā parādīt visu pieejamo makro sarakstu un palaist vajadzīgo.

Izvēlieties Izstrādātājs → Kods → Makro. Tastatūras fani var nospiest Alt+F8.

Jebkura no šīm metodēm parāda dialoglodziņu, kurā ir uzskaitīti visi pieejamie makro.

Sarakstā atlasiet makro (šajā gadījumā TenByTen).

Noklikšķiniet uz pogas Palaist.

Programma Excel izpilda makro, un jūs saņemat jaunu darblapu ar desmit redzamām rindām un desmit redzamām kolonnām.

Kamēr darbojas makro ierakstītājs, varat izpildīt neierobežotu skaitu komandu un veikt neierobežotu skaitu darbību. Excel apzinīgi pārvērš jūsu peles darbības un taustiņsitienus VBA kodā.

Un, protams, varat arī rediģēt makro pēc tā ierakstīšanas. Lai pārbaudītu savas jaunās prasmes, mēģiniet rediģēt makro tā, lai tajā tiktu ievietota darblapa ar deviņām redzamām rindām un kolonnām — lieliski piemērota Sudoku mīklai.

Notiek VBA koda kopēšana

Pēdējā metode koda ievadīšanai VBA modulī ir tā kopēšana no cita moduļa vai citas vietas (piemēram, vietnes). Piemēram, apakšprogrammas vai funkcijas procedūra, ko rakstāt vienam projektam, var būt noderīga arī citā projektā. Tā vietā, lai tērētu laiku, atkārtoti ievadot kodu, varat aktivizēt moduli un izmantot parastās starpliktuves kopēšanas un ielīmēšanas procedūras. (Jums droši vien patīk īsinājumtaustiņi Ctrl+C, lai kopētu, un Ctrl+V, lai ielīmētu.) Pēc koda ielīmēšanas VBA modulī varat modificēt kodu, ja nepieciešams.

Starp citu, tīmeklī atradīsit daudz VBA kodu piemēru. Ja vēlaties tos izmēģināt, pārlūkprogrammā atlasiet kodu un nospiediet Ctrl+C, lai to kopētu. Pēc tam aktivizējiet moduli un nospiediet Ctrl+V, lai to ielīmētu.

Kopējot kodu no vietnes, dažkārt tas ir jālabo. Piemēram, citātu rakstzīmes var būt “viedās pēdiņas”, un tās ir jāpārvērš par vienkāršām pēdiņu rakstzīmēm. Un dažreiz apkārt vijas garas rindas. Kļūdainus paziņojumus ir viegli pamanīt VBE, jo tie parādās sarkanā krāsā.


Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows Microsoft Word atver failus tikai lasīšanas režīmā, padarot tos neiespējamu rediģēt? Neuztraucieties, metodes ir norādītas zemāk

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā labot kļūdas, drukājot nepareizus Microsoft Word dokumentus.Kļūdas Word dokumentu drukāšanā ar mainītiem fontiem, nekārtīgām rindkopām, trūkstoša teksta vai pazaudētu saturu ir diezgan izplatītas. Tomēr nevajag

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Ja prezentācijas laikā esat izmantojis pildspalvu vai marķieri, lai zīmētu uz PowerPoint slaidiem, varat saglabāt zīmējumus nākamajai prezentācijai vai izdzēst tos, lai nākamajā reizē, kad to parādīsit, jūs sāktu ar tīriem PowerPoint slaidiem. Izpildiet šos norādījumus, lai dzēstu pildspalvas un marķiera zīmējumus: Līniju dzēšana pa vienai […]

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Stilu bibliotēkā ir CSS faili, paplašināmās stila lapu valodas (XSL) faili un attēli, ko izmanto iepriekš definētas šablona lapas, lapu izkārtojumi un vadīklas programmā SharePoint 2010. Lai atrastu CSS failus publicēšanas vietnes stilu bibliotēkā: izvēlieties Vietnes darbības → Skatīt Viss vietnes saturs. Tiek parādīts vietnes saturs. Stila bibliotēka atrodas […]

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Nepārsedziet savu auditoriju ar milzīgiem skaitļiem. Programmā Microsoft Excel varat uzlabot informācijas paneļu un pārskatu lasāmību, formatējot skaitļus tā, lai tie tiktu rādīti tūkstošos vai miljonos.

Kā koplietot un sekot līdzi SharePoint vietnēm

Kā koplietot un sekot līdzi SharePoint vietnēm

Uzziniet, kā izmantot SharePoints sociālo tīklu rīkus, kas ļauj indivīdiem un grupām sazināties, sadarboties, koplietot un sazināties.

Kā programmā Excel konvertēt datumus Juliana formātos

Kā programmā Excel konvertēt datumus Juliana formātos

Jūlija datumi ražošanas vidēs bieži tiek izmantoti kā laikspiedols un ātra atsauce partijas numuram. Šāda veida datuma kodēšana ļauj mazumtirgotājiem, patērētājiem un pakalpojumu aģentiem noteikt produkta izgatavošanas laiku un līdz ar to arī produkta vecumu. Jūlija datumi tiek izmantoti arī programmēšanā, militārajā jomā un astronomijā. Savādāk […]

Kā izveidot Access Web App

Kā izveidot Access Web App

Programmā Access 2016 varat izveidot tīmekļa lietotni. Kas tad vispār ir tīmekļa lietotne? Tīmeklis nozīmē, ka tas ir tiešsaistē, un lietotne ir tikai “lietojumprogrammas” saīsinājums. Pielāgota tīmekļa lietotne ir tiešsaistes datu bāzes lietojumprogramma, kurai var piekļūt no mākoņa, izmantojot pārlūkprogrammu. Jūs veidojat un uzturat tīmekļa lietotni darbvirsmas versijā […]

Ātrās palaišanas josla programmā SharePoint 2010

Ātrās palaišanas josla programmā SharePoint 2010

Lielākā daļa SharePoint 2010 lapu ātrās palaišanas joslā lapas kreisajā pusē parāda navigācijas saišu sarakstu. Ātrās palaišanas joslā tiek rādītas saites uz piedāvāto vietņu saturu, piemēram, sarakstiem, bibliotēkām, vietnēm un publicēšanas lapām. Ātrās palaišanas joslā ir divas ļoti svarīgas saites: Visa vietnes satura saite: […]

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Vienkāršām problēmām risinātājs programmā Excel parasti ātri atrod optimālās Risinātāja mainīgā vērtības mērķa funkcijai. Taču dažos gadījumos Solver ir grūti atrast Solver mainīgā vērtības, kas optimizē mērķa funkciju. Šādos gadījumos Solver parasti parāda ziņojumu vai kļūdas ziņojumu, kurā aprakstīta vai apspriesta problēma, ko […]