Ja vēlaties izmantot citu programmu funkcionalitāti, jums jāizlemj, vai vēlaties to izmantot
agrīna vai vēlīna objektu mainīgo saistīšana.
Agrīna iesiešana
Saistīšana starp objekta mainīgo un objektu notiek, kad tiek apkopota lietojumprogramma.
Tas nodrošina labāku veiktspēju, salīdzinot ar saistīšanu, kad notiek lietojumprogrammas palaišana (novēlota iesiešana).
Ja vēlaties izveidot agrīnu saistīšanu, jums ir jāiestata atsauce uz "svešo" objektu bibliotēku, kuru vēlaties izmantot.
Tas tiek darīts no VBE, izmantojot izvēlni Rīki, Atsauces…. Ja VBProject ir atsauce uz
objektu bibliotēkā varat deklarēt konkrētus objekta mainīgos (piemēram, Dim oDoc kā Word.Document). Tas arī izdosies
vieglāk ieprogrammēt "svešķermeņus", jo VBE parādīs to pašu programmēšanas palīdzību attiecībā uz īpašībām,
metodes un notikumus, ko tas parāda objektiem, kas pieder jūsu izmantotajai lietojumprogrammai
no (VBE iepriekš ir automātiski pievienojusi atsauci uz šo lietojumprogrammu).
Šis ir vispārējs koda piemērs, kas parāda vba automatizācijas kļūdu:
Sub OLEAutomationEarlyBinding () ”aizstāt xxx ar kādu no šiem:“ Access, Excel, Outlook, PowerPoint vai Word Dim oApp As xxx.Application ”agrīna saistoša Dim oDoc As xxx.Document” Excel.Workbook, Outlook.MailItem, PowerPoint.Presentation , Word.Document On Error Resume Tālāk 'ignorēt kļūdas Set oApp = GetObject (, "xxx.Application") "atsaucas uz esošu lietojumprogrammas gadījumu Ja oApp Is Nothing Tad" neviena esoša lietojumprogramma nedarbojas Set oApp = New xxx.Application "izveidojiet jauna lietojumprogrammas instance Beigt Ja ieslēgta kļūda GoTo 0 'atsāk normālu kļūdu apstrādi Ja oApp nav nekas, tad nevar izveidot lietojumprogrammu MsgBox "Lietojumprogramma nav pieejama!", vbExclamation End If Ja ar oApp .Visible = True' padariet lietojumprogrammas objektu redzams 'šajā brīdī lietojumprogramma ir redzama' dariet kaut ko atkarībā no lietojumprogrammas … Iestatiet oDoc = .Documents.Open ("c: \ foldername \ filename.doc") 'atveriet dokumentu' … oDoc.Close True 'aizveriet un saglabājiet dokuments .Aiziet 'aizveriet lietojumprogrammu Beigt ar komplektu oDoc = Nekas 'brīva atmiņa Set oApp = Nekas' brīva atmiņa Beigt apakš
Vēlā iesiešana
Saistīšana starp objekta mainīgo un objektu notiek, palaižot lietojumprogrammu.
Tas nodrošina lēnāku veiktspēju salīdzinājumā ar sasiešanu, kad tiek apkopota lietojumprogramma (agrīna iesiešana).
Ja nepievienojat atsauci uz objekta bibliotēku, kas pieder lietojumprogrammai "ārzemju", jums tas ir jāpievieno
deklarēt vispārīgus objekta mainīgos (piemēram, Dim oDoc kā objektu). Tas apgrūtinās programmēšanu
"svešķermeņi", jo VBE neparādīs to pašu programmēšanas palīdzību attiecībā uz īpašībām,
metodes un notikumus, ko tas parāda objektiem, kas pieder lietojumprogrammai, no kuras strādājat.
Šis ir vispārīgs koda piemērs:
Sub OLEAutomationLateBinding () ”aizstāt xxx ar vienu no šiem:“ Access, Excel, Outlook, PowerPoint vai Word Dim oApp kā objekts ”novēlota saistīšana Dim oDoc kā objekts“ novēlota saistīšana On Error Resume Next ”ignorēt kļūdas Set oApp = GetObject (, "xxx.Application") "atsaucas uz esošu lietojumprogrammas gadījumu Ja oApp Is Nothing Tad" neviena esoša lietojumprogramma nedarbojas Set oApp = CreateObject ("xxx.Application") "izveidojiet jaunu lietojumprogrammas instanci Beigt, ja ir kļūda GoTo 0 'atsākt parasto kļūdu apstrāde Ja oApp nav nekas Tad 'nevar izveidot lietojumprogrammu MsgBox "Lietojumprogramma nav pieejama!", vbExclamation End If Ja ar oApp .Visible = True' padariet lietojumprogrammas objektu redzamu 'šajā brīdī lietojumprogramma ir redzama' dariet kaut ko atkarībā lietojumprogrammā… Iestatiet oDoc = .Documents.Open ("c: \ foldername \ filename.doc") 'atveriet dokumentu' … oDoc.Close True 'aizveriet un saglabājiet dokumentu .Quit' aizveriet lietojumprogrammu Beigt ar komplektu oDoc = Nekas 'brīva atmiņa Set oApp = Nothing' fr ee atmiņa Beigu apakš