După cum sugerează și numele, funcția CreateObject este utilizată pentru a crea obiecte.
Dar de ce folosim metoda sau funcția CreateObject dacă putem crea direct un obiect folosind noul cuvânt cheie?
Ei bine, aceasta este o întrebare validă și avem un răspuns potrivit.
Se numește crearea unui obiect folosind CreateObject Obligatoriu târziu. În legarea târzie, crearea de obiecte are loc în timpul rulării. Nu are nevoie de referințe pentru a fi adăugate. Acest lucru face ca codul VBA să fie portabil.
De exemplu, dacă creați o aplicație care se ocupă de alte aplicații și o utilizați legarea timpurie adăugând referințe și folosind nou cuvânt cheie. Mai târziu, transferați codul pe o altă mașină, apoi va trebui să adăugați și referințele pe mașina respectivă. Dar dacă ați folosit metoda CreateObject pentru crearea altor obiecte de aplicație, nu va trebui să adăugați referințele pe alte mașini, în cazul în care transferați sau partajați codul.
În acest articol vom afla despre metoda CreateObject folosind câteva exemple.
Sintaxa funcției CreateObject:
Setați nume_obiect = CreateObject (classname ca șir, [servername]) |
nume de clasă ca șir: Este o variabilă necesară. Este un șir care se referă la numele aplicației și la tipul de obiect. Numele aplicației și clasa obiectului care trebuie creat trebuie declarate în AppName.ObjecType. De exemplu, dacă vreau un obiect al aplicației Word, aș scrie „Word.Application”. O vom vedea în detaliu în exemple mai târziu.
[numele serverului]: Este o variabilă opțională. Este un șir al numelui serverului de rețea unde va fi creat obiectul. Dacă servername este un șir gol (""), se folosește mașina locală. Nu vom folosi acest lucru în acest capitol.
Acum, că știm elementele de bază ale funcției CreateObject, le vom folosi în câteva exemple:
Exemplul 1: Deschideți aplicația Microsoft Word utilizând Excel VBA
Deci, dacă am dori să folosim legarea timpurie, am adăuga referințe la aplicațiile de cuvinte folosind Instrumente -> meniul Referințe.
Și codul nostru ar arăta astfel.
Sub OpenWordApp () Dim wordApp Ca nou Word.Application Dim wordDoc Ca document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Avantajul acestui cod este că primiți asistența inteligenței VBA și vă arată metoda disponibilă și proprietățile obiectului pe care l-ați creat. Va funcționa perfect sistemul dvs. Dar, dacă distribuiți acest cod altcuiva și nu au adăugat referința la biblioteca de cuvinte Microsoft din instrumente, vor primi o eroare.
Pentru a evita această eroare, utilizați codul de mai jos.
Sub OpenWordApp () Dim wordApp As Object Set wordApp = CreateObject ("Word.Application") Dim wordDoc As Object wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub
Codul de mai sus va funcționa perfect pe orice mașină. Este portabil, deoarece facem legarea târzie folosind metoda CreateObject pentru a crea obiectul.
Să vedem un alt exemplu:
Exemplul 2: Creați un obiect de registru de lucru utilizând funcția CreateObject
Dacă lucrați cu VBA pentru o perioadă de timp, trebuie să fi creat sau adăugat în registre de lucru folosind cuvântul cheie Nou. În acest exemplu, vom face acest lucru folosind CreateObject.
Sub addSheet () „Declarați o variabilă obiect pentru a ține referința obiectului”. Dim as Object cauzează legarea târzie. Reduceți ExcelSheet ca set de obiecte ExcelSheet = CreateObject ("Excel.Sheet") 'Faceți Excel vizibil prin obiectul Aplicație. ExcelSheet.Application.Visible = True 'Plasați un text în prima celulă a foii. ExcelSheet.Application.Cells (1, 1) .Value = "Aceasta este coloana A, rândul 1" 'Salvați foaia în directorul C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Închideți Excel cu metoda Quit de pe obiectul Application. ExcelSheet.Application.Quit 'Eliberați variabila obiect. Set ExcelSheet = Nothing End Sub
Deci, băieți, așa folosiți metoda CreateObject în VBA. Să discutăm beneficiile și neajunsurile acestuia.
Avantajele CreateObject pentru a crea obiect
Principalul avantaj al CreateObject este că vă face codul portabil (atunci când este preocuparea crearea obiectului). Puteți partaja codul oricui fără să vă faceți griji dacă a adăugat referința la programul obiect folosind sau nu.
Deficiența CreateObject
Neajunsurile metodei CreateObject sunt:
Trebuie să cunoașteți structura clasei pe care o veți folosi pentru crearea obiectelor.
Odată ce ați creat obiectul, sunteți complet dependent de memoria dvs. pentru metodele și proprietățile obiectelor, deoarece VBA nu oferă niciun sens inteligenț care să vă ajute.
Putem depăși deficiențele de mai sus. Am un truc.
Ori de câte ori scriu cod care va fi distribuit altora, folosesc prima metodă pentru crearea obiectelor (Adăugarea de referințe din instrumente). Acest lucru mă ajută să scriu codul mai repede. Odată ce am terminat programul VBA și l-am testat, înlocuiesc metoda nouă cu metoda CreateObject. Acest lucru face ca codul să fie portabil. Puteți folosi acest truc.
Deci, băieți, așa puteți folosi funcția CreateObject pentru a crea obiecte în VBA. Sper că am putut explica totul. Dacă aveți întrebări cu privire la acest articol sau la orice altă întrebare legată de VBA, întrebați-mă în secțiunea de comentarii de mai jos.
Noțiuni introductive despre Excel VBA UserForms| Voi explica cum să creați un formular în Excel, cum să utilizați setul de instrumente VBA, cum să gestionați intrările utilizatorului și, în cele din urmă, cum să stocați intrările utilizatorului. Vom trece prin aceste subiecte folosind un exemplu și un ghid pas cu pas.
Variabile VBA în Excel| VBA înseamnă Visual Basic pentru aplicații. Este un limbaj de programare de la Microsoft. Este utilizat cu aplicații Microsoft Office, cum ar fi MSExcel, MS-Word și MS-Access, în timp ce variabilele VBA sunt cuvinte cheie specifice.
Domeniul de aplicare variabil VBA Excel| În toate limbajele de programare, avem specificatori de acces variabil care definesc de unde poate fi accesată o variabilă definită. Excel VBA nu este o excepție. Și VBA are specificatori de domeniu.
Argumente ByRef și ByVal | Când un argument este transmis ca argument ByRef către un sub sau funcție diferit, este trimisă referința variabilei reale. Orice modificare adusă copiei variabilei se va reflecta în argumentul original.
Ștergeți foile fără solicitări de confirmare folosind VBA în Microsoft Excel | Deoarece ștergeți foi folosind VBA, știți ce faceți. Ați dori să spuneți Excel să nu afișeze acest avertisment și să șteargă afurisita de foaie.
Adăugați și salvați un registru de lucru nou folosind VBA în Microsoft Excel 2016| În acest cod, am creat mai întâi o referință la un obiect de registru de lucru. Și apoi l-am inițializat cu un nou obiect de registru de lucru. Avantajul acestei abordări este că puteți face operațiuni cu ușurință pe acest nou registru de lucru. Cum ar fi salvarea, închiderea, ștergerea etc.
Afișați un mesaj pe bara de stare Excel VBA| Bara de stare în excel poate fi utilizată ca monitor de cod. Când codul dvs. VBA este lung și faceți mai multe sarcini folosind VBA, dezactivați adesea actualizarea ecranului, astfel încât să nu vedeți ecranul care pâlpâie.
Dezactivați mesajele de avertizare folosind VBA în Microsoft Excel 2016| Acest cod nu numai că dezactivează alertele VBA, ci și crește eficiența în timp a codului. Să vedem cum.
Articole populare:
50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.
Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.
COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu trebuie să vă filtrați datele pentru a număra anumite valori. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.
Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.