VC操作word实例详解
vc操作Word

vc操作Word1、如何用VC将word表格中插入一行Tables tbs=doc.GetTables();Table tb;Rows rs;tb=tbs.Item(1);//取第一个表格rs=tb.GetRows();COleVariantcovOptional((long)DISP_E_PARAMNOTFOUNT,VT_ERRPR);//最主要是这句,实在太感谢了rs.Add(covOptional);//增加一行2、设置字体的样式和字体大小Range wordRange= wordDoc.Range(&varOptional, &varOptional);Selection wordSelec = wordApp.GetSelection();_Font oFont;_ParagraphFormat wordFormat;//////////////设置标题////////////////////////////////////////wordSelec.HomeKey(&varUnit, &varOptional);oFont = wordSelec.GetFont();oFont.SetSize(15);oFont.SetName("黑体");wordFormat = wordSelec.GetParagraphFormat();wordFormat.SetAlignment(1);wordSelec.InsertAfter("力学试验机实验报告");wordSelec.InsertParagraphAfter();wordSelec.EndKey(&varUnit, &varOptional);////////////标题设置完毕/////////////////////////////////////3、在word 中插入表格Range rng;Tables tabs;Table tab;Selection sSel;_Document sDoc;先获得word文档对象,然后就可以对其进行操作了rng =sSel.GetRange();tabs.Add(rng,3,9,vOne,vTwo);//绘制3行9列表格tabs = sDoc.GetTables();tab = tabs.Item(2);for(int i=0;i<9;i++)向表格的第一行的每一个格中添加数据{cel = tab.Cell(1,i+1);rng = cel.GetRange();rng.SetText("长度");}4、过以标签的方式向word写数据Documents oDocs;_Document oDoc;Windows oWindows;Window oWindow;COleVariant tem1,m_olevariant(short(1),VT_I2); COleVariant m_variant1,m_variant2;oWordApp.SetVisible(true);/*******************通过标签设置数据**********************/ Bookmarks bookmarks;Bookmark bookmark;Range range;m_pathname = "c:\\报告样式.doc";COleVariant dot(m_pathname);oDocs=oWordApp.GetDocuments();oWindows=oWordApp.GetWindows();oDoc=oDocs.Add(&dot,&vOpt,m_variant1,m_variant2);oWordApp.Activate();bookmarks=oDoc.GetBookmarks();oWindow=oWindows.Item(m_olevariant);//设置标题tem1.SetString("CompanyName",VT_BSTR);bookmark=bookmarks.Item(&tem1);range=bookmark.GetRange();oWindow.ScrollIntoView(range,&m_olevariant);//要滚动视图是用这句吗?range.SetText("中国四方利通");5、用vc将图片插入word的指定位置下代码,但它总是将图片插在文档的最开始,我在文档中设置了标签“test”,请问怎样将图片插入word中指定的位置?Selection oSel;oSel = oWordApp.GetSelection();InlineShapes shps;//插入图片到指定的位置shps=oSel.GetInlineShapes();shps.AddPicture("C:\\1.jpg",vFalse,vTrue,vOpt);你必须先获得插入位置的range对象,然后addpicture的最后一个参数用range对象替换,就可以了怎样取某doc文档里的第一段和最后一段的内容Paragraphs pg;pg.GetFirst();//取第一段pg.GetLast();。
VC_应用开发中如何对Word文档进行页面设置

