发表回复 
请教各位老师,hotkey调用word com对象操作宏能实现吗?
2012-12-15, 17 : 00
请教各位老师,hotkey调用word com对象操作宏能实现吗?
[i=s] 本帖最后由 善源 于 2012-12-30 17:12 编辑 [/i]

我自己写了一些MS office word的宏代码,现在我的想法是能否将这些宏代码放到hotkey中,通过hotkey调用word的com对象发送给word执行,从而保证宏代码的可移植性,进而保​证宏代码的安全性。请老师们看看。能实现吗?com对象有操作宏的接口吗?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-15, 20 : 53
 
善源兄:
Learning one君在英文官網的討論可能有幫助
http://www.autohotkey.com/board/topic/46...ro-by-ahk/
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-17, 09 : 10
 
非常感谢jony兄提供资料,我看过他们的教程是不是还要下载什么标准库支持?还在努力测试中。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-18, 23 : 36
 
Learning one 這段很簡潔...就.Run(MacroName)而已,不用多加什麼附件丫
RunMSWordMacro(MacroName) { ; for AHK_L
oWord := ComObjActive("Word.Application")
oWord.Run(MacroName)
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-21, 22 : 10
 
en,太好了,如果这个宏代码没在word宏编辑器,我能操作吗?我主要是保持代码的移植性
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-21, 23 : 01
 
找到這個command line版本的word操作說明...
代码: (全选)
http://winhlp.com/WordCommandLineSwitches.htm
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-22, 23 : 16
 
http://msdn.microsoft.com/en-us/library/...e.12).aspx
裡有...
Application.Run "Normal.Module1.MAIN"
Application.Run "MyProject.MyModule.MyProcedure"
Application.Run "'My Document.doc'!ThisModule.ThisProcedure"

照上述語法....,執行外部檔案的Macro 猜一下在AHK的寫法可能是
oWord.Run('My Document.doc'!ThisModule.ThisProcedure)
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-23, 11 : 18
 
7# jony.tw
jony兄太感谢了,帮我解决了很多工作中的实际问题。现在的情况是这样的,通过word的模板确实可以保存宏并能够在不同电脑之间移动,但这会暴露事先写好的宏的源代码​,所以我的思路是,能否将word 的宏的源代码放入ahk中封装成exe文件,高效安全可移植。只要该电脑上有word就可以使用这个exe文件的功能。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-23, 16 : 34
 
8# 善源

我觉得你说的是完全可以的,代码转换一下,都放在exe中间,可以弄个fileselect选择下操作哪个文件就可以了。

不知道你的问题在哪里,照这个思路有困难吗?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-23, 16 : 39
 
8# 善源

宏代码直接放到hotkey里面肯定是不能执行的,要转换成用com方式操作的代码。

我想你的问题是能否在hotkey里面直接运行宏代码,而不需要转换,我觉得可以采用迂回的方式,代码以文本形式存在hotkey里面,用的时候直接拷贝到目标offic​e文档的宏当中,然后用com方式执行,执行完毕后再删除掉。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-24, 13 : 38
 
[i=s] 本帖最后由 善源 于 2012-12-29 12:52 编辑 [/i]

10# stirb
对的。就是这个思路。但是不知道如何操作!我的想法是定义一个变量,然后给变量赋值宏代码,然后再word com里面调用这个粘贴这个宏代码。但我不知道具体的参数。能帮助我吗?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-29, 12 : 53
 
对的。就是这个思路。但是不知道如何操作!我的想法是定义一个变量,然后给变量赋值宏代码,然后再word com里面调用这个粘贴这个宏代码。但我不知道具体的参数。能帮助我吗?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合