Formulare de introducere a datelor în Microsoft Excel. Folosind MS Excel

Acasă / Windows 7

Mulți utilizatori Excel nu văd diferența dintre conceptele de „format de celule” și „tip de date”. De fapt, acestea sunt departe de a fi concepte identice, deși sunt cu siguranță legate. Să aflăm care este esența tipurilor de date, în ce categorii sunt împărțite și cum puteți lucra cu ele.

Un tip de date este o caracteristică a informațiilor stocate pe o foaie de lucru. Pe baza acestei caracteristici, programul determină modul de procesare a unei anumite valori.

Tipurile de date sunt împărțite în două grupuri mari: constante și formule. Diferența dintre ele este că formulele transmit o valoare unei celule, care se poate modifica în funcție de modul în care se schimbă argumentele din alte celule. Constantele sunt valori constante care nu se modifică.

La rândul lor, constantele sunt împărțite în cinci grupuri:

  • Text;
  • date numerice;
  • Data și ora;
  • Date logice;
  • Valori greșite.

Să aflăm mai detaliat ce reprezintă fiecare dintre aceste tipuri de date.

Valorile textului

Tipul de text conține date de caracter și nu este tratat ca obiect de Excel calcule matematice. Aceste informații sunt în primul rând pentru utilizator, nu pentru program. Textul poate fi orice caracter, inclusiv numere, atâta timp cât sunt formatate corespunzător. În limbajul DAX, acest tip de date se referă la valori de șir. Lungimea maximă a textului este de 268435456 de caractere într-o celulă.

Pentru a introduce o expresie simbolică, trebuie să selectați celula de text sau format general în care va fi stocată și să introduceți textul de la tastatură. Dacă lungimea unei expresii text depășește limitele vizuale ale unei celule, atunci aceasta este suprapusă peste vecinii ei, deși fizic continuă să fie stocată în celula originală.

Date numerice

Datele numerice sunt folosite pentru calcule directe. Cu ele Excel efectuează diverse operații matematice (adunare, scădere, înmulțire, împărțire, exponențiere, extrage de rădăcină etc.). Acest tip de date este destinat exclusiv pentru scrierea numerelor, dar poate conține și caractere auxiliare (%, $ etc.). Mai multe tipuri de formate pot fi utilizate în legătură cu acesta:

  • De fapt numeric;
  • Procent;
  • Monetar;
  • Financiar;
  • Fracționar;
  • Exponenţial.

În plus, Excel are capacitatea de a împărți numerele în cifre și de a determina numărul de cifre după virgulă zecimală (în fracții).

Introducerea datelor numerice se face în același mod ca valorile textului, despre care am vorbit mai sus.

Data și ora

Un alt tip de date este formatul orei și datei. Acesta este exact cazul când tipurile și formatele de date sunt aceleași. Se caracterizează prin faptul că poate fi folosit pentru a indica pe o foaie și pentru a efectua calcule cu date și ore. Este de remarcat faptul că atunci când se calculează acest tip de date, ziua este luată ca unitate. Mai mult, acest lucru se aplică nu numai datelor, ci și timpului. De exemplu, 12:30 este considerat de program ca fiind 0,52083 zile și numai atunci este afișat în celulă într-o formă familiară utilizatorului.

Există mai multe tipuri de formatare pentru timp:

  • h:mm:ss;
  • h:mm;
  • h:mm:ss AM/PM;
  • h:mm AM/PM etc.

Situația este similară cu datele:

  • ZZ.LL.AAAA;
  • ZZ.MMM
  • MMM.GG etc.

Există, de asemenea, formate combinate de dată și oră, de exemplu ZZ:LL:AAAA h:mm.

De asemenea, trebuie să țineți cont de faptul că programul afișează doar valorile începând cu 01/01/1900 ca date.

Date logice

Tipul de date boolean este destul de interesant. Funcționează cu doar două valori: "ADEVĂRAT"Şi "MINCIUNĂ". Dacă este exagerat, înseamnă „evenimentul a sosit” și „evenimentul nu a sosit”. Funcțiile, procesând conținutul celulelor care conțin date logice, efectuează anumite calcule.

Valori eronate

