Lucrul cu vba în aplicația ms excel. Model obiect MS Excel

Lectura Model obiect MS Excel.

1. caracteristici generale Model obiect MS Excel

2. Caracteristicile obiectelor

3. Lucrul în mediu VBA. Gestionarea proprietăților obiectului

Introducere

Tabular procesor Excel este un program cu suficient posibilități largi, dintre care majoritatea sunteți familiarizat. Cu toate acestea, pe lângă aceasta, dezvoltatorii au inclus instrumente de adaptare în acesta pentru a crește eficiența rezolvării unor probleme specifice. Aceste mijloace includ diverse setari, instrumente pentru automatizarea acțiunilor utilizatorului (macro), precum și un sistem de programare VBA încorporat. Aplicația în sine este dezvoltată folosind OOP, iar VBA oferă acces la obiectele programului, astfel încât un utilizator calificat are posibilități aproape nelimitate pentru adaptarea acestei aplicații. În aceasta și în următoarele câteva lecții vă vom prezenta modul în care aceasta poate fi utilizată.

1. Caracteristici generale ale modelului obiectDOMNIȘOARĂexcela

OOP este construit în jurul utilizării obiectelor. Obiectele reale ale lumii înconjurătoare au două caracteristici principale: au un set de proprietăți și sunt capabile metode diferite schimba aceste proprietăți și răspunde la evenimente care apar atât în ​​lumea înconjurătoare, cât și în interiorul obiectului însuși. În această formă este implementat conceptul de obiect în limbaje de programare, ca un set de proprietăți (structuri de date caracteristice acestui obiect) și metode de procesare a acestora (rutine de modificare a proprietăților).

Proprietățile sunt parametri care descriu un obiect. Proprietățile, de exemplu, identifică un obiect, îi determină aspectul, poziția pe ecran și dimensiunile.

Metodele sunt acțiuni efectuate de un obiect, operatorii săi de lucru. În general, metodele sunt proceduri (acțiuni) care pot fi efectuate, iar proprietățile sunt atribute care pot fi setate de utilizator sau de sistem.

La executarea programelor OOP, este implementat principiul evenimentului, a cărui esență este că obiectele programului pot reacționa la evenimentele care au loc în sistem. Evenimentele sunt mesaje care determină ordinea acțiunilor unui program. Evenimentele pot fi de natură diferită - clicuri de mouse, deplasarea cursorului mouse-ului, introducerea sau modificarea datelor, clic pe butoanele din ferestrele programului sau pe tastele tastaturii, erori de program și de sistem etc. Reacția constă în executarea uneia dintre metodele obiectului. Majoritatea obiectelor sunt caracterizate de un eveniment Click, care are loc atunci când faceți clic pe butonul stâng al mouse-ului pe obiectul selectat. De asemenea, sunt caracteristice următoarele evenimente: DblClick (dublu clic), MouseDown, MouseUp (apăsarea și eliberarea butonului mouse-ului), Exit și Enter (pierderea și obținerea focalizării) și multe altele.

Sarcina programatorului atunci când creează un program este de a include obiectele necesare în program din toate obiectele disponibile, de a determina o listă de evenimente la care programul ar trebui să răspundă și de a indica ce metode trebuie utilizate atunci când are loc fiecare eveniment.

Dacă nu există niciun obiect cu caracteristicile necesare, programatorul poate crea un astfel de obiect și, ulterior, îl poate utiliza în acest sau altul program.

La adaptarea unei aplicații, nu este nevoie să creați obiecte noi este suficient să le folosiți pe cele existente. Trebuie doar să le cunoști. O idee despre compoziția și relațiile dintre obiecte este oferită de modelul obiect al aplicației. Fiecare aplicație are propria sa.

Modelul obiect MS Excel este o ierarhie de obiecte subordonate obiectului Aplicație, care corespunde aplicației în sine.

Numărul de obiecte este destul de mare, ele formează o structură asemănătoare copacului (ramurile mai mici sunt proprietăți ale celor mai mari). Rădăcina acestui „arboresc” (obiectul inițial) este Application (aplicația MS Excel însăși).

Unele obiecte sunt unice (adică există într-o singură copie), iar unele sunt membre ale colecțiilor (familii). Pentru obiectele individuale, este suficient să specificați numele, iar pentru membrii familiei - numele de familie și numărul sau numele membrului familiei.


Mai jos sunt câteva dintre obiectele MS Excel pe care le vom folosi în programele noastre.

Orez. 1. Modelul obiect Excel simplificat

În această figură, pentru familii, numele obiectelor din familii sunt scrise între paranteze.

Pentru a accesa o proprietate sau o metodă a unui obiect (o referință la obiect), poate fi folosită o referință completă sau implicită.

O referință completă constă dintr-o serie de nume de obiecte imbricate (în conformitate cu o ierarhie). Un punct este folosit ca separator de nume. De exemplu, link complet la celula A5 a foii de lucru Foaia 1 registrul de lucru Cartea 1(și, de exemplu, scrierea numărului 10 în el) în operatorul de atribuire are forma:

Application.Workbooks ("Carte1")).Fise de lucru ("Foaie1").Range("A5") = 10

Model obiect Excel

Obiecte Excel

Programator care lucrează în excela, trebuie să navigheze liber în lumea obiectelor sale. Puterea programării de birou este determinată de faptul că programatorul o are inițial la dispoziție număr mare obiecte deja terminate. Pentru a folosi bine oportunitățile oferite, trebuie să cunoașteți obiectele.

