Word VBA制作的窗体如何生成可执行程序 Word VBA中制作了一个窗体向Word中添加文字,这个窗体能生成EXE文件吗,怎么操作呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 仅供参考://1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦)//2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库// (例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),// 选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到// _Application,// Documents,// _Document,// Range// 这四个类,选中他们后按OK//3.进入你的main函数所在的cpp文件,加入头文件引用// #include "msword.h" //引用刚才classwizard生成的idispatch包装类//4.加入代码// console_word.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "console_word.h"#include "msword.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// The one and only application objectCWinApp theApp;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){ int nRetCode = 0; // initialize MFC and print and error on failure if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: change error code to suit your needs printf(_T("Fatal Error: MFC initialization failed!\n")); nRetCode = 1; } else { // TODO: code your application's behavior here. if (CoInitialize(NULL) != S_OK) { AfxMessageBox("初始化COM支持库失败!"); return -1; } _Application wordApp; Documents docs; _Document doc; Range aRange; COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CString txt; wordApp.CreateDispatch("Word.Application",NULL); wordApp.SetVisible(FALSE); docs=wordApp.GetDocuments(); doc=docs.Open(COleVariant("c:\\new\\测试.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt); aRange=doc.Range(vOpt,vOpt); txt=aRange.GetText(); AfxMessageBox(txt);//这里GetText得到的就是word文件的纯文本了,你可以将其写到txt文件中 printf("[%s]\n",txt.GetBuffer(txt.GetLength()));//里面的换行不是\r\n而是\r,所以需要输出重定向到文本文件看结果。 aRange.ReleaseDispatch(); doc.Close(vOpt,vOpt,vOpt); doc.ReleaseDispatch(); docs.ReleaseDispatch(); wordApp.Quit(vOpt,vOpt,vOpt); wordApp.ReleaseDispatch(); CoUninitialize(); } return nRetCode;} 在ask板块回答过你了,用vb VBA本身不支持生成exe的可执行程序,可以考虑用VB来实现 在EXCEL的VBA中,如何确定一个对象是否存在? VB利用Winsock编程传数据时,为什么有时收到的数据与发送的数据块大小不一致? 请帮忙!!!!如何利用SendMessage发一个回车指令? 除了用vb本身的打包向导工具来发布vb应用程序,还用什么? 上次未能解决,这次继续求教 如何判断oracle数据库是否正常运行? 请问一下!! 如何在vb的报表中动态加入图片 setupbuilder 哪里有? VB高手请进:请教两个关于UserControl的问题。 求VB复合键怎么控制360浏览器 求助:把EXCEL工作薄里面的第一个表的A1单元格内容显示在VB窗体上面的Text里,求完整代码
//2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库
// (例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),
// 选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到
// _Application,
// Documents,
// _Document,
// Range
// 这四个类,选中他们后按OK
//3.进入你的main函数所在的cpp文件,加入头文件引用
// #include "msword.h" //引用刚才classwizard生成的idispatch包装类
//4.加入代码
// console_word.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include "console_word.h"
#include "msword.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// The one and only application objectCWinApp theApp;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0; // initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
printf(_T("Fatal Error: MFC initialization failed!\n"));
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
if (CoInitialize(NULL) != S_OK)
{
AfxMessageBox("初始化COM支持库失败!");
return -1;
} _Application wordApp;
Documents docs;
_Document doc;
Range aRange;
COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CString txt; wordApp.CreateDispatch("Word.Application",NULL);
wordApp.SetVisible(FALSE);
docs=wordApp.GetDocuments();
doc=docs.Open(COleVariant("c:\\new\\测试.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
aRange=doc.Range(vOpt,vOpt);
txt=aRange.GetText();
AfxMessageBox(txt);//这里GetText得到的就是word文件的纯文本了,你可以将其写到txt文件中
printf("[%s]\n",txt.GetBuffer(txt.GetLength()));//里面的换行不是\r\n而是\r,所以需要输出重定向到文本文件看结果。
aRange.ReleaseDispatch();
doc.Close(vOpt,vOpt,vOpt);
doc.ReleaseDispatch();
docs.ReleaseDispatch();
wordApp.Quit(vOpt,vOpt,vOpt);
wordApp.ReleaseDispatch(); CoUninitialize();
} return nRetCode;
}