可以试试对其他的格式进行设置。
(作者: 梁海珍 王华)
Delphi 下如何实现窗口在最小化恢复时进行身份验证
如果数据保密性高, 一般应用程序设有密码登录窗口, 在 进入系统前需要验证用户是否是授权用户。 当授权用户离开计算 机几分钟时间内, 如果不想让其他人员偷偷使用程序, 一种简 单的办法是退出应用程序, 等回来后再重新登录。 但是假设用 户正在进行数据录入工作, 而且已经录入一半数据, 这时退出 程序先前的工作就白干了。 那还有没有其他更简单的办法呢?
应用程序在正常启动运行后, Windows 会 自 动 在 任 务 栏 上 创建一个程序按钮, 方便用户在多个应用程序之间切换。 单击 程序按钮时, 如果程序的窗口处于显示状态, 窗口会自动隐藏 到任务栏中。 当再次单击程序按钮时, 隐藏的程序窗口又会自 动恢复到初始显示状态。 那能不能通过编程实现: 当程序窗口 从任务栏恢复前进行身份验证, 验证成功则恢复隐藏的窗口, 验证失败则继续隐藏程序窗口呢?
// 声明用到的 word 中的类对象
_Application Wordapp;
Documents WordDocs;
_Document WordDoc,DocActive;
PageSetup Pagesetup;
// 页面设置对象
(3) 在 IDD_MYPAGE_DIALOG 对 话 框 界 面 中 添 加 控 件 及
“宏” 的录制功能, 把所想宏代码, 虽然这些代码都是用 VB 写 的 , 但 可 以 清 楚 看
出要使用哪些类、 哪些成员函 数 。 每 一 个 Microsoft Office 应 用
程序都在 dll 文件中提供了多种类型库资源, 这种 dll 文件叫做
VC操作Word系列

VC操作Word系列(一)近曰作一个小东西涉及到对汇总结果的打印,由于打印只在一台特定的机器进行所以考虑使用Word来实现,这样比较简单而且很专业。
开始的时候这个东西没有这项功能后来我闲的无聊看看是否可以实现(以前从来没有做过这方面的东西),于是乎搞了一下也不是很难,一点心得大家给指点一二,使用的是Office2000,工程类型是MFC 的对话框。
先看看需要使用到的东东:1.View->ClassWizard->Automation->Add Class From Library:定位到你安装Office的目录找到MSWord9.Olb 2.打开后把所有的类都选中倒入到你的工程(反正也是搞一回彻底一点:P) 3.在你的对话框头文件中加上#include"msword9.h" OK了准备工作搞定之后就可以玩儿转Word了,先来一个简单的void TestWord1(){Application app;COleVariant vTrue((short)TRUE), vFalse((short)FALSE);app.CreateDispatch(_T("Word.Application"));app.SetVisible(FALSE);//Create New DocDocuments docs=app.GetDocuments();CComVarianttpl(_T("")),Visble,DocType(0),NewTemplate(false);docs.Add(&tpl,&NewTemplate,&DocType,&Visble);//Add Content:TextSelection sel=app.GetSelection();sel.TypeText(_T("\t\t\t\t\t第一次玩儿Word\r\n")); sel.TypeText(_T("\t\t\t\t\t\t\t\t----------先来一个简单的\r\n"));sel.ReleaseDispatch();docs.ReleaseDispatch();app.SetVisible(TRUE);app.ReleaseDispatch();}f:\App\CtrlWord\CtrlWord.h(11): fatal error C1083: 无法打开包含文件:“MSWord9.h”: No such file or directory上面的错误已解决,在环境中,不需要加入msowrd9.h,而只要加入用到.h文件就可以了,例子中要加入#include "CApplication.h" //test#include "CDocuments.h" //test#include "CSelection.h" //testVC操作Word系列(二)大家都应该使用过Word提供的表格功能很是专业,如果在作一些数据库开发之类的软件对汇总的数据进行打印是常见的功能,这个如果用Word来实现个人感觉不错,废话少说说练咱就练。
VC 中操作word

VC 中操作word 第一步在函数InitInstance() 中加入如下代码1.如果是word 2003if ( CoInitialize(NULL) !=0 ){AfxMessageBox("初始化COM支持库失败");exit(1);}如下图如果是word 2007 ,加入如下代码:if(TRUE != AfxOleInit()){AfxMessageBox("初始化COM支持库失败");exit(1);}如下图第二步3.打开ClassWizard—Add Class—From a type library,选择本机word8.OLB文件(最好先查找一下该文件,word2000为Word9.0LB,office2007 为MSWORD.OLB 一般在安装目录Microsoft Office\Office12 下)。
选择Application、Documents、Document、Window、View 、Range、Bookmarks、Bookmark、Fields、FieId加入新类、头文件word.h、源文件word.cpp。
如下图经过以上的添加后,在系统的存放代码文件的目录下会多出两个文件msword.cpp msword.h。
同时在VC 环境下查看类会发现多出了刚才添加的word里面的一些类,如下图所示打开对应的头文件,在文件的头部添加:#include "comdef.h"#include <AtlBase.h>#include <windows.h>第三步设计模板,准备一个word的模板,即*.dot格式的word文件,可以用word自己创建一个。
在word中用户随意设计好报表的格式,并在相应需要程序修改的位置插入书签,书签用于将程序中想要输出变量的值带入模板中,模板中的书签名字一定要与程序中的一致,笔者建议将程序中变量的名字做为书签。
比较全的一个C#操作word文档示例

