MS Word en MS Excel libraries codematig instellen

Status
Niet open voor verdere reacties.

Sander32

Gebruiker
Lid geworden
26 jul 2012
Berichten
65
Ik werk met MS Office XP-2003 en installeer een MS Access applicatie op verschillende werkstations.
De applicatie gebruikt de Office onderdelen MS Word en MS Excel.
Een nadeel van MS Office XP-2003 de Object Library van MS Word en MS Excel niet automatisch aanpast, wel vind dit automatisch plaats vanaf hogere Office echter heb ik te maken met verschillende installaties.
Ik zelf gebruik 11.0 van MS Word en MS Excel terwijl andere zelfs 10.0 of hoger dan 11.0 gebruiken.
Ik weet dat je via de Dir() functie kan opsoren of bepaalde Libraries (bestanden) aanwezig is.
Heeft iemand de code om deze vooraf de applicatie wordt geactiveerd een of deze library in te stellen?
Anders moet ik telkens handmatig naar referenties gaan en deze daar aanpassen wat natuurlijk erg onhandig werkt.
 
Waarom werk je niet met Late Binding? In dat geval heb je helemaal geen verwijzingen naar bibliotheken nodig, en zal je database zonder extra instellingen en handelingen op elke plek werken.
 
Goedemorgen Michel,

Ik weet niet waarom ik niet met late binding werkt???
Heb jij toevallig voorbeeldcode zodat ik mijn oplossing erin kan fietsen?
Liefst voorbeeldcode dat slaat op de Libraries van MS Excel en MS Word.
 
Bij Automation kun je twee soorten connecties maken met ander Office pakketten: Early Binding en Late Binding. De eerste variant vereist het laden van de noodzakelijke bibliotheken, met Late Binding hoeft dat dus niet. In het laatste geval leg je de variabelen vast in Objecten. Een Excel voorbeeldje van de twee ziet er dan zo uit:

Code:
'----------------------------------------------------------------------------
'Deze variabelen gebruiken bij Late Binding...
'----------------------------------------------------------------------------
Dim xlApp As Object
Dim xlWBk As Object
Dim xlWSht As Object
Dim xlRng As Object

    '------------------------------------------------------------------------
    'Deze SET variabelen gebruiken bij Late Binding...
    '------------------------------------------------------------------------
    Set xlApp = GetObject(, "Excel.Application") 'Openen Excel sessie

'============================================================================

'----------------------------------------------------------------------------
'Deze variabelen gebruiken bij Early Binding...
'----------------------------------------------------------------------------
Dim xlApp As Excel.Application
Dim xlWBk As Excel.Workbook
Dim xlWSht As Excel.Worksheet
Dim xlRng As Excel.Range

    '------------------------------------------------------------------------
    'Deze SET variabelen gebruiken bij Early Binding...
    '------------------------------------------------------------------------
    Set xlApp = CreateObject("Excel.Application")  'Maken van Excel sessie

'============================================================================

    '------------------------------------------------------------------------
    'Vanaf hier werkt de code identiek, en kun je Excel gewoon gebruiken
    '------------------------------------------------------------------------
    xlApp.Visible = False 
    '------------------------------------------------------------------------

Voor Word geldt iets vergelijkbaars. Op deze site vind je wat meer voorbeelden.
 
Even voor de duidelijkheid want anders maak ik een fout.
Als je deze variabele declareert, moet je toch in je verwijzingen de library gekoppeld hebben?
Daar gaat het dus om, en niet de Excel variabele declareren.
Laatst deed ik dit ook met adobe echter moest ik wel de library gekoppeld hebben in mijn verwijzingen.
En juist het koppelen van deze libraries zou ik het liefst code matig willen inregelen.
 
Dat is de grap van Late Binding: je hoeft dus geen bibliotheekverwijzingen meer te maken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan