Ga naar inhoud
  • 0

Send DDE Macro Word


RickFM

Vraag

1 antwoord op deze vraag

Aanbevolen berichten

  • 0

Hoi,

 

Oude vraag, al vaak gesteld. Het korte antwoord is dat DDE een verouderde techniek is die (vrijwel) niet meer gebruikt wordt. Daarbij is het zeer slecht gedocumenteerd. Wat jij beschrijft kan ook op verschillende manieren uitgevoerd worden zonder DDE.

 

1. Open het document via Send Event. Gebruik daarbij de commandline-switch /m om direct een macro af te vuren. Voorbeeld:

"C:\Program Files\Microsoft Office\Office\Winword.exe" "c:\mijn documenten\voorbeeld.txt" /mmijnmacro

2. Gebruik VBscript. Voorbeeld:

'***********************************************************
'test to open word and run macro
'***********************************************************

Dim objWord

Set objWord = WScript.CreateObject("Word.Application")
objWord.Visible = True

' ** Use this to make a new doc **
objWord.documents.open("C:\tmp\123.txt")
objWord.run("WordBoldTest")


'** Release the variable **
Set objWord=Nothing
'***********************************************************

 

3. (Voor de vorm) Gebruik DDE. Word moet open zijn om DDE commands te kunnen op vangen. Eerst starten dus met een Send Event. Daarna:

Service name: Winword
Topic: system
Commands: [FileOpen.Name ="c:\\tmp\\123.txt"][Call WordBoldTest]

 

Optie 1 lijkt me het snelst in jouw geval. Optie 2 heeft als voordeel dat het werkt op elke machine ongeacht de versie en locatie van word. Ook kun je hier eenvoudig dit proces op de achtergrond laten draaien door de visibility op false te zetten en een regeltje toe te voegen dat het document automatisch opgeslagen wordt. Let er wel op dat wanneer je de macro opgeslagen zit in bijv normal.dot. Deze niet zal werken op een ander systeem (aangezien de macro er dan niet is).

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...