Duomenų įvedimo formos Microsoft Excel. Naudojant MS Excel

Pradžia / Windows 7

Daugelis „Excel“ vartotojų nemato skirtumo tarp „ląstelių formato“ ir „duomenų tipo“ sąvokų. Tiesą sakant, tai toli gražu nėra tapačios sąvokos, nors jos tikrai yra susijusios. Išsiaiškinkime, kokia yra duomenų tipų esmė, į kokias kategorijas jie skirstomi ir kaip su jais dirbti.

Duomenų tipas yra darbalapyje saugomos informacijos charakteristika. Remdamasi šia charakteristika, programa nustato, kaip apdoroti tam tikrą vertę.

Duomenų tipai skirstomi į dvi dideles grupes: konstantas ir formules. Skirtumas tarp jų yra tas, kad formulės į langelį išveda reikšmę, kuri gali keistis priklausomai nuo to, kaip keičiasi argumentai kituose langeliuose. Konstantos yra pastovios vertės, kurios nesikeičia.

Savo ruožtu konstantos skirstomos į penkias grupes:

  • Tekstas;
  • Skaitiniai duomenys;
  • Data ir laikas;
  • Loginiai duomenys;
  • Klaidingos vertybės.

Išsamiau išsiaiškinkime, ką reiškia kiekvienas iš šių duomenų tipų.

Teksto reikšmės

Teksto tipe yra simbolių duomenų ir „Excel“ nelaikomas objektu matematiniai skaičiavimai. Ši informacija pirmiausia skirta vartotojui, o ne programai. Tekstas gali būti bet koks simbolis, įskaitant skaičius, jei jie yra tinkamai suformatuoti. DAX kalboje šio tipo duomenys nurodo eilutės reikšmes. Didžiausias teksto ilgis yra 268435456 simboliai viename langelyje.

Norėdami įvesti simbolinę išraišką, turite pasirinkti teksto arba bendro formato langelį, kuriame jis bus saugomas, ir klaviatūra įvesti tekstą. Jei teksto išraiškos ilgis viršija vaizdines langelio ribas, tada ji uždedama ant kaimynų, nors fiziškai ir toliau saugoma pradiniame langelyje.

Skaitiniai duomenys

Tiesioginiams skaičiavimams naudojami skaitiniai duomenys. Būtent su jais Excel atlieka įvairias matematines operacijas (sudėtį, atimtį, daugybą, dalybą, eksponenciją, šaknų ištraukimą ir kt.). Šis duomenų tipas skirtas išskirtinai skaičiams rašyti, bet gali turėti ir pagalbinių simbolių (%, $ ir kt.). Su juo gali būti naudojami keli formatų tipai:

  • Tiesą sakant, skaitinis;
  • procentas;
  • Piniginiai;
  • Finansinis;
  • Trupmeninis;
  • Eksponentinis.

Be to, „Excel“ turi galimybę padalyti skaičius į skaitmenis ir nustatyti skaitmenų skaičių po kablelio (trupmenomis).

Skaitmeniniai duomenys įvedami taip pat kaip tekstinės reikšmės, apie kurį kalbėjome aukščiau.

Data ir laikas

Kitas duomenų tipas yra laiko ir datos formatas. Tai yra būtent tas atvejis, kai duomenų tipai ir formatai yra vienodi. Jis pasižymi tuo, kad juo galima nurodyti lape ir atlikti skaičiavimus su datomis ir laiku. Pastebėtina, kad skaičiuojant tokio tipo duomenis diena imama kaip vienetas. Be to, tai taikoma ne tik datoms, bet ir laikui. Pavyzdžiui, 12:30 programa laiko 0,52083 dienos ir tik tada rodoma langelyje vartotojui pažįstama forma.

Yra keletas laiko formatavimo tipų:

  • h:mm:ss;
  • h:mm;
  • h:mm:ss AM/PM;
  • h:mm AM/PM ir kt.

Panaši situacija ir su datomis:

  • DD.MM.YYYY;
  • DD.MMM
  • MMM.GG ir kt.

Taip pat yra kombinuotų datos ir laiko formatų, pavyzdžiui, DD:MM:YYYY h:mm.

Taip pat turite atsižvelgti į tai, kad programa kaip datas rodo tik tas vertes, kurios prasideda nuo 1900-01-01.

Loginiai duomenys

Būlio duomenų tipas yra gana įdomus. Jis veikia tik su dviem reikšmėmis: "TRUE" Ir "MELAS". Jei perdėta, tai reiškia „įvykis atvyko“ ir „įvykis neatvyko“. Funkcijos, apdorojančios langelių, kuriose yra loginių duomenų, turinį, atlieka tam tikrus skaičiavimus.

Klaidingos vertės

Klaidų reikšmės yra atskiras duomenų tipas. Daugeliu atvejų jie atsiranda, kai atliekama neteisinga operacija. Pavyzdžiui, tokios neteisingos operacijos apima padalijimą iš nulio arba funkcijos įvedimą nepaisant jos sintaksės. Tarp klaidingų verčių yra šios:

  • #VERTĖ! – naudojant netinkamo tipo argumentą funkcijai;
  • #ATVEJAS! – dalyba iš 0;
  • #NUMERIS! – neteisingi skaitiniai duomenys;
  • #N/A – įvesta nepasiekiama reikšmė;
  • #NAME? – neteisingas pavadinimas formulėje;
  • #TUŠČIA! – neteisingai įvesti diapazono adresai;
  • #LINK! – Atsiranda, kai ištrinami langeliai, kurie anksčiau buvo nurodyti pagal formulę.

Formulės

Atskira didelė duomenų tipų grupė yra formulės. Skirtingai nuo konstantų, jos dažniausiai nėra matomos pačiose ląstelėse, o rodo tik rezultatą, kuris gali keistis priklausomai nuo argumentų pasikeitimų. Visų pirma, formulės naudojamos įvairiems matematiniams skaičiavimams. Pačią formulę galima pamatyti formulės juostoje, paryškinus langelį, kuriame ji yra.

Būtina sąlyga, kad programa suvoktų išraišką kaip formulę, yra lygybės ženklo buvimas prieš jį (=) .

Funkcijos yra atskiras formulių tipas. Tai yra unikalios paprogramės, kuriose yra argumentų rinkinys ir jie apdorojami pagal konkretų algoritmą. Funkcijas galima įvesti rankiniu būdu į langelį, pirmiausia įdedant ženklą «=» , arba šiems tikslams galite naudoti specialų grafinį apvalkalą Funkcijų vedlys, kuriame yra visas programoje galimų operatorių sąrašas, suskirstytas į kategorijas.

Naudojant Funkcijų vedliai Galite pereiti į konkretaus operatoriaus argumentų langą. Jo laukuose yra duomenų arba nuorodų į langelius, kuriuose yra šie duomenys. Paspaudus mygtuką "gerai" atliekama nurodyta operacija.

Kaip matome, in Excel programa Yra dvi pagrindinės duomenų tipų grupės: konstantos ir formulės. Jie, savo ruožtu, skirstomi į daugybę kitų tipų. Kiekvienas duomenų tipas turi savo ypatybes, atsižvelgdamas į tai, kokias programas juos apdoroja. Įvaldyti gebėjimą atpažinti ir teisingai dirbti įvairių tipų duomenys yra pagrindinė bet kurio vartotojo, norinčio išmokti efektyviai naudoti Excel pagal numatytą paskirtį, užduotis.

Praktika rodo, kad Microsoft Office programos (Excel, Word, Power Point ir kt.) yra vienos dažniausiai naudojamų Windows programų. Kiekvienas iš jų yra COM serveris, todėl bet kurį į jį įtrauktą objektą jūsų programa gali naudoti kaip savo.

Yra du būdai pasiekti COM objekto metodus ir savybes: remiantis jo tipų biblioteka (ankstyvas įrišimas) ir pagal pavadinimą (vėlyvas susiejimas). „Object Pascal“ atveju pirmenybė teikiama ankstyvam susiejimui, nes tokiu atveju kompiliatorius gali patikrinti, ar išorinių objektų savybės ir metodai pasiekiami teisingai, o jo sukurtas kodas yra linkęs vykdyti greičiau.– „Visual Basic for Application“ (VBA) nepalaiko rodyklių, todėl negali naudoti sąsajų. Ypač tokio tipo kalboms (be VBA, JavaScript, SmallTalk ir kai kurios kitos taip pat neveikia su rodyklėmis) į COM technologiją buvo įdiegtos dispinterfaces, leidžiančios pasiekti metodus ir savybes pagal pavadinimą, o ne pagal adresą. Diegdami „Office“ galite įdiegti VBA žinyną, kuriame išsamiai aprašomos „Microsoft Office“ serverių sąsajos, nurodant metodų ir savybių paskirtį bei prieigos prie jų parametrus. Tiesą sakant, tai yra vieninteliai programuotojui prieinami dokumentai, kuriais jis turėtų pasikliauti programuodamas prieigą prie galingų Microsoft Office serverių galimybių. Atminkite, kad standartinio Microsoft Office diegimo metu VBA žinynas neįdiegiamas. Jei kataloge Programos failai| Microsoft Office | „Office“ nerasite failų vbaxl8.hlp („Excel“ žinynas), vbawrd8.hlp („Word“ žinynas) ir kt., turite juos pridėti naudodami Pradėti | Nustatymas | Valdymo skydelis | Programų diegimas ir pašalinimas.

„Delphi“ 5 versijoje yra serverių puslapio komponentai, leidžiantys pasiekti šių serverių COM objektus naudojant tipų bibliotekas, tačiau šie komponentai yra beveik nedokumentuoti. Be to, pačios bibliotekos jau yra įdiegtos dclaxserver50 pakete, todėl naudodamas šią Delphi versiją niekada negalėjau gauti jų tekstų. Visais atvejais didelių bibliotekos tekstų studijavimas (pavyzdžiui, Excel_TLB.pas faile yra daugiau nei 20 tūkst. eilučių) net patyrusiam programuotojui duoda mažai naudos.

Šiame skyriuje trumpai aprašomi pagrindiniai dviejų populiariausių serverių objektai – Excel ir Word, taip pat pateikiami Excel naudojimo VBA stiliumi (pagal pavadinimą) ir serverių puslapio komponentų naudojimo pavyzdžiai. Kadangi VBA kalba buvo žymiai išplėsta specialiai MS Office 97 versijai, ši medžiaga negali būti naudojama darbui su ankstesnėmis paketo versijomis.

Pagrindiniai Excel ir Word serverių objektai

VBA terminologijoje vartojamos „objekto“ ir „kolekcijos“ sąvokos. Objektas yra įprastas COM sąsajos objektas, turintis savybių, metodų ir įvykių. Kolekcija yra to paties tipo objektų grupė. Pavyzdžiui, pagrindinis „Excel“ serverio objektas – programa apibrėžia pagrindines serverio ypatybes ir metodus, o darbalapių rinkinys yra lentelių puslapių rinkinys dabartinėje darbaknygėje ir kt. Žemiau parodytos objektų ir rinkinių hierarchijos yra paimtos iš vbaXXX.hlp failų. Skirtingai nei VCL objektai, jie statomi ne pagal paveldėjimo principą, o pagal funkcinį pavaldumą.

„Excel“ objektai