Valorile de eroare sunt un tip separat de date. În cele mai multe cazuri, ele apar atunci când este efectuată o operație incorectă. De exemplu, astfel de operații incorecte includ împărțirea la zero sau introducerea unei funcții fără a-i respecta sintaxa. Printre valorile eronate se numără următoarele:

  • #VALOARE! – utilizarea unui tip greșit de argument pentru o funcție;
  • #CAZ! – împărțirea la 0;
  • #NUMĂR! – date numerice incorecte;
  • #N/A – a fost introdusă o valoare indisponibilă;
  • #NUME? – denumire incorectă în formulă;
  • #GOL! – introducerea incorectă a adreselor intervalului;
  • #LEGĂTURĂ! – Apare atunci când celulele la care se face referire anterior printr-o formulă sunt șterse.

Formule

Un grup mare separat de tipuri de date sunt formulele. Spre deosebire de constante, ele de cele mai multe ori nu sunt vizibile în celulele în sine, ci afișează doar rezultatul, care se poate modifica în funcție de modificările argumentelor. În special, formulele sunt folosite pentru diferite calcule matematice. Formula în sine poate fi văzută în bara de formule prin evidențierea celulei în care este conținută.

O condiție prealabilă pentru ca programul să perceapă o expresie ca o formulă este prezența unui semn egal în fața acesteia (=) .

Funcțiile sunt un tip separat de formule. Acestea sunt subrutine unice care conțin un set de argumente și le procesează conform unui algoritm specific. Funcțiile pot fi introduse manual într-o celulă, plasând mai întâi semnul în ea «=» , sau puteți utiliza un shell grafic special în aceste scopuri Expertul de funcții, care conține întreaga listă de operatori disponibili în program, împărțiți pe categorii.

Prin utilizarea Vrăjitorii de funcții Puteți naviga la fereastra de argumente pentru un anumit operator. Câmpurile sale conțin date sau link-uri către celule care conțin aceste date. După apăsarea butonului "BINE" se execută operaţia specificată.

După cum vedem, în programul Excel Există două grupuri principale de tipuri de date: constante și formule. Ei, la rândul lor, sunt împărțiți în multe alte tipuri. Fiecare tip de date are propriile sale proprietăți, ținând cont de care programul le prelucrează. Stăpânirea capacității de a recunoaște și de a lucra corect cu diverse tipuri datele sunt sarcina principală a oricărui utilizator care dorește să învețe cum să folosească eficient Excel în scopul propus.

Practica arată că aplicațiile Microsoft Office (Excel, Word, Power Point etc.) sunt printre cele mai frecvent utilizate aplicații Windows. Fiecare dintre ele este un server COM și, prin urmare, orice obiect inclus în acesta poate fi folosit de programul dvs. ca propriu.

Există două modalități de a accesa metodele și proprietățile unui obiect COM: prin referire la biblioteca sa de tip (legare timpurie) și după nume (legare târzie). Pentru Object Pascal, legarea timpurie este de preferat, deoarece în acest caz compilatorul poate verifica dacă proprietățile și metodele obiectelor externe sunt accesate corect, iar codul pe care îl produce tinde să se execute mai rapid.- Visual Basic for Application (VBA) nu acceptă pointeri și, prin urmare, nu poate utiliza interfețe. Mai ales pentru acest tip de limbaj (pe lângă VBA, JavaScript, SmallTalk și unele altele nu funcționează nici cu pointeri), interfețele dispinterfețe au fost introduse în tehnologia COM, permițându-vă să accesați metode și proprietăți după nume, și nu după adresă. La instalarea Office, puteți instala ajutorul VBA, care descrie în detaliu interfețele serverelor Microsoft Office, indicând scopul metodelor și proprietăților, precum și parametrii pentru accesarea acestora. De fapt, acestea sunt singurele documente disponibile programatorului pe care ar trebui să se bazeze atunci când programează accesul la capabilitățile puternice ale serverelor Microsoft Office. Vă rugăm să rețineți că în timpul instalării standard a Microsoft Office, ajutorul VBA nu este instalat. Dacă în catalog Fișiere de program| Microsoft Office | Office nu veți găsi fișierele vbaxl8.hlp (Ajutor Excel), vbawrd8.hlp (Ajutor Word), etc., trebuie să le adăugați folosind Start | Setare | Panou de control | Instalarea și eliminarea programelor.

