2017-04-10 32 views
3

我正在使用Office PIA將應用程序集成到Word中。使用PIA執行宏後鎖定Word文檔

有多個word文檔在打開它們時運行宏。我的目標是鎖定當前文件,但之後宏已經運行。有沒有辦法做到這一點?想到這樣的事情應該工作,但像「MacroExecuted」或別的東西,沒有這樣的事件:

public void OpenDocument(string path) 
{ 
    var app = new Application(); 
    app.Documents.Open(path); 
    app.ActiveDocument.MacroExecuted += LockDocumentEvent; 
    app.Visible = true; 
} 
+0

我剛查過vba-internal,看起來像'app.Documents.Open(path);'只會在關聯代碼執行後纔會返回。當「Open」返回時,您是否確實遇到了仍在運行宏的問題? – grek40

回答

0

發現,長期搜索後:

的重要方法包含在文檔對象。

app.ActiveDocument.RunAutoMacro(WdAutoMacros.wdAutoOpen); 

WdAutoMacros枚舉包含不同的值,它指示哪個宏應該執行。對我來說是

WdAutoMacros.wdAutoNew

WdAutoMacros.wdAutoOpen

現在宏從Office SDK打開文檔後執行。

相關問題