„Excel“ serveris yra galingas skaičiuoklių procesorius, kuris saugo ir apdoroja įvairaus tipo duomenis (tiek skaitinius, tiek tekstinius), įskaitant jais pagrįstų grafikų ir diagramų kūrimą. Dirbant su Excel, sukuriama vadinamoji darbaknygė (duomenų failas) su vienu ar keliais lapais. Visi vienos darbaknygės lapai gali būti susieti vienas su kitu, o tai leidžia organizuoti bendrus ant jų pateiktų duomenų skaičiavimus.

Dabar smulkūs paaiškinimai. Kintamieji Sheet ir Range buvo įvesti tik norint sutrumpinti programos tekstą: visur vietoj Sheet galima rašyti, pavyzdžiui, Excel.Workbooks.Sheets. Delphi 4 pristatomas su XLCONST.PAS ir XLCONST.DCU failais, kurie apibrėžia xlXXX konstantas, naudojamas vbaxl8.hlp dokumentacijoje. Šie failai nepateikiami su 5 versija, todėl naudoju jų skaitinius atitikmenis. Spausdinto Excel dokumento paraštės plotis nurodomas vidiniais vienetais, atitinkančiais maždaug 3,5 mm, todėl reikšmės, nurodytos Sheet.PageSetup.XXXXMargin sakiniuose, kairiosios, apatinės ir dešinės paraštės bus 1,1 cm pločio, o viršutinis iki 1,4 cm plotis apibrėžiamas teksto simboliais, kurie telpa į stulpelį be iškirpimo.

„Excel“ kintamasis apibrėžia lauką TForm1 klasėje. Sukūrus klasę, joje automatiškai įdedama reikšmė VarEmpty. Baigęs dirbti su Excel, vartotojas gali ją uždaryti. Bet mano programoje Excel nebuvo vizualizuota, jos darbas vyko „už kadro“, o sukurta lentelė buvo įrašyta į vartotojo nurodytą failą naudojant operatorių Excel.Workbooks.SaveAs(FileName).

Po to „Excel“ uždaryta. Kadangi mūsų atveju „Excel“ rodo savo langą, bet vartotojas negali jo uždaryti, naudinga parašyti tokią formos įvykio „OnDestroy“ tvarkyklę:

Procedūra TForm1.FormDestroy(Siuntėjas: TObject); pradėti, jei ne VarIsEmpty(Excel), tada Excel.Quit pabaiga;

Vykdydami pavyzdį atminkite, kad kainoraščio kūrimas naudojant „Excel“ yra gana ilgas procesas. Mano kompiuteryje (400 MHz, 64 MB) tai užtruko apie minutę (pavyzdžiui, panašus kainoraštis sukuriamas naudojant greitąją ataskaitą greičiau nei per 2 sekundes). Prietaiso pabaigoje visas veikimo laikas įrašomas į lb etiketę.

Ankstyvas įrišimas

Šis pavyzdys funkcionaliai pakartoja ankstesnįjį. Jis taip pat sukuria kainoraštį naudodamas „Excel“, tačiau šį kartą jis naudoja prieigą tiesiogiai per serverio sąsajas. Jūsų laukia „staigmena“: antrojo pavyzdžio vykdymo laikas yra 40 sekundžių ilgesnis! Neradau pagrįsto šio reiškinio paaiškinimo, tačiau abu pavyzdžiai yra pridedamame diske, todėl bet kada galite tuo įsitikinti.

Kadangi antrojo pavyzdžio forma yra lygiai tokia pati, kaip ir pirmojo, nepaaiškinsiu, ką reikia padaryti norint jį sukurti. Į formą įtraukite tik TExcelApplication komponentą ir sukonfigūruokite jo ypatybes: Name=Excel, AutoConnect=True, AutoQuit=True.

Jei naudojate ankstesnę formos pavyzdį kaip šabloną, neįterpkite „Excel“ lauko į TForm1 klasę. Button1Click tvarkyklė turėtų atrodyti taip (žr. 2 sąrašą).

Kaip matote, jis labai panašus į tvarkyklę iš ankstesnio pavyzdžio. Todėl apsistosiu ties skirtumais.

Kai pasiekiate SheetsInNewWorkbook ypatybę, kaip ir daugeliu kitų atvejų, kai pasiekiate sąsajos ypatybes ir metodus, reikalingas lokalizacijos kalbos identifikatorius (lcid). Vertė 0 koduoja numatytąją kalbą. Tas pats identifikatorius perduodamas kaip antrasis iškvietimo parametras į Excel.Workbooks.Add metodą. Pirmasis parametras turi būti failo pavadinimas (WideString formatu), jei darbaknygė jau buvo sukurta anksčiau, arba parametras „tuščias“ EmptyParam, jei darbaknygė kuriama pirmą kartą.

Visi mano bandymai dirbti su Range objektais žlugo. Kad per daug manęs nesmerktumėte, pavyzdiniame kataloge įdėjau Excel_TLB.pas tipo biblioteką – laisvalaikiu peržiūrėkite ją ir pabandykite rasti tinkamą sprendimą, kaip pakeisti stulpelių plotį ir lapų paraštes, nes taip pat diapazono spalvinimui, tekstui lygiuoti ir pan.

Apibendrindamas noriu dar kartą atkreipti jūsų dėmesį į tai, kad pagal vykdymo laiką vėlyvas įrišimas bent jau niekuo nenusileidžia ankstyvam įrišimui – bent jau nagrinėjamais pavyzdžiais. Jei atsižvelgsime į tai, kad vieninteliai dokumentai, prieinami daugumai programuotojų MS Office serveriuose, yra vbaXXX.hlp žinyno failai, galime daryti išvadą: naudoti parinktis (vėlyvas įrišimas) yra paprastesnis, patogesnis ir, svarbiausia, daug aiškesnis nei tiesiogiai. darbas su sąsajomis (ankstyvas įrišimas) .

ComputerPress 6"2001