⽐较全的⼀个C#操作word⽂档⽰例最近两天研究了⼀下如何使⽤VS2008(C#语⾔)输出Word⽂档。
以下是⼏点总结:1、⾮常简单。
3、C#⼯程设置。
这⾥的⼯程设置,就是添加com组件。
步骤为:在⼯程资源管理器中"添加引⽤"->"com"选项卡->在下拉列表中选Microsoft word 11.0 Object Library。
ok了,看上去,跟添加⼀般的dll⼀样,但实际上vs2008在这个过程中完成⼀系列复杂的关于.net调⽤com组件的操作,不过,幸好我们不⽤管这个。
4、接下就是写代码了。
在这⾥,使⽤Word的com对像,跟使⽤⼀般的⾮com对像⼀样,⾮常流畅,好像根本就不管它什么com不com的。
为了使代码⽐较简洁,可以在源代码⽂件顶添加这样的⼀条语句:using Word = Microsoft.Office.Interop.Word;5、最好是对word对像模型有⼀定的了解,这样在写代码的时候就不会那么“迷茫”了。
wore对像模型中有⼏个⽐较重要的对像,它们是Application、Document、Selection、Range、Bookmark,以及其它的⼀些对像,如:Paragraph、Section、Table等级。
刚开始学的时候,感觉Selection、Range、Bookmark这⼏个对像有点迷惑⼈,Selection可能好理解,就是表⽰当前的选择区域,如果没有选择就表⽰光标所在位置。
Range和Bookmark,其实在很多地⽅很像,不过也有⼀些区别,在这⾥就不多说了,google⼀下"word.Range"就⾏了。
6、在写代码的过程中,经常会想要实现的⼀些操作,但是由于对word对像不熟悉⽽不知怎么⽤代码实现。
⽐如设置页眉、添加页码什么的,如果在Word 程序⾥⼿动的操作当然很简单,但是要⽤代码来实现,对初学者来说就可能不那么容易了。
(完整word版)VC++6.0运行简单C语言程序的过程

简单C程序执行过程1打开VC6.02新建一个C源文件,选则File-New,出现新建对话框3在新建对话框选择Files下的c++Source File选项,然后在右边输入所要建立的C源文件名和保存的路径,比如文件名为:c0-1.c,保存路径为:D/cc如下图。
注意,文件扩展名一定是.c4点击OK后,一个C源文件就建好了,如下图5下面在C源文件中编写C程序,如下:6.编辑完后,保存这个源程序文件,接下来是执行这个C程序。
首先是编译,选择Build菜单下的compile c0-1.c项,或者直接点编译图标,然后会出现如下提示:下面提示含义是:编译需要为这个C程序建立一个项目工作空间,你是否要建立项目工作空间?每一个C程序都需要一个项目工作空间,如果你提前不建立,系统就会提示默认建立一个工作空间,这里点是,默认会建立工作空间。
7默认建立的工作空间名为C源文件名,这里是c0-1,如下图所示。
8.编译成功后,VC环境下方会显示是否有错误,如上图中提示0error,0warning,表示没有错误,接下来是连接,选择build-build c0-1.exe 或者直接按连接图标,连接成功后如下图:下方提示:c0-1.exe 0error,0warning,表示连接成功。
9最后是运行C程序,选择build-execute c0-1.exe,或直接按运行图片,运行成功后,出现结果显示界面,程序结果为输出一句话:this is a C program. 输出结果后面的press any key to continue 是系统自带提示,表示按任意键继续。
10,按任意键,回到VC主界面11,接下来可以继续编辑该程序,如不需要编辑则关闭该程序,选择File-Closeworkspace。
12 关闭该C程序后,我们可以从保存的路径中找到刚刚关闭掉的工作空间,比如我们刚刚保存在D/CC路径里,通过File-Openworkspace,在打开的打开对话框中选择D/CC目录如下图,此时就可以看到c0-1.dsw,如下图,这个就是刚刚系统默认建立的工作空间,而我们刚编辑的c0-1.c就包含在这个工作空间中。
VC中进行office编程的-操作word

