如何调用word宏

jiamary 2009-04-14 05:07:43
Sub Macro1()
'
' Macro1 Macro
' 宏在 2009-4-13 由 USER 录制
'
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="摔跤"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="女子自由式55公斤"
Selection.MoveUp Unit:=wdLine, Count:=2
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="秩序单"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="决赛"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="2009-04-12 14:20"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="摔跤馆"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="名次 "
ShowVisualBasicEditor = True

End Sub
如何改成c++builder
...全文
206 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2009-04-15
  • 打赏
  • 举报
回复
OLE专业户来也!!!

#define wdLine 5
#define wdCharacter 1
#define wdExtend 1

void __fastcall TForm1::Button1Click(TObject *Sender)
{
String strDocFile = "C:\\ccrun\\123.doc";
Variant vWordApp;

try
{
vWordApp = Variant::CreateObject("Word.Application");
}
catch(...)
{
MessageBox(Handle, "启动Word出错!",
Application->Title.c_str(), MB_OK | MB_ICONERROR);
vWordApp = Unassigned;

return;
}

vWordApp.OlePropertyGet("Documents").
OleFunction("Open", strDocFile.c_str());

// 63 63 72 75 6E 2E 63 6F 6D
Variant vSelect = vWordApp.OlePropertyGet("Selection");

vSelect.OleFunction("MoveUp", wdLine, 1);
vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "摔跤");

vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "女子自由式55公斤");

vSelect.OleFunction("MoveUp", wdLine, 2);
vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "秩序单");

vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "决赛");

vSelect.OleFunction("MoveRight", wdCharacter, 1);
vSelect.OleFunction("TypeText", "2009-04-12 14:20");

vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "摔跤馆");

vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "名次 ");

vWordApp.OlePropertyGet("ActiveDocument")
.OleProcedure("SaveAs", strDocFile.c_str());

vWordApp.OleProcedure("Quit");
vWordApp = Unassigned;

ShowMessage("成功完成!");
}
安馨安旭 2009-04-15
  • 打赏
  • 举报
回复
是啊,要是用ole调用宏可能就难了,如果只是实现楼主的宏功能还是很容易的。楼主那么问估计是为了老妖过来吧,哈哈
Waiting4you 2009-04-15
  • 打赏
  • 举报
回复
灌一下水确认一下偶是不是妖哥说的那个同学^_^
ccrun.com 2009-04-15
  • 打赏
  • 举报
回复
楼主都说了"如何改成c++builder",这事需要楼主来判断.
My_Love 2009-04-15
  • 打赏
  • 举报
回复
感觉ccrun回答的不对,LZ是问怎样调用Macro1这个宏?
jiamary 2009-04-15
  • 打赏
  • 举报
回复
vWordApp.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").OlePropertySet("SeekView", 9);
Variant vSelect = vWordApp.OlePropertyGet("Selection");

vSelect.OleFunction("MoveUp", 1, 1);
vSelect.OleFunction("MoveDown", wdLine, 1);
vSelect.OleFunction("TypeText", "摔跤");
会报发生意外。
不知道为什么
jiamary 2009-04-15
  • 打赏
  • 举报
回复
还有一个我是在页眉中修改,不知怎么实现!
jiamary 2009-04-15
  • 打赏
  • 举报
回复
运行了还是报错啊!
wdLine 不识别。
确实是老妖说的那样,我只要转成C++BUILDER 就可以了!
ccrun.com 2009-04-15
  • 打赏
  • 举报
回复
顺便作个记号,看看那个喜欢用灌水的形式接分的同学是否路过此地.

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