Perustiedot OLE -automaatiosta VBA: n avulla Microsoft Excelissä

Anonim

Kun haluat käyttää muiden sovellusten toimintoja, sinun on päätettävä, haluatko käyttää niitä
objektimuuttujien varhainen tai myöhäinen sidonta.

Varhainen sitominen

Objektimuuttujan ja objektin välinen sidonta tapahtuu, kun sovellus kootaan.
Tämä johtaa parempaan suorituskykyyn verrattuna sitomiseen, kun sovellus suoritetaan (myöhäinen sidonta).
Jos haluat luoda varhaisen sidonnan, sinun on asetettava viittaus "vieraaseen" objektikirjastoon, jota haluat käyttää.
Tämä tehdään VBE: stä käyttämällä valikkoa Työkalut, viitteet…. Kun VBProjektissa on viittaus
objektikirjastossa voit ilmoittaa tiettyjä objektimuuttujia (esim. Dim oDoc As Word.Document). Tämä onnistuu myös
"vieraiden esineiden" ohjelmointi on helpompaa, koska VBE näyttää samat ohjelmointiohjeet ominaisuuksien suhteen,
menetelmät ja tapahtumat, jotka se näyttää käsiteltävään sovellukseen kuuluville objekteille
(VBE on automaattisesti lisännyt viittauksen tähän sovellukseen etukäteen).
Tämä on yleinen koodiesimerkki, joka näyttää vba -automaatiovirheen:

Sub OLEAutomationEarlyBinding () ”korvaa xxx jollakin seuraavista: Access, Excel, Outlook, PowerPoint tai Word Dim oApp As xxx.Application 'early sitova Dim oDoc As xxx.Document' Excel.Workbook, Outlook.MailItem, PowerPoint.Presentation , Word. uusi sovellusilmoitus Lopeta Jos On Virhe GoTo 0 'jatkaa normaalia virheiden käsittelyä Jos oApp ei ole mitään Sitten' ei pysty luomaan sovellusta MsgBox "Sovellus ei ole käytettävissä!", vbExclamation End If Jos on oApp .Visible = True 'tee sovellusobjekti näkyvissä 'tässä vaiheessa sovellus on näkyvissä' tee jotain sovelluksesta riippuen … Aseta oDoc =. sulje sovellus Lopeta asetuksella oDoc = Ei mitään vapaata muistia Aseta oApp = Ei mitään vapaata muistia Loppuosa

Myöhäinen sidonta

Objektimuuttujan ja objektin välinen sidonta tapahtuu, kun sovellus suoritetaan.
Tämä johtaa hitaampaan suorituskykyyn verrattuna siihen, milloin sidonta tapahtuu sovelluksen kokoamisen yhteydessä (varhainen sidonta).
Jos et lisää viittausta "vieraan" sovelluksen objektikirjastoon, sinun on lisättävä se
julistaa yleisiä objektimuuttujia (esim. Dim oDoc as Object). Tämä vaikeuttaa ohjelmointia
"vieraat esineet", koska VBE ei näytä samaa ohjelmointiapua ominaisuuksien suhteen,
menetelmät ja tapahtumat, jotka se näyttää sovellukselle, jonka kanssa työskentelet.
Tämä on yleinen koodiesimerkki:

Sub OLEAutomationLateBinding () 'korvata xxx jollakin seuraavista:' Access, Excel, Outlook, PowerPoint tai Word Dim oApp As Object 'myöhäinen sidonta Dim oDoc As Object' myöhäinen sidonta Virhe Jatka seuraavaksi 'ohita virheet Aseta oApp = GetObject (, "xxx.Application") "viittaa olemassa olevaan sovelluksen ilmentymään Jos oApp ei ole mitään Sitten" mikään olemassa oleva sovellus ei ole käynnissä Aseta oApp = CreateObject ("xxx.Application") "luo uusi sovellusilmoitus Lopeta Jos On Ongelma GoTo 0 'jatkaa normaalia virhettä käsittely Jos oApp ei ole mitään Sitten 'ei voi luoda sovellusta MsgBox "Sovellus ei ole käytettävissä!", vbExclamation End If With with oApp .Visible = True' näytä sovellusobjekti näkyvänä 'tässä vaiheessa sovellus on näkyvissä' tee jotain riippuen sovelluksessa… Aseta oDoc = .Documents.Open ("c: \ foldername \ filename.doc") 'avaa asiakirja'… oDoc.Close True 'sulje ja tallenna asiakirja .Quit' sulje sovellus Lopeta asetuksella oDoc = Ei mitään "vapaata muistia" Aseta oApp = Nothing "fr ee muisti End Sub