Vorbind despre obiecte excela Este recomandabil să începeți prin a vă uita la scheletul documentului excela. Am scris multe despre conceptul important de schelet de document în cărțile anterioare. Numeroasele biblioteci de obiecte Office 2000, a căror colecție reprezintă Office 2000 pentru programator, oferă cadrul pentru toate documentele care pot fi construite în acest mediu. Când este creat document nou, De exemplu, Caietul de lucru Excel, apoi implicit, mai multe sunt selectate din întregul set de biblioteci, ale căror obiecte formează cadrul documentului. Aceste obiecte sunt disponibile programatorului fără niciun efort suplimentar. Rol central în cadrul documentului excela jucat, desigur, de obiectele bibliotecii excela. Dar cunoştinţe iar toate celelalte obiecte incluse în cadru sunt necesare. De exemplu, când crearea de software interfata este necesara cunoştinţe Obiecte de bibliotecă partajată Office. Voi observa, de asemenea, că, dacă se dorește, programatorul poate oricând extinde cadrul de documente adăugând anumite biblioteci la acesta. Wireframe creat în mod implicit atunci când este deschis unul nou registrul de lucru, constă din obiecte incluse în următoarele biblioteci:

· excela- o bibliotecă care pune bazele documentelor Excel. Clasa care definește obiectul rădăcină Excel.Application și toate clasele de obiecte imbricate în obiectul rădăcină sunt stocate aici.

· Birou- biblioteca de obiecte comune tuturor Aplicații de birou 2000. Iată care sunt clasele care definesc tablouri de bord- CommandBar și clase ale altor obiecte comune. Aici se află și clasele care definesc Asistentul (obiectul Asistent și toate clasele asociate acestuia). În special, a apărut un nou obiect care nu era în versiunea anterioară - Answer Wizard.

· Stdole- o bibliotecă de clase care vă permite să lucrați cu obiecte OLE și să implementați automatizarea.

· VBA- biblioteca de clase legate de limbajul VBA. Totul este stocat aici specificații standardși constante încorporate în limbaj, clasele Collection și ErrObject.

· VBAProject- proiectul implicit asociat documentului. Clase care pot fi create de un programator în acest proiect, metode, proprietăți - toate acestea sunt disponibile pentru vizualizare, la fel ca obiectele claselor încorporate în bibliotecile standard.

Dacă comparăm cadrul registrului de lucru excela, de exemplu, cu un cadru de document Cuvânt, apoi diferă prin faptul că unul se bazează pe o bibliotecă excela, celălalt se bazează pe o bibliotecă Cuvânt. Aceste biblioteci conțin obiecte specifice aplicației. În ceea ce privește obiectele de interfață, obiectele care definesc mediul editorului VBA, automatizare, apoi obiecte comune sunt folosite aici. Biblioteci de birou, Stdole, VBA- Acestea sunt biblioteci comune tuturor aplicațiilor Office 2000. Am vorbit în detaliu despre obiectele acestor biblioteci în.

Observ că, deși cadrul documentului excela neschimbat în Office 2000 comparativ cu versiunea anterioara, în același timp, au avut loc schimbări destul de semnificative în modelul obiectului, au apărut noi obiecte, noi proprietăți și metode ale obiectelor existente anterior.

Model obiect Excel

În primul rând, câteva cuvinte despre cum funcționează Model obiect Excelși alte aplicații Office 2000 În acest model, obiectele sunt legate între ele prin relație încorporarea. La nivelul zero al ierarhiei există unele centrale un obiect, în care sunt încorporate alte obiecte care alcătuiesc primul nivel al ierarhiei. Obiectele următorului nivel pot fi încorporate în fiecare dintre obiectele primului și al nivelurilor următoare. Deci acest proces continuă. Astfel, obiectele din acest model sunt „groase” deoarece au un număr mare de alte obiecte încorporate în ele. Acest lucru este valabil mai ales pentru obiectele pe care stau în picioare niveluri superioare ierarhie.

Adnotare: Prelegerea este dedicată unei descrieri a modelului obiect MS Excel și unei descriere detaliată a metodelor, proprietăților și evenimentelor de aplicare.

13.1. Caracteristici de programare pentru MS Excel

Microsoft Office Excel sunt foi de calcul populare. De obicei, la programarea pentru acest program, sunt urmărite următoarele obiective:

  • Automatizarea calculelor.
  • Automatizarea introducerii și procesării informațiilor.
  • Lucrul cu baze de date - ieșire, intrare, analiză, vizualizare a informațiilor.
  • Analiza informațiilor financiare și de altă natură.
  • Crearea sistemelor de organizare a introducerii automate a datelor
  • Modelare matematică.

ÎN vedere generala programareîn Excel este similar cu lucrul cu Microsoft Word. Cu toate acestea, una dintre principalele diferențe este că în Excel Spațiul de lucru Foaia este împărțită în celule, fiecare având propriul nume. Numele celulelor pot fi de două tipuri.

  • Primul fel (stil A1) este un nume format dintr-un nume de coloană alfabetic și un număr de rând. De exemplu, A1 este celula situată la intersecția coloanei A (prima) și primul rând.
  • Un alt tip sunt indicii de celule (stil de denumire R1C1). Pentru a adresa o celulă în acest stil, indicați numărul rândului (R - Rând) și numărul coloanei (C - Coloana) la intersecția cărora se află celula. Rândurile sunt numerotate inițial, iar numerele coloanei încep de la 1 - prima coloană corespunde coloanei A, a doua - B etc. De exemplu, (2, 3) este adresa celulei situată la intersecția celui de-al doilea rând și a treia coloană, adică dacă transferăm aceasta în stilul A1, obținem celula C2 (Fig. 13.1.)