VC中进行office编程的-操作word,可以设置文字的样式,新建表格,这里提供给大家一个类--CWzjWordOffice::CWzjOffice类,用来对WORD进行简单的操作。
正文大家先看一下CWzjWordOffice类怎么使用CWzjWordOffice wd; //定义一个操作word的对象wd.Create(); //创建一个word应用程序增加一个文档wd.SetFont(25,"魏碑",RGB(128, 0, 0)); //设置字体(字号,字体名,颜色)wd.SetFont(1,0,0); //设置字体为粗体,不是斜体,没有下划线wd.SetParaphformat(1); //设置文字为居中对齐wd.WriteText("软件工程成绩"); //写文字wd.m_wdSel.TypeParagraph(); //回车换行//设置表格字体wd.SetFont(9,"宋体");wd.SetFont(0,0,0);wd.CreateTable(2,4); //创建一个2行4列的表格wd.WriteCellText(1,1,"学号"); //往1行1列单元写“学号”wd.WriteCellText(1,2,"姓名"); //往1行2列单元写“姓名”wd.WriteCellText(1,3,"年龄"); //...wd.WriteCellText(1,4,"省份");wd.WriteCellText(2,1,"23020723");wd.WriteCellText(2,2,"汪自军");wd.WriteCellText(2,3,"25");wd.WriteCellText(2,4,"湖北");wd.ShowApp(); //显示word后面是效果图。
vc操作office