Iki šiol nagrinėjome VBA funkcijas be didelio ryšio su darbalapio informacija. Šiame skyriuje susipažinsime su objektais, leidžiančiais dirbti su duomenimis, esančiais Microsoft Excel darbaknygių lapų langeliuose. Tolesniuose skyriuose bus nagrinėjami sudėtingi pokyčiai, pagrįsti pagrindiniais projektais, kuriuos aptarsime čia.

Visas darbo failas Excel darbaknyges pavaizduotas darbaknygės objekte, turinčiame daugybę savybių ir metodų. Pagalba jiems pateikiama tiek VBA internetiniame žinyne, tiek dideli kiekiai publikacijas šia tema. Į grynai informacinę informaciją nesigilinsime ir įžanginėje dalyje svarstysime tik tą informaciją, su kuria vėliau susidursime nagrinėjamuose pavyzdžiuose.

Pavyzdžiui, darbaknygės objekto ypatybė Darbalapiai reiškia visų darbaknygės darbalapių šeimą. O norint pasiekti konkretų darbalapį naudojant šią ypatybę, tiesiog kaip parametrą reikia nurodyti lapo numerį, kuris atrodo taip – ​​Darbalapiai(lapo numeris). Kita galimybė yra kaip parametrą nurodyti lapo pavadinimą - Darbalapiai ("Lakšto pavadinimas").

Vienas iš dažniausiai programuojamų įvykių, susijusių su darbaknyge apskritai, yra Open įvykis, kuris įvyksta atidarius darbaknygę. Taigi, jei norime, kad atsivertus knygą būtų atlikti tam tikri veiksmai, tuomet reikėtų patalpinti būtinus programos kodas procedūroje Workbook_Open. Dauguma toliau pateiktų pavyzdžių bus skirti šio įvykio programavimui.

Kitas objektas hierarchijoje po darbaknygės yra darbalapio objektas, kuris reiškia darbalapį. Iš įvairių šio objekto metodų plačiai naudojamas „Activate“, kuris taip pat egzistuoja „Workheets“ lapų šeimai, kurią jau minėjome aukščiau. Pavyzdžiui, jei dirbant su pirmuoju darbaknygės lapu reikia suaktyvinti trečią lapą, tada programos eilutės sintaksė procedūroje (tarkime, vykdoma paspaudus mygtuką) turi būti tokia:

Darbalapiai(3).Suaktyvinti

Yra žinoma, kad Microsoft Excel siūlo paslaugą, susijusią su darbaknygių ir ją sudarančių lapų apsauga. Taigi pavyzdžiuose naudosime Apsaugos metodą (iš Worksheets šeimos), kuris apsaugo darbalapį nuo jame atliekamų pakeitimų. Už programinės įrangos diegimas Trečiojo lapo apsaugą slaptažodžiu (slaptažodis nurodytas šio metodo parametre Slaptažodis) galima atlikti taip:

Worksheets(3).Protect Password:="12345", DrawingObjects:=Tiesa, _ Contents:=Tiesa, Scenarijai:=Tiesa

Taip pat yra atitinkamas Unprotect metodas, leidžiantis pašalinti lapo apsaugą. Jei naujai įdiegta apsauga, jos pašalinimo būdas yra toks:

Darbalapiai (3). Atšaukti slaptažodžio apsaugą:="12345"

Bet koks praktinis darbas„Excel“ vienaip ar kitaip susijusi su informacija ląstelėse. Norėdami dirbti su ląstelėmis VBA, yra diapazono objektas (išverstas kaip langelių diapazonas). O naudojant šį objektą reikia nustatyti parametrą – mus dominančių langelių diapazoną. Tai gali būti viena ląstelė arba ląstelių grupė. Taigi, jei rašysime

Darbalapiai (3). Diapazonas ("A1"). Reikšmė = 5,

tada tai reiškia, kad ląstelėje A1 Trečiame lape programiškai įrašome skaičių 5. Čia naudojame pagrindinę Range objekto savybę – Value. Pažodžiui tai reiškia langelio (arba langelių grupės) vertę arba turinį.

Toliau pateiktoje konstrukcijoje raidė programiškai įvedama į langelių rinkinį A:

Darbalapiai (1). Diapazonas ("A1:C3"). Reikšmė = "A".

Kitas būdas dirbti su ląstelėmis yra naudojant objektą Cells, o jo naudojimo sintaksė yra tokia:

Ląstelės (eilutės numeris, stulpelio numeris).

Tiesą sakant, jų naudojimo požiūriu nagrinėjami objektai yra panašūs. Pavyzdžiui, gaukite langelio reikšmę kintamajame Z D5 gal du įvairiais būdais:

Z = diapazonas ("D5"). Reikšmė arba Z = langeliai (5, 4). Reikšmė .

Kaip programos projektavimo pavyzdį abiejų šių objektų tema galima pateikti tokią užduotį:

Darbalapiai (2). Diapazonas ("C5"). Reikšmė = Darbalapiai (3). Langeliai (5, 1). Vertė

Terminas „Excel“ objektai(iš esmės suprantamas kaip „Excel“ objekto modelis) apima elementus, sudarančius bet kurią „Excel“ darbaknygę. Tai, pavyzdžiui, darbalapiai ( Darbo lapai), eilutės ( Eilutės), stulpeliai ( Stulpeliai), langelių diapazonai ( Diapazonai) ir pačią „Excel“ darbaknygę ( Darbo knyga) įskaitant. Kiekvienas „Excel“ objektas turi savybių rinkinį, kuris yra neatskiriama jo dalis.

Pavyzdžiui, objektas Darbalapis(darbo lapas) turi savybių Vardas(vardas), Apsauga(apsauga), Matoma(matomumas), Slinkties sritis(slinkties sritis) ir pan. Taigi, jei vykdant makrokomandą reikia paslėpti darbalapį, tiesiog pakeiskite ypatybę Matomašį lapą.