Versiunea 5 a Delphi include componente ale paginii Servere care vă permit să accesați obiectele COM ale acestor servere folosind biblioteci de tipuri, dar aceste componente sunt practic nedocumentate. Mai mult decât atât, bibliotecile în sine sunt deja implementate în pachetul dclaxserver50, așa că folosind această versiune de Delphi nu am reușit niciodată să le obțin textele. În toate cazurile, studierea textelor extinse din bibliotecă (de exemplu, fișierul Excel_TLB.pas conține mai mult de 20 de mii de linii) oferă puține beneficii chiar și unui programator experimentat.

Această secțiune oferă o scurtă descriere a principalelor obiecte ale celor mai populare două servere - Excel și Word, precum și exemple de utilizare a Excel în stil VBA (după nume) și de utilizare a componentelor paginii Servere. Deoarece limbajul VBA a fost extins semnificativ în mod special pentru versiunea de MS Office 97, acest material nu poate fi folosit pentru a lucra cu versiuni anterioare ale pachetului.

Obiecte de bază ale serverelor Excel și Word

Terminologia VBA folosește conceptele de „obiect” și „colecție”. Un obiect este un obiect de interfață COM obișnuit care are proprietăți, metode și evenimente. O colecție este un grup de obiecte de același tip. De exemplu, obiectul principal al serverului Excel - Aplicația definește principalele proprietăți și metode ale serverului, iar colecția Worksheets este un set de pagini tabelare din registrul de lucru curent etc. Ierarhiile de obiecte și colecții prezentate mai jos sunt preluate din fișierele vbaXXX.hlp. Spre deosebire de obiectele VCL, acestea sunt construite nu după principiul moștenirii, ci după subordonarea funcțională.

Obiecte Excel

Serverul Excel este un puternic procesor de foi de calcul care stochează și prelucrează diferite tipuri de date (atât numerice, cât și text), inclusiv construirea de grafice și diagrame pe baza acestora. Când lucrați cu Excel, un așa-numit registru de lucru (fișier de date) este creat cu una sau mai multe foi. Toate foile unui registru de lucru pot fi legate între ele, ceea ce vă permite să organizați calcule comune pe datele plasate pe ele.

Acum mici explicații. Variabilele Sheet și Range au fost introduse doar pentru a scurta textul programului: peste tot în loc de Sheet, de exemplu, puteți scrie Excel.Workbooks.Sheets. Delphi 4 a fost livrat cu fișierele XLCONST.PAS și XLCONST.DCU, care definesc constantele xlXXX utilizate în documentația vbaxl8.hlp. Aceste fișiere nu sunt furnizate cu versiunea 5, așa că folosesc echivalentele lor numerice. Lățimea marginii unui document Excel tipărit este specificată în unități interne, corespunzătoare la aproximativ 3,5 mm, astfel încât valorile specificate în instrucțiunile Sheet.PageSetup.XXXXMargin vor seta marginile din stânga, de jos și din dreapta la 1,1 cm lățime, iar partea de sus la 1,4 cm lățime este definită în caractere de text care se încadrează în coloană fără tăiere.

Variabila Excel definește un câmp în clasa TForm1. Când este creată o clasă, valoarea VarEmpty este plasată automat în ea. După ce a terminat de lucrat cu Excel, utilizatorul îl poate închide. Dar în programul meu Excel nu a fost vizualizat, lucrul său a avut loc „în spatele scenei”, iar tabelul creat a fost scris într-un fișier specificat de utilizator folosind operatorul Excel.Workbooks.SaveAs(FileName).

După aceasta, Excel s-a închis. Deoarece în cazul nostru Excel își arată fereastra, dar este posibil ca utilizatorul să nu o închidă, este util să scrieți următorul handler pentru evenimentul OnDestroy al formularului:

Procedura TForm1.FormDestroy(Sender: TObject); începe dacă nu VarIsEmpty(Excel), atunci Excel.Ieșire final;

Când rulați exemplul, rețineți că crearea unei liste de prețuri folosind Excel este un proces destul de lung. Pe computerul meu (400 MHz, 64 MB) a durat aproximativ un minut (de exemplu, o listă de prețuri similară este creată folosind Quick Report în mai puțin de 2 secunde). La sfârșitul manipulatorului, timpul total de rulare este plasat pe eticheta lb.

Legarea timpurie

