我正在将一个VB6项目转换为C#,我需要获取活动word文档对象。在vb6中,使用
dim objWordDoc as Word.Document
set objWordDoc = Word.ActiveDocument
我需要使用C#获取单词的活动word文档。我已将下列参考资料加入该计划。
并将对该类的引用添加为
using Word = Microsoft.Office.Interop.Word;
using Office = Microsoft.Office.Core;
Private Word.Document _activeDocument;
是否有类似于C#的函数来获取活动word文档?
_activeDocument = Word.Application.ActiveDocument;
发布于 2019-01-24 11:52:22
我找到了答案。
object word;
Word.Document _activeDocument;
try
{
word = System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
//If there is a running Word instance, it gets saved into the word variable
}
catch (Exception ex)
{
//If there is no running instance, it creates a new one
Type type = Type.GetTypeFromProgID("Word.Application");
word = System.Activator.CreateInstance(type);
}
Word.Application oWord = (Word.Application) word;
_activeDocument = oWord.ActiveDocument
我用这个问题的答案找到了这个。Find existing instance of Office Application
发布于 2019-08-16 20:43:12
我认为
var app = Globals.ThisAddIn.Application;
var wind = app.ActiveWindow;
var doc = wind.Document;
A Globals是外接程序类的成员.
https://stackoverflow.com/questions/54289143
复制相似问题