IN Excel VBA yra specialus objektų tipas - kolekcija. Kaip rodo pavadinimas, kolekcija reiškia „Excel“ objektų grupę (arba kolekciją). Pavyzdžiui, kolekcija Eilutės yra objektas, kuriame yra visos darbalapio eilutės.

Per objektą galima pasiekti visus pagrindinius „Excel“ objektus (tiesiogiai arba netiesiogiai). Darbo knygelės, kuri yra visų atidarytų dalykų kolekcija šiuo metu darbo knygelės. Kiekvienoje darbaknygėje yra objektas Lakštai– rinkinys, kuriame yra visi darbaknygės darbalapiai ir diagramų lapai. Kiekvienas objektas Darbalapis susideda iš kolekcijos Eilutės– apima visas darbalapio eilutes ir rinkinius Stulpeliai– visi darbalapio stulpeliai ir pan.

Šioje lentelėje išvardyti kai kurie dažniausiai naudojami „Excel“ objektai. Visą Excel VBA objektų sąrašą galite rasti Microsoft Office Developer svetainėje (anglų kalba).

Objektas Aprašymas
Taikymas Excel programa.
Darbo knygelės Visų šiuo metu atidarytų darbaknygių dabartinėje „Excel“ programoje rinkinys. Per objektą galima pasiekti konkrečią darbaknygę Darbo knygelės pvz., naudojant skaitinę darbaknygės rodyklę arba jos pavadinimą, Darbo knygos (1) arba Darbaknygės („1 knyga“).
Darbo knyga Objektas Darbo knyga– Tai darbo knyga. Ją galima pasiekti per kolekciją Darbo knygelės naudojant skaitmeninę rodyklę arba darbaknygės pavadinimą (žr. aukščiau). Norėdami pasiekti šiuo metu aktyvią darbaknygę, galite naudoti ActiveWorkbook.

Iš objekto Darbo knyga galite prieiti prie objekto Lakštai, kuris yra visų darbaknygės lapų (darbo lapų ir diagramų) rinkinys, taip pat objektas Darbo lapai, kuri yra visų „Excel“ darbaknygės darbalapių rinkinys.

Lakštai Objektas Lakštai yra visų lapų rinkinys darbaknygėje. Tai gali būti darbalapiai arba diagramos atskirame lape. Pasiekite atskirą lapą iš kolekcijos Lakštai galima gauti naudojant skaitinę lapo rodyklę arba jo pavadinimą, pavyzdžiui, Lakštai (1) arba Lakštai („Sheet1“).
Darbo lapai Objektas Darbo lapai yra visų darbaknygės darbalapių rinkinys (ty visi darbalapiai, išskyrus diagramas atskirame lape). Pasiekite atskirą darbalapį iš kolekcijos Darbo lapai galima gauti naudojant skaitinę darbalapio rodyklę arba jo pavadinimą, pavyzdžiui, Darbalapiai (1) arba Darbalapiai („Sheet1“).
Darbalapis Objektas Darbalapis yra atskiras darbalapis Excel darbaknygėje. Jį galima pasiekti naudojant darbalapio skaitinę rodyklę arba darbalapio pavadinimą (žr. aukščiau).

Be to, galite naudoti ActiveSheet norėdami pasiekti šiuo metu aktyvų darbalapį. Iš objekto Darbalapis galite pasiekti objektus Eilutės Ir Stulpeliai, kurie yra objektų rinkinys Diapazonas, nurodant darbalapio eilutes ir stulpelius. Taip pat galite pasiekti vieną langelį arba bet kurį gretimų langelių diapazoną darbalapyje.

Eilutės Objektas Eilutės yra visų darbalapio eilučių rinkinys. Objektas Diapazonas, susidedantį iš vienos darbalapio eilutės, galima pasiekti tuo eilutės numeriu, pvz. Eilutės (1).
Stulpeliai Objektas Stulpeliai yra visų darbalapio stulpelių rinkinys. Objektas Diapazonas, susidedantį iš vieno darbalapio stulpelio, galima pasiekti tuo stulpelio numeriu, pvz. Stulpeliai (1).
Diapazonas Objektas Diapazonas yra bet koks gretimų langelių skaičius darbalapyje. Tai gali būti viena ląstelė arba visos lapo ląstelės.

Diapazoną, kurį sudaro viena langelis, galima pasiekti per objektą Darbalapis naudojant turtą Ląstelės, Pavyzdžiui, Darbalapis.Ląstelės (1,1).

Kitu būdu nuoroda į diapazoną gali būti rašoma nurodant pradžios ir pabaigos langelių adresus. Jas galima rašyti atskiriant dvitaškiu arba kableliu. Pavyzdžiui, Darbalapis. Diapazonas („A1:B10“) arba Darbalapis. Diapazonas („A1“, „B10“) arba Darbalapis. Diapazonas (ląstelės (1, 1), langeliai (10, 2)).