Următorul exemplu îl repetă funcțional pe cel anterior. De asemenea, creează o listă de prețuri folosind Excel, dar de această dată folosește accesul direct prin interfețele serverului. O „surpriză” vă așteaptă: timpul de execuție al celui de-al doilea exemplu este cu 40 de secunde mai lung! Nu am reușit să găsesc o explicație rezonabilă pentru acest fenomen, dar ambele exemple sunt pe discul însoțitor, așa că puteți vedea singuri în orice moment.

Deoarece forma celui de-al doilea exemplu este exact aceeași cu primul, nu vă voi explica ce trebuie să faceți pentru a-l crea. Adăugați doar componenta TExcelApplication în formular și configurați proprietățile acesteia: Name=Excel, AutoConnect=True, AutoQuit=True.

Dacă utilizați exemplul de formular anterior ca șablon, nu introduceți câmpul Excel în clasa TForm1. Managerul Button1Click ar trebui să arate astfel (vezi Lista 2).

După cum puteți vedea, este foarte asemănător cu handlerul din exemplul anterior. Prin urmare, mă voi opri asupra diferențelor.

Când accesați proprietatea SheetsInNewWorkbook, ca în multe alte cazuri când accesați proprietățile și metodele interfeței, este necesar identificatorul de limbă de localizare (lcid). Valoarea 0 codifică limba implicită. Același identificator este transmis ca al doilea parametru al apelului la metoda Excel.Workbooks.Add. Primul parametru trebuie să fie numele fișierului (în format WideString) dacă registrul de lucru a fost deja creat anterior sau parametrul EmptyParam „gol” dacă registrul de lucru este creat pentru prima dată.

Toate încercările mele de a lucra cu obiecte Range au eșuat. Ca să nu mă judeci prea mult, am plasat biblioteca de tip Excel_TLB.pas în directorul de exemplu - uită-te în ea după bunul plac și încearcă să găsești soluția potrivită pentru modificarea lățimii coloanelor și a marginilor foii, deoarece precum și pentru colorarea unui interval, alinierea textului etc.

Pentru a rezuma, aș dori să vă atrag încă o dată atenția asupra faptului că, din punct de vedere al timpului de execuție, legarea tardivă este cel puțin nu inferioară legării timpurii - cel puțin pentru exemplele luate în considerare. Având în vedere că singurele documente disponibile pentru marea majoritate a programatorilor de pe serverele MS Office sunt fișierele de ajutor vbaXXX.hlp, putem concluziona: utilizarea opțiunilor (legare tardivă) este mai simplă, mai convenabilă și, cel mai important, mult mai clară decât lucrul direct cu interfețe (legare timpurie) .

ComputerPress 6"2001

Până acum, ne-am uitat la caracteristicile VBA fără prea multă legătură cu informațiile din foaia de lucru. În acest capitol, ne vom familiariza cu obiecte care vă permit să lucrați cu date situate în celulele foilor din registrele de lucru Microsoft Excel. Capitolele următoare vor explora dezvoltări complexe bazate pe proiectele de bază pe care le vom discuta aici.

Întregul fișier de lucru Caiete de lucru Excel reprezentat într-un obiect Workbook, care are un număr mare de proprietăți și metode. Ajutorul pentru ei este disponibil atât în ​​ajutorul online VBA, cât și cantitati mari publicații pe această temă. Nu vom aprofunda în informații pur de referință și în partea introductivă vom lua în considerare doar informațiile pe care le vom întâlni ulterior în exemplele luate în considerare.

De exemplu, proprietatea Worksheets a unui obiect Workbook reprezintă o familie a tuturor foilor de lucru din registrul de lucru. Și pentru a accesa o anumită foaie de lucru folosind această proprietate, trebuie pur și simplu să specificați numărul foii ca parametru, care arată astfel - Foi de lucru (numărul foii). O altă opțiune este să specificați numele foii ca parametru - Foi de lucru („Numele foii”).

Unul dintre cele mai frecvent programate evenimente asociate cu un registru de lucru în general este evenimentul Open, care are loc atunci când este deschis un registru de lucru. Deci, dacă dorim ca anumite acțiuni să fie efectuate la deschiderea unei cărți, atunci ar trebui să plasăm cele necesare codul programuluiîn cadrul procedurii Workbook_Open. Majoritatea exemplelor de mai jos se vor concentra pe programarea acestui eveniment.

Următorul obiect din ierarhie după Workbook este obiectul Worksheet, care reprezintă o foaie de lucru. Dintre varietatea de metode ale acestui obiect, Activate este utilizat pe scară largă, care există și pentru familia de foi Worksheets, pe care am menționat-o deja mai sus. De exemplu, dacă, atunci când lucrați la prima foaie a unui registru de lucru, trebuie să activați a treia foaie, atunci sintaxa liniei de program din procedură (să zicem, executată făcând clic pe un buton) ar trebui să fie după cum urmează:

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

Se știe că Microsoft Excel oferă un serviciu legat de protecția carnetelor de lucru și a foilor care îl compun. Deci, în exemple vom folosi metoda Protect (din familia Worksheets), care protejează foaia de lucru de modificările aduse acesteia. Pentru instalarea software-ului Protecția cu parolă (parola este specificată în parametrul Parolă al acestei metode) din a treia foaie se poate face după cum urmează:

Fișe de lucru(3).Protect Password:="12345", DrawingObjects:=True, _ Contents:=True, Scenarios:=True

Există, de asemenea, o metodă Unprotect corespunzătoare care vă permite să eliminați protecția de pe o foaie. Pentru protecția nou instalată, metoda de îndepărtare a acesteia este:

Fișe de lucru(3). Unprotect Password:="12345"

Orice munca practicaîn Excel într-un fel sau altul se referă la informațiile din celule. Pentru a lucra cu celule în VBA, există un obiect Range (tradus ca un interval de celule). Și utilizarea acestui obiect necesită specificarea unui parametru - gama de celule care ne interesează. Aceasta poate fi o singură celulă sau un grup de celule. Deci, dacă scriem

Fișe de lucru(3).Interval (“A1”).Valoare = 5,

atunci asta înseamnă că în celulă A1 Pe a treia foaie, scriem programatic numărul 5. Aici folosim proprietatea principală a obiectului Range - Value. Literal, înseamnă valoarea sau conținutul unei celule (sau al unui grup de celule).

În construcția următoare, o literă este introdusă programatic într-un set de celule O:

Fișe de lucru(1).Interval (“A1:C3”).Valoare = „A”.

O altă modalitate de a lucra cu celule este prin obiectul Cells, iar sintaxa pentru utilizarea acestuia este următoarea:

Celule (numărul rândului, numărul coloanei).

De altfel, din punct de vedere al folosirii lor, obiectele in cauza sunt asemanatoare. De exemplu, obțineți valoarea celulei din variabila Z D5 poate doi în moduri diferite:

Z = Interval(„D5”).Valoare sau Z = Celule(5,4).Valoare .

Ca exemplu de proiectare de program pe tema ambelor obiecte, se poate da următoarea sarcină:

Foi de lucru(2).Range(„C5”).Valoare = Foi de lucru(3).Celule(5, 1).Valoare

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), șiruri ( 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 Foaia 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 - colectare. 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 de toate deschise în în acest moment carnete de lucru. 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 Foaia 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ă).

Obiect Descriere
Aplicație aplicație Excel.
Caiete de lucru O colecție a tuturor registrelor de lucru deschise în prezent în aplicația Excel actuală. 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 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 a tuturor foilor 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 foilor de lucru dintr-un registru de lucru Excel.

Foi Obiect Foi este o colecție de toate foile dintr-un registru de lucru. Acestea pot fi fie foi de lucru, fie diagrame pe o 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 Obiect Fișe de lucru este o colecție a tuturor foilor 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").
Foaia de lucru Obiect Foaia 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 utiliza ActiveSheet pentru a accesa foaia de lucru activă în prezent. Din obiect Foaia de lucru poti accesa obiecte 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 o singură celulă sau orice interval de celule adiacente dintr-o foaie de lucru.

Rânduri Obiect Rânduri este o colecție a tuturor rândurilor dintr-o foaie de lucru. Obiect Gamă, constând dintr-o singură linie de foaie de lucru, poate fi accesat de acel număr de linie, de ex. Rânduri(1).
Coloane Obiect Coloane este o colecție a tuturor coloanelor unei foi de lucru. 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ă 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 Foaia 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)), apoi 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 o serie 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 Set:

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 Foaia 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 ActiveSheet, și la obiectul activ Gamă- ca în 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. La fel, dacă vă referiți la un interval fără a specifica un anumit registrul de lucru sau foaia 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 Activa sau Selecta 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 Activa sau Selecta, vor fi discutate mai detaliat mai jos.