Orez. 13.1.

Următoarele obiecte sunt folosite pentru a efectua majoritatea operațiunilor în MS Excel.

  • Excel.Aplicație - un obiect care reprezintă o aplicație Microsoft Excel, similar cu Word.Application .
  • Caiet de lucru(Carnet de lucru) - reprezintă un registru de lucru - analog document Microsoft Cuvânt. Cu toate acestea, în Word lucrăm cu date aflate într-un document, iar în Excel există un alt obiect pe drumul către date - o foaie de lucru.
  • Fisa de lucru(Foaie de lucru) - un registru de lucru în MS Excel este împărțit în foi de lucru. Pe foaie există celule care pot stoca informații și formule.
  • Interval - poate fi reprezentat ca o singură celulă sau un grup de celule. Acest obiect înlocuiește multe obiecte pentru lucrul cu elemente de document (caracter, cuvânt etc.) care sunt utilizate în Microsoft Word. Ca rezultat, lucrul cu foaia devine foarte clar și convenabil - pentru a lucra cu orice celulă, trebuie doar să cunoașteți numele acesteia (în format A1) sau adresa (R1C1).
  • QueryTable - acest obiect este folosit pentru a importa informații din baze de date în Microsoft Excel. Conectarea la baza de date, cerere de informații etc. sunt produse folosind obiectul, iar rezultatele solicitării sunt încărcate într-o foaie MS Excel sub forma unui tabel obișnuit.
  • PivotTable este un fel deosebit electronic tabele Excel- permite ea modul interactiv rezuma și analiza cantități mari de informații, în special extrase dintr-o bază de date.
  • Diagramă(Diagrama) - reprezintă o diagramă. Ele sunt de obicei folosite pentru vizualizarea datelor.

Să începem să revizuim Model obiect MS Excel din obiectul Aplicație.

13.2. Obiect de aplicație

MsgBox Excel.Application.Name Lista 13.1. Afișează numele aplicației

După rularea programului, o casetă de mesaj va afișa numele aplicației - în acest caz, Microsoft Excel. Evident, proprietatea Name a obiectului Application returnează numele aplicației.

Acum să ne uităm la cel mai mult metode importanteși proprietățile aplicației. Unele dintre ele sunt similare cu cele din MS Word. De exemplu, metoda Quit, la fel ca în Word, închide aplicația. Proprietate vizibilă este responsabil pentru vizibilitatea ferestrei programului etc.

13.3. Metode de aplicare

13.3.1. Calculare - recalculare forțată

Această metodă, numită pe obiectul Aplicație, vă permite să numărați toate deschiderile de carte. Poate fi apelat și pentru cărți individuale (obiect Caiet de lucru) foi ( Fisa de lucru), celulele și intervalele lor (Range). De exemplu, codul din Lista 13.2. vă permite să numărați toate cărțile deschise.

Aplicație.Calculează Lista 13.2. Numără toate cărțile deschise

13.3.2. GoTo - du-te la celulă

13-02-Excel GoTo.xlsm - exemplu pentru clauza 13.3.2.

Vă permite să selectați orice interval de celule din orice carte, iar dacă cartea nu este activă, aceasta va fi activată. Metoda poate rula și macrocomenzi Microsoft Excela.

Apelul complet al metodei arată astfel:

Mergeți la (Referință, Derulați)

Parametrul de referință este o referință la o celulă sau un interval de celule care ar trebui selectat după apelarea metodei. Numele macrocomenzii poate fi folosit și aici - apoi va fi lansat.

Parametrul Scroll este responsabil pentru „rebobinare” Foaie Excel la celulele selectate - astfel încât colțul din stânga sus al selecției să coincidă cu colțul din stânga sus al zonei afișate a foii. Dacă Scroll este setat la True, foaia este rebobinată dacă este setată la False, nu este.

De exemplu, un astfel de apel (Listing 13.3) vă permite să selectați celula H500 pe foaia activă.

Application.Goto _ Reference:=ActiveSheet.Range("H500"), _ Scroll:=True Lista 13.3. Selectați celula H500

După cum puteți vedea, accesarea foii active este foarte asemănătoare cu accesarea documentului activ în MS Word. Rețineți că folosim un apel complet de metodă - Application.GoTo - după cum știți, de obicei puteți utiliza proprietățile și metodele obiectului Application în cod fără a specifica obiectul. Cu toate acestea, dacă nu specificați Aplicație în acest caz, atunci în loc de metoda GoTo, programul va încerca să execute operator de sărituri necondiţionate Mergi la.

13.3.3. SendKeys - simulând apăsarea tastelor de la tastatură

13-03-Excel SendKeys.xlsm - exemplu pentru clauza 13.3.3.

O metodă foarte interesantă - vă permite să transferați apăsările de taste în fereastra activă a aplicației. Apelul complet al metodei arată astfel:

SendKeys(Cheile, Așteptați)

Parametrul Taste vă permite să specificați tastele ale căror apăsări vor fi transmise aplicației. Metoda acceptă emularea atât alfanumerice, cât și tastele de control, pentru care se folosește o codificare specială. Tastele alfanumerice sunt indicate atunci când sunt apelate în dvs în forma obișnuită De exemplu, pentru a transmite caracterul „F” trebuie să îl specificați atunci când apelați o metodă etc.