Atkreipkite dėmesį, jei adresas Diapazonas antras langelis nenurodytas (pvz., Darbalapis. Diapazonas ("A1") arba Darbalapis. Diapazonas (ląstelės (1,1)), tada bus pasirinktas diapazonas, sudarytas iš vieno langelio.

Aukščiau pateiktoje lentelėje parodyta, kaip „Excel“ objektai pasiekiami per pirminius objektus. Pavyzdžiui, nuorodą į langelių diapazoną galima parašyti taip:

Darbaknygės ("1 knyga"). Darbalapiai ("1 lapas"). Diapazonas ("A1: B10")

Objekto priskyrimas kintamajam

Programoje Excel VBA objektas gali būti priskirtas kintamajam naudojant raktinį žodį Nustatyti:

Pritemdyti DataWb kaip darbaknygės rinkinį DataWb = darbaknygos ("Knyga1.xlsx")

Aktyvus objektas

Bet kuriuo metu „Excel“ yra aktyvus objektas Darbo knyga yra šiuo metu atidaryta darbaknygė. Taip pat yra aktyvus objektas Darbalapis, aktyvus objektas Diapazonas ir taip toliau.

Žr. aktyvų objektą Darbo knyga arba Lapas VBA kode galite padaryti taip: ActiveWorkbook arba ActiveSheet, ir į aktyvų objektą Diapazonas- kaip ir Atranka.

Jei VBA kode yra nuoroda į darbalapį, nenurodant, kuriai darbaknygei jis priklauso, „Excel“ pagal numatytuosius nustatymus nustato aktyvią darbaknygę. Panašiai, jei nurodote diapazoną nenurodydami konkretaus darbo knyga arba darbalapį, „Excel“ pagal numatytuosius nustatymus naudos aktyvų darbalapį aktyvioje darbaknygėje.

Taigi, kalbant apie diapazoną A1:B10 aktyviosios darbaknygės aktyviame darbalapyje galite tiesiog parašyti:

Diapazonas („A1:B10“)

Aktyvaus objekto keitimas

Jei programos vykdymo metu reikia aktyvuoti kitą darbaknygę, kitą darbalapį, diapazoną ir pan., tuomet reikia naudoti metodus Suaktyvinti arba Pasirinkite kaip tai:

Sub ActivateAndSelect() Workbooks("Knyga2").Aktyvinkite darbalapius("Sheet2").Select Worksheets("Sheet2").Range("A1:B10").Select Worksheets("Sheet2").Range("A5") .Aktyvinti End Sub

Objektiniai metodai, įskaitant ką tik naudotus metodus Suaktyvinti arba Pasirinkite, bus išsamiau aptarta toliau.

Objekto savybės

Kiekvienas VBA objektas turi jam priskirtas savybes. Pavyzdžiui, objektas Darbo knyga turi savybių Vardas(vardas), RevisionNumber(išsaugomų kartų skaičius), Lakštai(lakštai) ir daugelis kitų. Norėdami pasiekti objekto ypatybes, turite parašyti objekto pavadinimą, tada tašką ir nuosavybės pavadinimą. Pavyzdžiui, aktyvios darbaknygės pavadinimą galima pasiekti taip: ActiveWorkbook.Name. Taigi, norint priskirti kintamąjį wbName aktyvios darbaknygės pavadinimą, galite naudoti šį kodą:

Pritemdykite wbName kaip eilutę wbName = ActiveWorkbook.Name

Anksčiau mes rodėme, kaip objektas Darbo knyga gali būti naudojamas norint pasiekti objektą Darbalapis naudojant šią komandą:

Darbaknygės („1 knyga“). Darbalapiai („1 lapas“)

Tai įmanoma, nes kolekcija Darbo lapai yra objekto savybė Darbo knyga.

Kai kurios objekto ypatybės yra tik skaitomos, tai reiškia, kad vartotojas negali keisti savo verčių. Tuo pačiu metu yra savybių, kurioms galima priskirti skirtingas reikšmes. Pavyzdžiui, norėdami pakeisti aktyvaus lapo pavadinimą į „ Mano darbalapis“, tiesiog priskirkite nuosavybei šį pavadinimą Vardas aktyvus lapas, pavyzdžiui:

ActiveSheet.Name = "Mano darbalapis"

Objekto metodai

VBA objektai turi metodus tam tikriems veiksmams atlikti. Objekto metodai– tai procedūros, susietos su tam tikro tipo objektais. Pavyzdžiui, objektas Darbo knyga turi metodus Suaktyvinti, Uždaryti, Išsaugoti ir daug daugiau.

Norėdami iškviesti objekto metodą, turite užsirašyti objekto pavadinimą, tašką ir metodo pavadinimą. Pavyzdžiui, norėdami išsaugoti aktyvią darbaknygę, galite naudoti šią kodo eilutę:

ActiveWorkbook.Save

Kaip ir kitos procedūros, metodai gali turėti argumentų, kurie perduodami metodui jį iškvietus. Pavyzdžiui, metodas Uždaryti objektas Darbo knyga turi tris pasirenkamus argumentus, kurie nustato, ar darbaknygę reikia išsaugoti prieš uždarant ir panašiai.

Norėdami perduoti metodui argumentus, iškvietę metodą turite užsirašyti šių argumentų reikšmes, atskirtas kableliais. Pavyzdžiui, jei norite išsaugoti aktyvią darbaknygę kaip failą .csv pavadinimu „Knyga2“, tuomet reikia iškviesti metodą Išsaugoti kaip objektas Darbo knyga ir perduoti argumentą Failo pavadinimas prasmė 2 knyga, ir argumentas Failo formatas- prasmė xlCSV:

ActiveWorkbook.SaveAs "Book2", xlCSV

Kad kodas būtų lengviau skaitomas, iškviesdami metodą galite naudoti pavadintus argumentus. Tokiu atveju pirmiausia parašykite argumento pavadinimą, tada priskyrimo operatorių " := “ ir po jo nurodykite vertę. Taigi aukščiau pateiktas metodo iškvietimo pavyzdys Išsaugoti kaip objektas Darbo knyga galima rašyti skirtingai:

ActiveWorkbook.SaveAs Filename:="2 knyga", :=xlCSV

Lange Objektų naršyklė Visual Basic redaktorius rodo visų galimų objektų, jų savybių ir metodų sąrašą. Norėdami atidaryti šį sąrašą, paleiskite Visual Basic redaktorių ir spustelėkite F2.

Pažvelkime į kelis pavyzdžius

1 pavyzdys

Šis VBA kodo fragmentas gali būti ciklo naudojimo pavyzdys Kiekvienam. IN šiuo atveju remsimės juo norėdami parodyti objektų nuorodas Darbo lapai(kuri pagal numatytuosius nustatymus paimta iš aktyvios darbaknygės) ir nuorodos į kiekvieną objektą Darbalapis atskirai. Atminkite, kad kiekvieno darbalapio pavadinimui rodyti naudojama ypatybė yra Vardas objektas Darbalapis.

"Po vieną slinkite per visus aktyvioje darbaknygėje esančius darbalapius" ir parodykite pranešimų laukelį su kiekvieno darbalapio pavadinimu Dim wSheet As Worksheet For Every WSheet in Worksheets MsgBox "Darbalapis rastas: " & wSheet.Name Next wSheet

2 pavyzdys

Šis VBA kodo pavyzdys parodo, kaip galite pasiekti darbalapius ir langelių diapazonus iš kitų darbaknygų. Be to, įsitikinsite, kad jei nuoroda į konkretų objektą nenurodyta, aktyvūs Excel objektai bus naudojami pagal nutylėjimą. Šiame pavyzdyje parodytas raktinio žodžio naudojimas Nustatyti priskirti objektą kintamajam.

Žemiau esančiame objekto kode Diapazonas metodas vadinamas PasteSpecial. Šis metodas įveikia argumentą Įklijuoti prasmė xlPasteValues.

"Nukopijuokite langelių diapazoną iš kitos darbaknygės lapo "Sheet1" (vadinamu Data.xlsx) "ir įklijuokite tik reikšmes į dabartinės darbaknygės (vadinamos CurrWb.xlsm) lapą "Rezultatai" Dim dataWb As Workbook Set dataWb = Workbooks.Open( "C:\Data") "Atkreipkite dėmesį, kad DataWb yra aktyvi darbaknygė, todėl su DataWb objektu atliekami šie veiksmai." Sheets("Sheet1").Range("A1:B10").Kopijuokite "Įklijuokite vertes, nukopijuotas iš langelių diapazono į dabartinės darbaknygės darbalapį "Rezultatai". Atkreipkite dėmesį, kad CurrWb.xlsm darbaknygė nėra "aktyvi" ir todėl turi būti nuoroda į Workbooks("CurrWb").Sheets("Results").Range("A1").PasteSpecial Paste:=xlPasteValues.

3 pavyzdys

Šis VBA kodo fragmentas rodo objekto (kolekcijos) pavyzdį Stulpeliai ir parodo, kaip ji pasiekiama iš objekto Darbalapis. Be to, pamatysite, kad kai nurodote langelį arba langelių diapazoną aktyviame darbalapyje, jums nereikia įtraukti to lapo į nuorodą. Mes vėl sutinkame raktinį žodį Nustatyti, kurio pagalba objektas Diapazonas priskirtas kintamajam plk.

Šis VBA kodas taip pat rodo prieigos prie nuosavybės pavyzdį Vertė objektas Diapazonas ir pakeisti jo reikšmę.

"Naudodami kilpą, peržvelgiame reikšmes A stulpelyje lape "Sheet2", "atliekame aritmetines operacijas su kiekviena iš jų ir įrašome rezultatą" aktyvaus darbalapio (1 lapas) A stulpelyje Dim i As Integer Dim Col As Range Dim dVal As Double "Priskirti kintamąjį Col stulpelį darbalapyje "Sheet2" Nustatyti Col = Sheets("Sheet2").Stulpeliai("A") i = 1 "Peržiūrime visas Col stulpelio langelius paeiliui kol susidursime su tuščiu langeliu Do Until IsEmpty(Col. Cells(i)) "Atlikite aritmetines operacijas su dabartinio langelio reikšme dVal = Col.Cells(i).Value * 3 - 1 "Ši komanda įrašo rezultatą į Aktyvaus lapo A stulpelis. Nuorodoje lapo pavadinimo nurodyti nereikia, nes Tai yra aktyvus darbaknygės lapas.

Ląstelės (i, 1). Reikšmė = dVal i = i + 1 Ciklas KAM Pagrindiniai MS Excel objektai, aprašyti šiame skyriuje, yra šie: darbaknygė (

Darbo knyga) ir

darbaknygių šeima (Workbooks), darbalapis (Worksheet) ir darbalapių šeima (Worksheets), langelių diapazonas arba langelis (Range).

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Pavyzdys:

WorkBooks šeima („Book1“) suteikia prieigą prie darbaknygės. Skliausteliuose nurodytas knygos pavadinimas.

WorkSheets („Sheet1“) šeima suteikia prieigą prie darbalapio. Lapo pavadinimas nurodytas skliausteliuose.

Diapazono šeima suteikia prieigą prie ląstelių diapazono arba langelio. Skliausteliuose nurodomas langelių diapazonas arba langelio pavadinimas.

Ląstelių šeima (eilutės Nr., stulpelio Nr.) suteikia prieigą prie ląstelės. Langelių koordinatės nurodytos skliausteliuose.

Pavyzdžiai:

Darbo knygos („1 knyga“)

Darbo lapai („Sheet1“) Diapazonas („A1“) Diapazonas („A1:B10“) Langeliai (2,3) Langeliai (k, i+1)

5.4.4.1. Darbaknygės objektas ir Darbaknygių šeima

IN MS Excel hierarchijos objektas Darbaknygė (darbo knyga) pateikiama iškart po programos objekto ir yra darbaknygės failas. Darbaknygė saugoma XLS (standartinė darbaknygė) arba XLA (visiškai sukompiliuota programa) failuose. Darbaknygės ypatybės ir metodai leidžia

dirbti su failais. Šis objektas yra šeimos (rinkinio) dalis

Darbo knygos (<Индекс>) grąžina objektą su indeksu rinkinyje.

Darbo knygos (“<Имя>") grąžina objektą pagal pavadinimą rinkinyje. ActiveWorkbook grąžina nuorodą į aktyvią darbaknygę tuo metu, kai vykdoma komanda.

5.4.4.1.1. Savybės

ActiveSheet grąžina aktyvų darbalapį. Norėdami gauti lapo pavadinimą, naudokite objekto Sheet ypatybę Name.

Pavyzdžiai:

MsgBox („Aktyvaus lapo pavadinimas“ & ActiveSheet.Name)

MsgBox(ActiveWorkbook.ActiveSheet.Name) – Dialogo lange rodomas aktyvaus darbalapio pavadinimas. ActiveDialog – grąžina aktyvų dialogo langą. ActiveChart – grąžina aktyvią diagramą.

Lapai – pateikia visų darbaknygės lapų šeimą.

Darbalapiai – pateikia visų darbaknygės darbalapių šeimą.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Kiekvienam ActiveWorkbook.Sheets MsgBox (s.Name)

Diagramos – pateikia visų darbaknygės diagramų, kurios nėra įdėtos į darbalapius, šeimą.

Skaičiavimas – grąžina darbaknygių šeimos objektų skaičių (skaičius atidaryta programa knygos).

FullName – grąžina visą darbaknygės pavadinimą.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

MsgBox (ActiveWorkbook.FullName)

Pavadinimas – grąžina aktyvios darbaknygės pavadinimą. 245

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

MsgBox (ActiveWorkbook.Name)

Kelias – grąžina kelią į darbaknygės failą.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

MsgBox (ActiveWorkbook.Path)

5.4.4.1.2. Metodai

Aktyvinimo metodas suaktyvina darbaknygę, kad pirmasis jos darbalapis taptų dabartiniu darbalapiu (galima naudoti darbui).

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

WorkBooks („Knyga1“). Suaktyvinkite

Darbaknygė.Suaktyvinti

Uždaryti metodą uždaroma darbaknygė Uždaryti SaveChanges FileName – uždaroma darbaknygė. Parametras SaveChanges leidžia valdyti, ar pakeitimai išsaugomi darbaknygėje. Jei jo reikšmė True , tada pakeitimai išsaugomi, jei – False , tada jie neišsaugomi. Parametras FileName yra eilutė, kurioje yra darbaknygės failo pavadinimas.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

WorkBooks("Knyga1").Uždaryti WorkBooks("Knyga1").Close SaveChanges:=Tikrasis failo pavadinimas:="Knyga2"

Naujas langas skirtas atidaryti nurodytą knygą naujame lange.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

WorkBooks ("Knyga1").NewWindow

Išsaugoti naudojamas darbaknygės pakeitimams įrašyti.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Darbo knygos („1 knyga“). Išsaugoti

SaveAs Filename – naudojamas knygai išsaugoti kitu pavadinimu (kitame faile).

SaveAsCopy – skirtas įrašyti darbaknygę kitame faile, paliekant ją atidarytą tuo pačiu pavadinimu.

Pavyzdžiai:

WorkBooks ("Knyga1").SaveAs FileName:="kdjf.xls"

ActiveBook.SaveAsCopy FileName:="Mano knyga"

Open Filename – leidžia atidaryti darbaknygę su pavadinimu, nurodytu parametre FileName.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Workbooks.Open FileName:="Knyga1.xls"

5.4.4.1.3. Renginiai

Pagrindiniai darbaknygės objekto įvykiai parodyti lentelėje. 5.13.

5.13 lentelė

Kai įvyksta įvykis

Užveriant darbo knygą

Prieš spausdinant darbo knygą

Prieš išsaugant darbaknygę

Pridedant naują lapą

Atidarius darbo knygą

Kai suaktyvinate darbalapį

5.4.4.2. Darbalapio objektas ir WorkSheets šeima

IN MS Excel hierarchijos objektas Darbalapis ateina iškart po to

Darbaknygės objektas vaizduoja darbalapį darbaknygėje ir yra darbalapių šeimos (rinkinio) dalis.

Pavyzdžiai:

Darbalapiai („Sheet1“). Aktyvinti darbalapius (1). Aktyvinti

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Activesheet.Range („a1“)=1

5.4.4.2.1. Savybės

Ypatybė Name leidžia dirbti su darbalapio pavadinimu.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Darbalapiai(1).Name=”Rezultatai”

ActiveCell – grąžina aktyvų aktyvaus darbalapio langelį.

langelį su nurodytomis koordinatėmis.

Stulpeliai (<столбец>) – grąžina nuorodą į stulpelį. Parametras gali būti stulpelio pavadinimas arba numeris.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Darbalapiai(1).Stulpeliai(“a”)=1

Darbalapiai(1).Stulpeliai(1)=1

Eilutės (<строка>) -in grąžina nuorodą į eilutę. Eilutės numeris gali būti naudojamas kaip parametras.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Darbalapiai(1).Eilutės(1)=1

Diapazonas (<Диапазон ячеек>) – grąžina nuorodą į nurodytą langelių diapazoną.

Po objekto, dažniausiai per tašką“. “, nurodo savybę arba metodą. Kartais, norint patekti į tam tikrą objektą, reikia pereiti aukštesnio lygio objektų hierarchiją.

Darbalapiai („Sheet1“).UsedRange.Value=1 Count – grąžina lapų skaičių darbaknygėje.

Matoma – nustato, ar darbalapis rodomas darbaknygėje. Galiojančios reikšmės yra: True – darbalapis rodomas ekrane False – darbalapis nematomas (paslėptas), tačiau jį galima rodyti ekrane naudojant komandų seką Formatas, Lapas,

Rodyti (Formatas, Lapas, Rodyti); xlLabai paslėpta – darbalapis yra paslėptas ir ekrane gali būti rodomas tik programiškai.

Pavyzdžiai:

Sub Tušti() Darbalapiai(“Sheet3”).Visible=False

Sub Open ()

Darbalapiai („Sheet3“).Visible=Tiesa

Sub Empty1() Worksheets ("Sheet4"). Matoma=xlLabai paslėpta

© 2024 ermake.ru - Apie kompiuterių taisymą - Informacinis portalas