vc操作office下面是从CSDN上摘抄过来的,主要是今天调试VC操作Word2003的时候,网上下载的是操作Word 2000,但是参数已经有一些不同了。
下面的代码可以在2003中运行,记录在这里便于以后复习用。
感谢您使用微软产品。
对于您所提的问题,确实可以使用OLE Automation在VC++中对Word Object Model进行操作。
下面这篇知识库文章中给出了如何在VC_++中引入Office TypeLib,并通过程序启动MS Excel.参照这篇文章可以使您建立起程序的框架Q178749 HOWTO: Create Automation Project Using MFC and a Type Library /doc/b96834780.html,/support/kb/articles/q178/7/49.asp以下两篇知识库文章给出了具体的样例,如何操作Word和Excel. 您可以使用其中的方法来完成你自己的操作。
具体的对象模型的操作,您需要参见对应产品的VBA帮助文档。
Q178784 HOWTO: Use Automation to Open and Print a Word Document /doc/b96834780.html,/support/kb/articles/q178/7/84.aspQ179706 HOWTO: Use MFC to Automate Excel and Create/Format a New Workboo/doc/b96834780.html,/support/kb/art icles/q179/7/06.asp这两篇是介绍一些基础的知识以及Office 产品在Automation 上的一些支持以及常见问题。
您可以用作参考。
Q238972 INFO: Using Visual C++ to Automate Office/doc/b96834780.html,/support/kb/articles/q238/9/72.aspQ196776 FAQ: Office Automation Using Visual C++/doc/b96834780.html,/support/kb/art icles/q196/7/76.asp此外,我在以下列出了Q178784中的样例代码,并添加了一些中文注释。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC操作word实例详解[转]我们操纵Word需要通过类型库中的MFC类。
而这些类,应该都是基于一个叫COleDispatchDriv er的类。
至少我所了解到的都是这样。
COleDispatchDriv er没有基类。
COleDispatchDriv er类实现OLE自动化中的客户方。
OLE调度接口为访问一个对象的方法和属性提供了途径。
COleDispatchDriv er的成员函数连接,分离,创建和释放一个IDispatch类型的调度连接。
其它的成员函数使用变量参数列表来简化调用IDispatch::Inv oke。
学习如何自动化控制Word、Excel 和Powerpoint 的对象模型的最佳方法是使用这些Off ice 应用程序中的宏录制器:从工具菜单上的宏选项中选择录制新宏,然后执行您感兴趣的任务。
从工具菜单上的宏选项中选择停止录制。
完成录制后,从工具菜单上的宏选项中选择宏,选择您录制的宏,然后单击编辑。
您将看到生成的VBA 代码,该代码可完成您所录制的任务。
记住,录制的宏在大多数情况下并不是最佳代码,但它可以提供快捷可用的示例。
Application:代表Microsof t Word 应用程序。
Application 对象包含可返回最高级对象的属性和方法。
例如,Activ eDocument 属性可返回当前活动的Document 对象。
Documents:由Word 当前打开的所有Document(文档)对象所组成的集合。
Document:代表一篇文档。
Document 对象是Documents 集合中的一个元素。
Documents 集合包含Word 当前打开的所有Document 对象。
Selection:该对象代表窗口或窗格中的当前所选内容。
所选内容代表文档中被选定(或突出显示的)的区域,若文档中没有所选内容,则代表插入点。
每个文档窗格只能有一个活动的Selection 对象,并且整个应用程序中只能有一个活动的Selection 对象。
例子1:#include "msword9.h" //为了使代码集中,方便阅读,所以把头文件放到了这里v oid CStep1Dlg::OnOK(){_Application app; //定义一个WORD的应用对象if(!app.CreateDispatch(_T("Word.Application"))) //启动WORD{AfxMessageBox(_T("居然你连OFFICE都没有安装吗?"));return;}AfxMessageBox(_T("WORD 已经运行启动啦,你可以用Ctrl+Alt+Del查看"));app.SetVisible(TRUE); //设置WORD可见。
//当然,如果你想要悄悄地调用WORD的功能,则注释掉这条语句AfxMessageBox(_T("现在你已经看到WORD的程序界面了吧"));AfxMessageBox(_T("WORD准备要退出啦"));VARIANT Sav eChanges,OriginalFormat,RouteDocument; //定义调用QUIT时使用的参数Sav eChanges.v t=VT_BOOL; //设置退出WORD时候的保存参数Sav eChanges.boolVal=VARIANT_FALSE; //为不保存任何文档,模板及设置::VariantInit(&OriginalFormat); //清空变量RouteDocument.vt=VT_EMPTY; //清空变量的另一种方法//调用Quit退出WORD应用程序。
当然不调用也可以,那样的话WORD还在运行着那app.Quit(&Sav eChanges,&OriginalFormat,&RouteDocument);app.ReleaseDispatch(); //释放对象指针。
切记,必须调用AfxMessageBox(_T("Step1执行完成。
接着请学习Setp2"));}例子2:#include "msword9.h"#include <AtlBase.h> //新增加了一个头文件,为使用CComVariant替代VARIANT做准备v oid CStep2Dlg::OnOK(){//以下3行代码,同Step1。
就不解释啦_Application app;//为了简单,没有判断返回值。
如果没有成功,记得检查你有没有Af xOleInit()呀?app.CreateDispatch(_T("Word.Application"));app.SetVisible(TRUE);AfxMessageBox(_T("WORD已经启动,现在要退出啦"));AfxMessageBox(_T("怎么和Step1没有什么区别呀?"));AfxMessageBox(_T("嘿嘿,是没什么区别,但是使用方式简单了很多呀。
看看源程序吧"));//准备调用_Application::Quit函数了,需要定义3个参数。
//但是,这次我们使用CComVariant,这是一个模板类。
//在定义的时候直接调用带参数的构造函数,比VARIANT使用简单多了吧CComVariant Sav eChanges(f alse),OriginalFormat,RouteDocument;//使用CComVariant 的不带参数的构造函数,默认就是使用VT_EMPTY,设置为空类型//另外,除了CComVariant,你还可以使用COleVariant和_v ariant_t,但我个人最喜欢前者app.Quit(&Sav eChanges,&OriginalFormat,&RouteDocument);app.ReleaseDispatch();AfxMessageBox(_T("下面该学习Setp3了"));}例子3:#include "msword9.h"#include <AtlBase.h>v oid CStep3Dlg::OnOK(){////////////// 这次,我们要控制在WORD中输入一些字符了//////////////////////************* WORD 录制的宏,新建一个空文档,然后输入一些文字************ Documents.Add Template:= _"C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates\Normal.dot" _ , NewTemplate:=False, DocumentTy pe:=0Selection.Ty peText Text:="HELLO"Selection.Ty peParagraphSelection.Ty peText Text:="大家好"***************************************************************************/_Application app;app.CreateDispatch(_T("Word.Application"));app.SetVisible(TRUE);AfxMessageBox(_T("看好了,就要新建一个空白文档了"));//通过WORD宏可以知道,由于要使用Documents,于是我们定义一个并从app中取得Documents docs=app.GetDocuments();//准备调用Documents::Add函数了,需要定义4个参数。
//从WORD宏可以看出来3个参数的类型为://Template字符,NewTemplate布尔,Document Ty pe数值//但Add函数还需要一个参数是Visible,傻子也能看出来这个值表示是否显示出新文档//并且可以给默认值(VT_EMPTY)CComVariant Template(_T("")); //为了简单,没有使用WORD的文档模板CComVariant NewTemplate(f alse),DocumentTy pe(0),Visible;docs.Add(&Template,&NewTemplate,&DocumentTy pe,&Visible);AfxMessageBox(_T("下面,程序要向WORD发送字符啦"));//通过WORD宏可以知道,由于要使用Selection,于是我们定义一个并从app中取得//Selection表示输入点,即光标闪烁的那个地方Selection sel=app.GetSelection();//调用函数Selection::Ty peText 向WORD发送字符sel.Ty peText(_T("HELLO\r\n大家好呀"));AfxMessageBox(_T("看见了吗?我要退出啦"));sel.ReleaseDispatch(); //Selection 不用了,一定要释放docs.ReleaseDispatch(); //Documents 也不用了CComVariant Sav eChanges(f alse),OriginalFormat,RouteDocument;app.Quit(&Sav eChanges,&OriginalFormat,&RouteDocument);app.ReleaseDispatch();AfxMessageBox(_T("下面该学习Setp4了"));}例子4:#include "msword9.h"#include <AtlBase.h>v oid CStep4Dlg::OnOK(){_Application app;app.CreateDispatch(_T("Word.Application"));app.SetVisible(TRUE);Documents docs=app.GetDocuments();CComVariant Template(_T(""));CComVariant NewTemplate(f alse),DocumentTy pe(0),Visible;docs.Add(&Template,&NewTemplate,&DocumentTy pe,&Visible);Selection sel=app.GetSelection();COleVariant v arstrRange("");COleVariant v arConf irmConv ersions(short(0),VT_BOOL);COleVariant v arLink(short(0),VT_BOOL);COleVariant v arAttachment(short(0),VT_BOOL);sel.InsertFile("C:\\M y Project\\WordOperator\\doc\\fjjb.doc",v arstrRange,v arConf irmConv ersions,v arLink,varAttachment);sel.Mov eUp(COleVariant((short)5),COleVariant((short)2),COleVariant((short)0));sel.Ty peText("123456789 ");sel.Mov eRight(COleVariant((short)12),COleVariant((short)1),COleVariant((short)0));sel.Ty peText(_T("HELLO"));sel.Mov eRight(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0));sel.Ty peText("123456789");AfxMessageBox(_T("好了,我要保存到c:\\hello.doc中了"));/**************** 这是在WORD中录制的新建文档直到另存的宏*************Documents.Add Template:= _"C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates\Normal.dot" _, NewTemplate:=False, DocumentTy pe:=0Selection.Ty peText Text:="Hello"Selection.Ty peParagraphSelection.Ty peText Text:="大家好"ChangeFileOpenDirectory "C:\"Activ eDocument.Sav eAs FileName:="Hello.doc", FileFormat:=wdFormatDocument _, LockComments:=False, Password:="", AddToRecentFiles:=True, _WritePassword:="", ReadOnly Recommended:=False, EmbedTrueTy peFonts:=False, _Sav eNativ ePictureFormat:=False, Sav eFormsData:=False, Sav eAsAOCELetter:= _ False*********************************************************************//**************** 程序思路******************************************另存为的函数是Activ eDocument.Sav eAs,显然表示的是对当前活跃的文档进行保存,在我们的类中没有Activ eDocument,其实它对应的是_Document,而这个可以由_Application 的GetActiv eDocument()得到。