Pentru a transmite apăsările de taste către o aplicație Backspace- utilizați codul (BS). Pentru a transmite un buton apăsați introduce utilizați pictograma ~ (

Termen Obiecte Excel(înțeles în linii mari ca model de obiect Excel) include elementele care alcătuiesc orice registru de lucru Excel. Acestea sunt, de exemplu, foi de lucru ( Fișe de lucru), siruri de caractere ( Rânduri), coloane ( Coloane), intervale de celule ( Intervalele) și registrul de lucru Excel în sine ( Caiet de lucru) inclusiv. Fiecare obiect Excel are un set de proprietăți care fac parte integrantă din acesta.

De exemplu, obiect Fisa de lucru(foaia de lucru) are proprietăți Nume(Nume), Protecţie(protecţie), Vizibil(vizibilitate), Zona de derulare(zona de defilare) și așa mai departe. Astfel, dacă în timpul execuției unei macrocomenzi trebuie să ascundeți foaia de lucru, atunci doar schimbați proprietatea Vizibil această foaie.

ÎN Excel VBA există un tip special de obiecte - Colectie. După cum sugerează și numele, o colecție se referă la un grup (sau colecție) de obiecte Excel. De exemplu, o colecție Rânduri este un obiect care conține toate rândurile foii de lucru.

Toate obiectele Excel majore pot fi accesate (direct sau indirect) prin intermediul obiectului Caiete de lucru, care este o colecție a tuturor registrelor de lucru deschise în prezent. Fiecare registru de lucru conține un obiect Foi– o colecție care include toate fișele de lucru și fișele de diagramă din registrul de lucru. Fiecare obiect Fisa de lucru constă dintr-o colecție Rânduri– include toate rândurile foii de lucru și colecțiile Coloane– toate coloanele foii de lucru și așa mai departe.

Următorul tabel listează unele dintre cele mai frecvent utilizate obiecte Excel. O listă completă a obiectelor Excel VBA poate fi găsită pe site-ul Microsoft Office Developer (în engleză).

Un obiect Descriere
Aplicație aplicație Excel.
Caiete de lucru O colecție a tuturor registrelor de lucru deschise în prezent în aplicatia curenta Excela. Un anumit registru de lucru poate fi accesat printr-un obiect Caiete de lucru folosind indexul numeric al registrului de lucru sau numele acestuia, de exemplu, Caiete de lucru(1) sau Caiete de lucru(„Cartea 1”).
Caiet de lucru Un obiect Caiet de lucru- Acesta este un registru de lucru. Poate fi accesat prin intermediul colecției Caiete de lucru folosind un index numeric sau un nume de registru de lucru (vezi mai sus). Pentru a accesa registrul de lucru activ în prezent, puteți utiliza ActiveWorkbook.

Din obiect Caiet de lucru puteți accesa obiectul Foi, care este o colecție de toate foile dintr-un registru de lucru (fișe de lucru și diagrame), precum și un obiect Fișe de lucru, care este o colecție a tuturor fișelor de lucru Caiete de lucru Excel.

Foi Un obiect Foi este o colecție de toate foile dintr-un registru de lucru. Acestea pot fi fie foi de lucru, fie diagrame. foaie separată. Accesați o fișă individuală dintr-o colecție Foi poate fi obținut folosind indexul numeric al foii sau numele acesteia, de exemplu, Foi (1) sau Foi de calcul ("Sheet1").
Fișe de lucru Un obiect Fișe de lucru este o colecție de toate foile de lucru dintr-un registru de lucru (adică toate foile de lucru, cu excepția diagramelor de pe o foaie separată). Accesați o fișă de lucru individuală dintr-o colecție Fișe de lucru poate fi obținut folosind indexul numeric al foii de lucru sau numele acesteia, de exemplu, Fișe de lucru (1) sau Fișe de lucru ("Sheet1").
Fisa de lucru Un obiect Fisa de lucru este o foaie de lucru separată într-un registru de lucru Excel. Poate fi accesat folosind indexul numeric al foii de lucru sau numele foii de lucru (vezi mai sus).

În plus, puteți folosi Foaie activă pentru a accesa foaia de lucru activă în prezent. Din obiect Fisa de lucru obiectele pot fi accesate RânduriȘi Coloane, care sunt o colecție de obiecte Gamă, făcând referire la rândurile și coloanele foii de lucru. De asemenea, puteți accesa celulă separată sau la orice interval de celule adiacente din foaia de lucru.

Rânduri Un obiect Rânduri este o colecție a tuturor rândurilor dintr-o foaie de lucru. Un obiect Gamă, constând din linie separată foaia de lucru, poate fi accesată de acel număr de linie, de exemplu, Rânduri(1).
Coloane Un obiect Coloane este o colecție a tuturor coloanelor unei foi de lucru. Un obiect Gamă, constând dintr-o singură coloană de foaie de lucru, poate fi accesat prin numărul de coloană respectiv, de ex. Coloane(1).
Gamă Un obiect Gamă este orice număr de celule adiacente dintr-o foaie de lucru. Aceasta poate fi o celulă sau toate celulele foii.

Un domeniu format dintr-o singură celulă poate fi accesat printr-un obiect Fisa de lucru folosind proprietatea Celulele, De exemplu, Foaie de lucru.Celele(1,1).

Într-un alt mod, o referință la un interval poate fi scrisă prin specificarea adreselor celulelor de început și de sfârșit. Ele pot fi scrise separate prin două puncte sau virgulă. De exemplu, Foaia de lucru.Interval(„A1:B10”) sau Foaia de lucru.Range(„A1”, „B10”) sau Foaia de lucru.Range(Celele(1,1), Cells(10,2)).

Vă rugăm să rețineți dacă adresa Gamă a doua celulă nu este specificată (de exemplu, Foaia de lucru.Range(„A1”) sau Foaia de lucru.Range(Celele(1,1)), atunci va fi selectat un interval format dintr-o singură celulă.

Tabelul de mai sus arată cum sunt accesate obiectele Excel prin obiectele părinte. De exemplu, o referință la un interval de celule poate fi scrisă astfel:

Caiete de lucru(„Cartea1”).Fișe de lucru(„Foaie1”).Range(„A1:B10”)

Atribuirea unui obiect unei variabile

În Excel VBA, un obiect poate fi atribuit unei variabile folosind un cuvânt cheie A stabilit:

Dim DataWb As Workbook Set DataWb = Workbooks("Book1.xlsx")

Obiect activ

Există un obiect activ în Excel la un moment dat Caiet de lucru este registrul de lucru deschis în prezent. La fel, există un obiect activ Fisa de lucru, obiect activ Gamăși așa mai departe.

Consultați obiectul activ Caiet de lucru sau Foaieîn codul VBA puteți proceda astfel: ActiveWorkbook sau Foaie activă, și la obiectul activ Gamă- Cum Selecţie.

Dacă codul VBA conține o referință la o foaie de lucru fără a specifica registrului de lucru căruia îi aparține, Excel este implicit la registrul de lucru activ. În mod similar, dacă faceți referire la un interval fără a specifica un anumit registru de lucru sau o foaie de lucru, Excel va utiliza implicit foaia de lucru activă din registrul de lucru activ.

Deci pentru a face referire la o gamă A1:B10 pe foaia de lucru activă a registrului de lucru activ, puteți scrie pur și simplu:

Interval ("A1:B10")

Schimbarea obiectului activ

Dacă în timpul execuției programului trebuie să activați un alt registru de lucru, o altă foaie de lucru, un interval și așa mai departe, atunci trebuie să utilizați metodele Activati sau Selectați ca aceasta:

Sub ActivateAndSelect() Workbooks("Book2").Activate Worksheets("Sheet2").Select Worksheets("Sheet2").Range("A1:B10").Select Worksheets("Sheet2").Range("A5") .Activați End Sub

Metode obiect, inclusiv metodele tocmai folosite Activati sau Selectați, vor fi discutate mai detaliat mai jos.

Proprietăți obiect

Fiecare obiect VBA are proprietăți atribuite. De exemplu, obiect Caiet de lucru are proprietăți Nume(Nume), Numarul de revizie(număr de salvări), Foi(coli) și multe altele. Pentru a accesa proprietățile unui obiect, trebuie să scrieți numele obiectului, apoi un punct și apoi numele proprietății. De exemplu, numele registrului de lucru activ poate fi accesat astfel: ActiveWorkbook.Nume. Astfel, pentru a atribui unei variabile wbNume numele registrului de lucru activ, puteți utiliza acest cod:

Dim wbName As String wbName = ActiveWorkbook.Name

Anterior am arătat cum un obiect Caiet de lucru poate fi folosit pentru a accesa un obiect Fisa de lucru folosind această comandă:

Caiete de lucru(„Cartea1”).Fișe de lucru(„Foaia1”)

Acest lucru este posibil pentru că colecția Fișe de lucru este o proprietate a unui obiect Caiet de lucru.

Unele proprietăți ale obiectelor sunt doar pentru citire, ceea ce înseamnă că utilizatorul nu își poate schimba valorile. În același timp, există proprietăți care pot fi atribuite sensuri diferite. De exemplu, pentru a schimba numele foii active în „ Foaia mea de lucru„, atribuiți acest nume proprietății Nume foaie activă, astfel:

ActiveSheet.Name = „Foaia mea de lucru”

Metode obiect

Obiectele VBA au metode pentru a efectua anumite acțiuni. Metode obiect sunt proceduri legate de obiecte anumit tip. De exemplu, obiect Caiet de lucru are metode Activati, Închide, Salvați si multe altele.

Pentru a apela o metodă pe un obiect, trebuie să scrieți numele obiectului, un punct și numele metodei. De exemplu, pentru a salva registrul de lucru activ, puteți utiliza această linie de cod:

ActiveWorkbook.Salvare

Ca și alte proceduri, metodele pot avea argumente care sunt transmise metodei atunci când este apelată. De exemplu, metoda Închide obiect Caiet de lucru are trei argumente opționale care determină dacă registrul de lucru trebuie salvat înainte de închidere și altele asemenea.

Pentru a transmite argumente unei metode, trebuie să notați valorile acestor argumente după apelarea metodei, separate prin virgule. De exemplu, dacă doriți să salvați registrul de lucru activ ca fișier .csv cu numele „Book2”, atunci trebuie să apelați metoda Salvează ca obiect Caiet de lucru si trece argumentul Nume de fișier sens Cartea 2, și argumentul Tipul fisierului- sens xlCSV:

ActiveWorkbook.SaveAs „Book2”, xlCSV

Pentru a face codul mai lizibil, puteți folosi argumente numite atunci când apelați o metodă. În acest caz, scrieți mai întâi numele argumentului, apoi operatorul de atribuire „ := ” și după aceasta indicați valoarea. Deci, exemplul de apel al metodei de mai sus Salvează ca obiect Caiet de lucru poate fi scris diferit:

ActiveWorkbook.SaveAs Filename:="Book2", :=xlCSV

La fereastră Browser de obiecte editor Visual Basic arată o listă cu toate obiectele disponibile, proprietățile și metodele acestora. Pentru a deschide această listă, lansați Editorul Visual Basic și faceți clic F2.

Să ne uităm la câteva exemple

Exemplul 1

Acest fragment de cod VBA poate servi ca o ilustrare a utilizării unei bucle Pentru fiecare. În acest caz, ne vom referi la el pentru a demonstra referințele la obiect Fișe de lucru(care în mod implicit este preluat din registrul de lucru activ) și legături către fiecare obiect Fisa de lucru separat. Rețineți că proprietatea utilizată pentru afișarea numelui fiecărei foi de lucru este Nume obiect Fisa de lucru.

„Parcurgeți toate foile de lucru din registrul de lucru activ una câte una” și afișați o casetă de mesaj cu numele fiecărei foi de lucru Dim wSheet As Worksheet For Each wSheet in Worksheets MsgBox „Worksheet found: ” & wSheet.Name Next wSheet

Exemplul 2

Acest exemplu de cod VBA arată cum puteți accesa foile de lucru și intervalele de celule din alte registre de lucru. În plus, vă veți asigura că, dacă nu este specificată o referință la un anumit obiect, atunci obiectele active Excel sunt utilizate în mod implicit. Acest exemplu demonstrează utilizarea unui cuvânt cheie A stabilit pentru a atribui un obiect unei variabile.

În codul de mai jos, pentru obiect Gamă se numește metoda PasteSpecial. Această metodă trece argumentul Pastă sens xlPasteValues.

„Copiați o serie de celule din foaia „Sheet1” a altui registru de lucru (numit Data.xlsx) „și lipiți numai valorile în foaia „Rezultate” a registrului de lucru curent (numit CurrWb.xlsm) Dim dataWb As Workbook Set dataWb = Workbooks.Open( "C:\Data") „Rețineți că DataWb este registrul de lucru activ. Prin urmare, următoarea acțiune este efectuată pe obiectul Sheets din DataWb. Sheets(„Sheet1”).Range(„A1:B10”).Copiați „Lipiți valorile copiate din intervalul de celule în foaia de lucru „Rezultate” a registrului de lucru curent. Vă rugăm să rețineți că registrul de lucru CurrWb.xlsm nu este „activ” și, prin urmare, trebuie să fie referit la Workbooks(„CurrWb”).Sheets(„Results”).Range(„A1”).PasteSpecial Paste:=xlPasteValues.

Exemplul 3

Următorul fragment de cod VBA arată un exemplu de obiect (colecție) Coloaneși demonstrează cum este accesat de la un obiect Fisa de lucru. În plus, veți vedea că atunci când faceți referire la o celulă sau un interval de celule din foaia de lucru activă, nu trebuie să includeți acea foaie în referință. Întâlnim din nou cuvântul cheie A stabilit, cu ajutorul căruia obiectul Gamă atribuite unei variabile col.

Acest cod VBA arată, de asemenea, un exemplu de accesare a unei proprietăți Valoare obiect Gamăși schimbându-i sensul.

„Folosind o buclă, privim prin valorile din coloana A pe foaia „Sheet2”, „efectuăm operații aritmetice cu fiecare dintre ele și scriem rezultatul „în coloana A a foii de lucru active (Sheet1) Dim i As Integer Dim Col As Range Dim dVal As Double "Atribuiți variabila Col coloana A a foii de lucru "Sheet2" Set Col = Sheets("Sheet2").Columns("A") i = 1 "Uită-te prin toate celulele coloanei Col secvenţial până la " până când se întâlnește o celulă goală. Do Until IsEmpty(Col. Cells(i)) "Efectuați operații aritmetice pe valoarea celulei curente dVal = Col.Cells(i).Value * 3 - 1 "Următoarea comandă scrie rezultatul în coloana A "a foii active. Nu este nevoie să specificați numele foii în referință, "deoarece Aceasta este foaia activă a registrului de lucru. Celule(i, 1).Valoare = dVal i = i + 1 Buclă

Dintre toate programele de birou, Excel este cel mai des folosit pentru a crea aplicații personalizate. Există două explicații pentru aceasta. In primul rand, pachetul curent Proiectat pentru o gamă largă de aplicații de prelucrare a datelor. În al doilea rând, de fapt, cu el a început istoria VBA-ului modern. Cu doar câteva linii de cod incluse în Excel, puteți crea un program care poate efectua calcule serioase și analize creative folosind grafică și raportare. Cu toate acestea, pentru dezvoltare aplicatii proprii sunt necesare urmatoarele conditii:

§ trebuie să învățați cum să lucrați cu Excel în versiunea sa tradițională, ceea ce vă va permite să utilizați un minim codul programului utilizați maximul capacităților încorporate ale pachetului. Cu cât cunoști mai bine produsul în sine, cu atât este mai ușor să creezi aplicații;

§ se cere stăpânirea modelului obiect ierarhic al Excel împreună cu proprietățile, metodele și evenimentele corespunzătoare prin care se efectuează controlul Mediul Excel la dezvoltarea unei aplicații personalizate;

§ mediul ar trebui studiat Dezvoltare VBA, unde puteți scrie cod de program, puteți crea formulare personalizate și puteți depana aplicația.

Excel este format din peste 100 de obiecte - de la celule și diagrame până la registre de lucru și foi de calcul. Fiecare obiect are un set de proprietăți care îl controlează aspectși comportament și, de asemenea, conține metode care oferă acțiuni specifice folosind acest obiect. Unele obiecte au evenimente.

De exemplu, un obiect Workbook reprezintă un anumit fisier Excel. Are proprietățile Nume (numele fișierului), Calea (numele directorului) și Autorul (numele autorului fișierului). Metoda Salvare salvează fișierul. Iată cum arată utilizarea acestor metode:

Există două moduri de a te referi la obiecte: te poți referi direct la numele unuia dintre obiecte sau la un index din colecție. In conformitate cu definiție simplă o colecție este un grup de obiecte similare. Toate obiectele Excel sunt împărțite în două clase: obiecte individuale și obiecte dintr-o colecție. Pentru primii, legătura se face direct după numele lor, pentru cei din urmă - prin index în acest grup. Colecțiile oferă o oportunitate organizare ierarhică obiecte. De exemplu, colecția Workbooks conține toate obiectele Workbook. Pentru a face referire la un anumit registru de lucru, puteți specifica un nume:

Caiete de lucru(„Cartea1.xls”)

sau număr
Caiete de lucru(1)

Patru obiecte cheie

Obiectele cheie din Excel sunt Aplicația, Registrul de lucru, Foaia de lucru și Intervalul, care formează o ierarhie:

Obiectul Aplicație se reprezintă pe sine programul Excel. Toate aplicațiile Excel/VBA sunt implementate în Excel, așa că vă puteți gândi la acest obiect ca fiind mediul în care sunt implementate. Orice setări de proprietate sau apeluri de metodă efectuate pe obiectul Aplicație afectează tot Excel și, prin extensie, toate aplicațiile VBA care rulează în mediul său. De exemplu, folosind obiectul Aplicație, puteți face bara de stare a Excel invizibilă și îi puteți schimba titlul:

Application.DisplayStatusBar = False
Application.Caption = " Aplicație personalizată"

Obiectul Workbook este un fișier Excel workbook. În termeni de dezvoltare a aplicațiilor, aceasta poate fi considerată un mecanism de livrare sau un container pentru orice aplicație VBA creată folosind Excel. Orice setări de proprietate sau apeluri de metodă efectuate pe obiectul Workbook afectează aceasta aplicație. De exemplu, pentru a seta protecția și a salva un registru de lucru, puteți utiliza următorul cod:

Cu Application.Workbooks(1)

Salvați
Se termina cu

Obiectul Foaie de lucru conținut într-un registru de lucru servește mai multor scopuri în aplicația Excel/VBA. Conține celule în care utilizatorul poate include formule pentru a efectua calcule. Proprietățile și metodele obiectului Worksheet procesează foaia de calcul ca întreg. De exemplu, următorul cod schimbă numele foii de calcul (foia de lucru) și o face invizibilă:

Cu aplicație.Carete de lucru(1).Fișe de lucru(1)

Nume = „Se lucrează cu valori mobiliare"

Vizibil = Fals

Un obiect Range reprezintă una sau mai multe celule dintr-o foaie de calcul. Este folosit în principal pentru a stoca și afișa bucăți de date: numere, șiruri de caractere sau formule. Celulele de foi de calcul care sunt reprezentate într-un obiect Range au o mulțime de capabilități. De exemplu, un utilizator poate accesa mai mult de 400 încorporate Funcții Excelși apelați funcții VBA. De asemenea, puteți crea link-uri către alte celule din aceeași foaie de calcul, altele foi de calcul sau alte caiete de lucru. Flexibilitatea și puterea obiectului Range vă permit să îmbunătățiți sistemul încorporat unitate de calcul Excel și creați aplicații mai complexe de analiză a datelor.

Obiect de aplicație

Obiectul Aplicație este obiectul principal (rădăcină) din ierarhia obiectelor Excel, reprezentând aplicația Excel în sine. Are un număr mare de proprietăți și metode care vă permit să setați Parametri comuni Aplicația Excel Să enumerăm principalele sale proprietăți și metode.

Proprietățile de bază ale obiectului Aplicație

1 ActiveWorkbook, ActiveSheet, ActiveCell - returnează registrul de lucru activ, foaia de lucru și respectiv celula. În exemplul următor, termenul „Raport” este introdus în celula activă:

ActiveCell.Value=”Raport”

2 Legendă - returnează sau setează textul din titlul ferestrei principale Excel În exemplul următor, titlul ferestrei aplicației este setat la textul „Raport de mai”.

Application.Caption="Raport pentru luna mai"

3.DisplayFormulaBar este o proprietate logică care controlează afișarea barei de formule De exemplu, în următorul cod, bara de formule nu este afișată: Application.DisplayFormulaBar

4 DisplayStatusbar - o proprietate logică care controlează afișarea barei de stare

5 Cale - returnează calea către fișierul Excel.exe

6 StatusBar - returnează sau setează textul afișat în bara de stare

7 Versiune – returnează numărul actual al versiunii Excel Utilizat pentru a verifica dacă este utilizată versiunea corectă.

Dacă Aplicație.Varsion<>„9.0” Apoi ieșiți din sub

Obiectul Workbook și familia Workbooks

În ierarhia Excel, acest obiect vine imediat după obiectul Aplicație și reprezintă fișierul registrului de lucru.

Proprietățile de bază ale obiectului Workbook și ale familiei Workbooks

1 ActiveSheet – returnează foaia de lucru activă

2 Nume – returnează sau setează numele cărții

Z Cale-întoarce Numele complet folderul în care se află această carte

4 Salvat - o proprietate booleană care determină dacă s-au făcut modificări registrului de lucru de la ultima salvare

Metode de bază ale obiectului Workbook și ale familiei Workbooks

1 Activare – activează registrul de lucru, astfel încât prima sa foaie de lucru devine activă.

Caiete de lucru(„Departamentul de resurse umane”).Activați

2 Protejează - protejează registrul de lucru împotriva modificărilor acestuia

3 Închidere – închide cartea

4 Deschide - deschide o carte existentă.

Open(FileName), unde FileName este numele fișierului de deschis

De exemplu:

Deschideți ("Storage.xls")

Evenimentele principale ale acestui obiect sunt Open (apare când se deschide un registru de lucru, de exemplu, să scriem o procedură pentru procesarea evenimentului Open al unui obiect Workbook atunci când acesta este deschis).

Sub Workbook_Open()

MsgBox(„Bună ziua”)

Obiect foaia de lucru și familia Fișe de lucru

În ierarhie obiect Excel WorkSheet vine imediat după obiectul Workbook și reprezintă foaia de lucru

Proprietățile de bază ale obiectului Worksheet și ale familiei Worksheets

1 Nume - returnează sau setează numele foii de lucru

2 Celule – Returnează o familie de celule din foaia de lucru sau un obiect Range - o celulă specifică, dacă numărul rândului și al coloanei la intersecția cărora se află celula este indicat în paranteze.

Worksheets(1).Cells.Interior.ColorIndex=3 – colorează în roșu toate celulele primei foi de lucru.

Worksheets(1).Cells(1,2).Value=”Hello” – afișează șirul „Hello” în celula situată în primul rând în a doua coloană

3 Coloane, Rânduri - returnează familia tuturor coloanelor și rândurilor din foaia de lucru sau o anumită coloană dacă este specificat un index între paranteze

WorkSheets(1).Columns(2) - returnează a doua coloană

Metode de bază ale obiectului Worksheet și ale familiei Worksheets

1 Activare - activează foaia de lucru specificată

Fișe de lucru(1).Activați

2 Delete – șterge foaia de lucru specificată. De exemplu

Fișe de lucru(1).Șterge

3 Protect - protejează foaia de lucru împotriva modificărilor

Evenimentele principale ale acestui obiect sunt Activare (apare când o foaie de lucru este activată) și Dezactivare (apare când o foaie de lucru este dezactivată, de exemplu, să scriem o procedură pentru gestionarea evenimentului Activare a unui obiect Foaia de lucru atunci când este activat). în același timp, vom afișa un mesaj:

Sub Worksheet_Activate()

MsgBox(„Bună ziua”)

Obiect de rază

În ierarhia Excel, obiectul Range, unul dintre obiectele cheie VBA, vine imediat după obiectul Worksheet. Un obiect Range nu este membru al nici unei familii de obiecte.

Dacă un interval specifică numai nume de coloane și rânduri, atunci obiectul Range specifică un interval format din coloanele și rândurile specificate. De exemplu, Range(„A:C”) specifică un interval format din coloanele A,B,C. Interval(„A:A”) specifică un interval format din coloana A, Interval(„2:2”) specifică un interval format din al doilea rând.

Pentru a face referire la un anumit interval de celule, este suficient să specificați adresa celulei din stânga sus și adresa celei din dreapta jos. De exemplu, Interval ("A1:B3") specifică un interval format din celule A1 ,A2,A3,B1,B2,B3.

Celula este caz special interval, care constă dintr-o singură celulă. De exemplu, Interval(„A1”) specifică un interval format din celula A1.

Proprietățile de bază ale obiectului Range

1 Valoare - returnează sau setează valoarea în celulele intervalului

x=Range(„C1”). Valoare - O anumită variabilă x i se atribuie valoarea din celula C1

2 Nume - returnează sau setează numele intervalului

3 Coloane, Rânduri - returnează toate coloanele sau rândurile dintr-un interval

Foi de lucru(1).Range("A1:B3").Columns.Value = 2 – în toate coloanele din interval

A1:B3 este afișat numărul 3

4 Interior - returnează un obiect Interior care reprezintă fundalul celulei Printre proprietățile obiectului Interior

Să remarcăm un singur lucru - ColorIndex - culoarea de fundal, care este specificată prin numere întregi de la 1 la 56. De exemplu

Range(„A1”).Interior.ColorIndex=3 - Fundalul celulei A1 este umplut cu culoare roșie

5 Font – Returnează un obiect Font care reprezintă fontul Obiectul Font are proprietăți Nume (un șir care indică numele fontului), etc.

6 Aliniere orizontală- Aliniere orizontalaîn celulele intervalului valorile acceptabile sunt xlCenter (Alinierea la centru), xlRight (Alinierea la dreapta), etc.

Principalele metode ale obiectului Range

1 ClearFormats și ClearContents - ștergeți, respectiv, formatele și conținutul din celulele intervalului

Interval(„A1:D2”).ClearContents

2 Selectare - selecție interval


©2015-2019 site
Toate drepturile aparțin autorilor lor. Acest site nu pretinde autor, dar oferă utilizare gratuită.
Data creării paginii: 2016-02-16