vbams-wordword-automation

Word opens for real when trying to fill-in the blanks dynamically?


I'm currently using Word documents as templates where blanks have to be filled dynamically/programmatically in PwoerBuilder.

This has always worked fine until the company moves on Windows 7.

In short, the Word application is opened and made invisible.

Word.Application.Visible = false

Except that sometimes, and I don't know why, once the template is accessed, Word opens itself just as if I had double-clicked the template byself through the Explorer - but I didn't.

So, it asks whether I want to open it in read-only mode, since the application already has a handle on the file. And even if I click [Cancel] not to open the file, Word opens with no document, then the application crashes.

It reports PowerBuilder System Error 35.

Error Number 35. Error text = Error calling external object function open at line 24 in function of_fusion of object n_cst_9999.

The external object that the application is trying to call a function against is Word.

oleobject lole_word
lole_word = create oleobject
lole_word = ConnectToNewObject("Word.Application")
lole_word.Documents.Open("templatefile.docx")

It may work for a few documents, and after a few, the problem comes up. This is the first time ever I meet with this issue.

I'll be glad to answer anyone's question who's trying to help.


Solution

  • Will, you may try setting DisplayAlerts and FeatureInstall properties on Word Application object. That hid most of word alerts for us. (The code is from C# project and may not be exactly what you need)

    Word.Application.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
    Word.Application.FeatureInstall = 0;
    

    You may also try making a copy of the file before opening it to avoid accessing same .docx from different threads - if that may be the case.