Proprietățile obiectului

Fiecare obiect VBA are proprietăți atribuite. De exemplu, obiect Caiet de lucru are proprietăți Nume(Nume), RevisionNumber(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 Foaia de lucru folosind această comandă:

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

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 cărora li se pot atribui diferite valori. 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 de un anumit tip. De exemplu, obiect Caiet de lucru are metode Activa, Aproape, Salva 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 Aproape 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 Salvați ca obiect Caiet de lucruși dați argumentul Nume de fișier sens Cartea 2, și argumentul FileFormat- 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 Salvați ca obiect Caiet de lucru poate fi scris diferit:

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

În fereastră Browser de obiecte Visual Basic Editor afișează 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 î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 Foaia de lucru separat. Rețineți că proprietatea utilizată pentru afișarea numelui fiecărei foi de lucru este Nume obiect Foaia 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 cuvântului cheie Set 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 Foaia 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 Set, 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 din foaia de lucru "Sheet2" Set Col = Sheets("Sheet2").Columns("A") i = 1 "Privim secvențial toate celulele coloanei Col până când întâlnim 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ă LA Principalele obiecte MS Excel descrise în această secțiune includ următoarele: registru de lucru (

Caiet de lucru) și

familie de caiete de lucru (Workbooks), foaie de lucru (Worksheet) și familie de foi de lucru (Worksheets), interval de celule sau celulă (Range).

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Exemplu:

Familia WorkBooks („Cartea1”) oferă acces la registrul de lucru. Numele cărții este indicat între paranteze.

Familia WorkSheets(„Sheet1”) oferă acces la o foaie de lucru. Denumirea foii este indicată în paranteze.

Familia Range oferă acces la o serie de celule sau la o celulă. Intervalul de celule sau numele celulei este indicat în paranteze.

Familie de celule (nr. rând, nr. coloană) oferă acces la celulă. Coordonatele celulei sunt indicate în paranteze.

Exemple:

Cărți de lucru(„Cartea 1”)

Foi de lucru(„Foaie1”) Interval(„A1”) Interval(„A1:B10”) Celule(2,3) Celule(k,i+1)

5.4.4.1. Obiect registru de lucru și familia Registre de lucru

ÎN Obiect ierarhic MS Excel Registrul de lucru (registrul de lucru) vine imediat după obiectul Aplicație și este un fișier registru de lucru. Registrul de lucru este stocat fie în fișiere XLS (registru de lucru standard), fie în fișiere XLA (aplicație complet compilată). Proprietățile și metodele registrului de lucru vă permit

lucrează cu fișiere. Acest obiect face parte dintr-o familie (set)

Caiete de lucru(<Индекс>) returnează obiectul la index în set.

