Kui soovite kasutada teiste rakenduste funktsioone, peate otsustama, kas soovite neid kasutada
objekti muutujate varajane või hiline sidumine.
Varajane sidumine
Sidumine objekti muutuja ja objekti vahel toimub rakenduse koostamisel.
Selle tulemuseks on parem jõudlus võrreldes sellega, kui sidumine toimub rakenduse käivitamisel (hilinenud sidumine).
Kui soovite luua varase sidumise, peate määrama viite "võõrale" objektide kogule, mida soovite kasutada.
Seda saab teha VBE -st, kasutades menüüd Tööriistad, Viited…. Kui VBProjektil on viide
objekti raamatukogu saate deklareerida konkreetseid objektimuutujaid (nt Dim oDoc kui Word.Document). Sellega saab ka hakkama
"võõrkehade" programmeerimine on lihtsam, kuna VBE kuvab omaduste osas sama programmeerimisabi,
meetodid ja sündmused, mida see kuvab teie töötavale rakendusele kuuluvate objektide jaoks
alates (VBE on sellele rakendusele eelnevalt automaatselt viite lisanud).
See on üldine koodinäide, mis näitab vba automatiseerimisviga:
Sub OLEAutomationEarlyBinding () ”asendab xxx ühega järgmistest:„ Access, Excel, Outlook, PowerPoint või Word Dim oApp As xxx.Application ”varajane sidumine Dim oDoc As xxx.Document” Excel.Workbook, Outlook.MailItem, PowerPoint.Presentation , Word.Document On Error Resume Järgmine "ignoreeri vigu Set oApp = GetObject (," xxx.Application ")" viitab olemasolevale rakenduse eksemplarile Kui oApp pole midagi Siis "ükski olemasolev rakendus ei tööta Set oApp = New xxx.Application" loo uus rakenduse eksemplar Lõpp Kui sees Viga GoTo 0 'jätkab tavapärast veakäsitlust Kui oApp pole midagi Siis' ei saa rakendust luua MsgBox "Rakendus pole saadaval!" nähtav "siinkohal rakendus on nähtav" tehke midagi sõltuvalt rakendusest … Määrake oDoc = .Documents.Open ("c: \ kaustanimi \ failinimi.doc") 'avage dokument' … oDoc.Close True 'sulgege ja salvestage dokument .Lõpeta 'sulgege rakendus Lõpeta komplektiga oDoc = Miski pole vaba mälu Määra oApp = Mitte midagi vaba mälu Lõpp -alam
Hiline köitmine
Sidumine objekti muutuja ja objekti vahel toimub rakenduse käivitamisel.
Selle tulemuseks on aeglasem jõudlus võrreldes sellega, kui sidumine toimub rakenduse koostamisel (varajane sidumine).
Kui te ei lisa viidet objektiraamatukogule, mis kuulub rakendusse "võõras", peate seda tegema
deklareerida üldised objektimuutujad (nt Dim oDoc kui objekt). See raskendab programmeerimist
"võõrkehad", kuna VBE ei kuva omaduste osas sama programmeerimisabi,
meetodid ja sündmused, mida see kuvab nende rakenduste juurde kuuluvate objektide jaoks, millest te töötate.
See on üldine koodinäide:
Sub OLEAutomationLateBinding () ”asendage xxx ühega järgmistest:„ Access, Excel, Outlook, PowerPoint või Word Dim oApp as Object ”hiline sidumine Dim oDoc As Object„ hiline sidumine On Error Resume Next ”ignoreerib vigu Set oApp = GetObject (, "xxx.Application") "viitab olemasolevale rakenduse eksemplarile Kui oApp pole midagi Siis" ühtegi olemasolevat rakendust ei tööta Määra oApp = CreateObject ("xxx.Application") "loo uus rakenduse eksemplar Lõpp Kui on viga GoTo 0 'jätka normaalset viga käsitsemine Kui oApp pole midagi Siis 'ei saa rakendust luua MsgBox "Rakendus pole saadaval!", vbExclamation End If Kui on oApp .Visible = True' tee rakenduse objekt nähtavaks 'sel hetkel on rakendus nähtav' tee midagi sõltuvalt rakendusel… Määra oDoc = .Documents.Open ("c: \ foldername \ filename.doc") 'ava dokument'… oDoc.Close True 'sulge ja salvesta dokument .Quit' Miski pole vaba mälu Set oApp = Nothing 'fr ee mälu End Sub