Osnovni podaci o OLE automatizaciji pomoću VBA u programu Microsoft Excel

Anonim

Ako želite koristiti funkcije drugih aplikacija, morate odlučiti želite li ih koristiti
rano ili kasno vezivanje objektnih varijabli.

Rano vezivanje

Vezivanje između varijable objekta i objekta odvija se pri sastavljanju aplikacije.
To rezultira boljim performansama u usporedbi s povezivanjem tijekom izvođenja aplikacije (kasno vezivanje).
Ako želite stvoriti rano vezivanje, morate postaviti referencu na "stranu" knjižnicu objekata koju želite koristiti.
To se radi iz VBE -a pomoću izbornika Alati, Reference …. Kad se VBProject poziva na
biblioteku objekata možete deklarirati određene varijable objekta (npr. Dim oDoc kao Word.Document). Ovo će također uspjeti
lakše programirati "strane objekte" budući da će VBE prikazati istu pomoć u programiranju u pogledu svojstava,
metode i događaje koje prikazuje za objekte koji pripadaju aplikaciji na kojoj radite
from (VBE je automatski unaprijed dodao referencu na ovu aplikaciju).
Ovo je opći primjer koda koji prikazuje grešku vba automatizacije:

Pod OLEAutomationEarlyBinding () 'zamijenite xxx s jednim od sljedećeg:' Access, Excel, Outlook, PowerPoint ili Word Dim oApp Kao xxx.Application 'rano vezivanje Dim oDoc Kao xxx.Document' Excel.Workbook, Outlook.MailItem, PowerPoint.Presentation , Word.Document On Error Resume Next 'zanemari pogreške Postavi oApp = GetObject (, "xxx.Application")' referenciraj postojeću instancu aplikacije Ako oApp nije ništa Tada 'ne radi nijedna aplikacija Postavi oApp = Nova xxx.Application' stvorite nova instanca aplikacije Kraj ako je pogreška GoTo 0 'nastavi normalno rukovanje pogreškama Ako oApp nije ništa Tada' ne može stvoriti aplikaciju MsgBox "Aplikacija nije dostupna!", vbExclamation Kraj ako je s oApp .Visible = True 'učinite objekt aplikacije vidljivo 'u ovom trenutku aplikacija je vidljiva' učinite nešto ovisno o aplikaciji … Postavite oDoc = .Documents.Open ("c: \ ime mape \ ime datoteke.doc") 'otvorite dokument' … oDoc.Close True 'zatvorite i spremite dokument .Zatvorite 'zatvorite aplikaciju End With Set oDoc = Ništa 'slobodna memorija Set oApp = Ništa' slobodna memorija End Sub

Kasno vezivanje

Vezivanje između varijable objekta i objekta odvija se pri pokretanju aplikacije.
To rezultira sporijim performansama u odnosu na vrijeme vezivanja kada se aplikacija sastavi (rano vezivanje).
Ako ne dodate referencu na biblioteku objekata koja pripada "stranoj" aplikaciji morate
deklarirati opće varijable objekta (npr. Dim oDoc kao objekt). To će otežati programiranje
"strani objekti" budući da VBE neće prikazati istu pomoć u programiranju u pogledu svojstava,
metode i događaje koje prikazuje za objekte koji pripadaju aplikaciji s koje radite.
Ovo je opći primjer koda:

Sub OLEAutomationLateBinding () 'zamijenite xxx s jednim od sljedećeg:' Access, Excel, Outlook, PowerPoint ili Word Dim oApp As Object 'kasno vezivanje Dim oDoc As Object' kasno vezivanje Uključeno Pogreška Nastavi dalje 'zanemarite pogreške Postavi oApp = GetObject (, "xxx.Application") 'referencirajte postojeću instancu aplikacije Ako oApp nije ništa Tada' nijedna postojeća aplikacija nije pokrenuta Postavi oApp = CreateObject ("xxx.Application") 'kreirajte novu instancu aplikacije Kraj ako je pogreška Idi na 0' nastavi normalnu pogrešku rukovanje Ako oApp nije ništa Tada 'ne mogu izraditi aplikaciju MsgBox "Aplikacija nije dostupna!", vbExclamation Kraj ako je s oApp .Visible = True "učini objekt aplikacije vidljivim" u ovom trenutku aplikacija je vidljiva "učini nešto ovisno na aplikaciji … Postavite oDoc = .Documents.Open ("c: \ ime mape \ ime datoteke.doc") 'otvorite dokument' … oDoc.Close True 'zatvorite i spremite dokument. Zatvorite' zatvorite aplikaciju Završi s postavljanjem oDoc = Ništa 'slobodna memorija Postavi oApp = Ništa' fr ee memorija End Sub