Caiete de lucru(“<Имя>") returnează un obiect după nume din set. ActiveWorkbook returnează o referință la registrul de lucru activ în momentul în care comanda este executată.

5.4.4.1.1. Proprietăți

ActiveSheet returnează foaia de lucru activă. Pentru a obține numele foii, utilizați proprietatea Name a obiectului Sheet.

Exemple:

MsgBox(„Active Sheet Name” și ActiveSheet.Name)

MsgBox(ActiveWorkbook.ActiveSheet.Name) – Afișează numele foii de lucru active într-o casetă de dialog. ActiveDialog – returnează caseta de dialog activă. ActiveChart – returnează diagrama activă.

Foi – Returnează familia tuturor foilor din registrul de lucru.

Foi de lucru – Returnează o familie cu toate foile de lucru din registrul de lucru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Pentru fiecare s din ActiveWorkbook.Sheets MsgBox (s.Name)

Diagrame - Returnează o familie de toate diagramele din registrul de lucru care nu sunt încorporate în foile de lucru.

Count – returnează numărul de obiecte ale familiei Workbooks (număr deschis de aplicație cărți).

FullName – Returnează numele complet al registrului de lucru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

MsgBox(ActiveWorkbook.FullName)

Nume – Returnează numele registrului de lucru activ. 245

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

MsgBox(ActiveWorkbook.Name)

Cale – returnează calea către fișierul registrului de lucru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

MsgBox(ActiveWorkbook.Path)

5.4.4.1.2. Metode

Metoda Activare activează un registru de lucru, astfel încât prima sa foaie de lucru devine foaia de lucru curentă (disponibilă pentru lucru).

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

WorkBooks(„Cartea1”).Activați

Caiet de lucru.Activare

Metoda Close închide registrul de lucru Close SaveChanges FileName – închide registrul de lucru. Parametrul SaveChanges vă permite să controlați dacă modificările sunt salvate în registrul de lucru. Dacă valoarea sa este True , atunci modificările sunt salvate, dacă – False , atunci nu sunt salvate. Parametrul FileName este un șir care conține numele fișierului registrului de lucru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

WorkBooks(„Book1”).Close WorkBooks(„Book1”).Close SaveChanges:=True Filename:=“Book2”

Fereastra nouă are scopul de a deschide cartea specificată într-o fereastră nouă.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

WorkBooks(„Cartea1”).NewWindow

Salvare este folosită pentru a salva modificările în registrul de lucru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

WorkBooks („Cartea 1”). Salvați

SaveAs Filename – folosit pentru a salva o carte sub un alt nume (într-un alt fișier).

SaveAsCopy – conceput pentru a salva un registru de lucru într-un alt fișier, lăsându-l deschis cu același nume.

Exemple:

WorkBooks („Cartea1”).SaveAs FileName:=“kdjf.xls”

ActiveBook.SaveAsCopy FileName:=”Cartea mea”

Open Filename – vă permite să deschideți un registru de lucru cu numele specificat în parametrul FileName.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Workbooks.Open FileName:=„Book1.xls”

5.4.4.1.3. Evenimente

Evenimentele principale ale obiectului Workbook sunt prezentate în tabel. 5.13.

Tabelul 5.13

Când are loc un eveniment

La închiderea unui registru de lucru

Înainte de a tipări un registru de lucru

Înainte de a salva un registru de lucru

Când adăugați o foaie nouă

La deschiderea unui registru de lucru

Când activați o foaie de lucru

5.4.4.2. Obiect foaie de lucru și familia WorkSheets

ÎN Obiect ierarhic MS Excel Foaia de lucru vine imediat după

Un obiect Workbook reprezintă o foaie de lucru dintr-un registru de lucru și face parte din familia Worksheets (setul).

Exemple:

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

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Activesheet.Range (“a1”)=1

5.4.4.2.1. Proprietăți

Proprietatea Nume vă permite să lucrați cu numele foii de lucru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Fișe de lucru(1).Name="Rezultate"

ActiveCell – Returnează celula activă a foii de lucru active.

celula cu coordonatele specificate.

Coloane(<столбец>) – returnează o referință la coloană. Parametrul poate fi un nume de coloană sau un număr.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Fișe de lucru(1).Columns(„a”)=1

Fișe de lucru(1).Coloane(1)=1

Rânduri(<строка>) -in returnează o referință la un șir. Numărul liniei poate fi folosit ca parametru.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Fișe de lucru(1).Rânduri(1)=1

Gamă(<Диапазон ячеек>) – returnează o referință la intervalul specificat de celule.

După obiect, de obicei printr-un punct”. ", indică o proprietate sau o metodă. Uneori, pentru a ajunge la un anumit obiect, trebuie să treci printr-o ierarhie de obiecte de nivel superior.

Foi de lucru ("Sheet1").UsedRange.Value=1 Count – returnează numărul de foi din registrul de lucru.

Vizibil – determină dacă foaia de lucru este afișată în registrul de lucru. Valorile sale valide sunt: ​​True – foaia de lucru este afișată pe ecran False – foaia de lucru este invizibilă (ascunsă), dar poate fi afișată pe ecran folosind secvența de comenzi Format, Sheet;

Afișare (Format, Foaie, Afișare); xlFoarte Ascuns – foaia de lucru este ascunsă și poate fi afișată pe ecran doar programatic.

Exemple:

Sub Empty() Worksheets(„Sheet3”). Vizibil=False

Sub Open()

Fișe de lucru ("Sheet3"). Vizibil=Adevărat

Sub Empty1() Worksheets(„Sheet4”). Vizibil=xlFoarte ascuns

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații