Loading
1

[办公]Autohotkey在office中的应用

Autohotkey,简称AHK,是一个开源的、极其强大的脚本编程工具。个人认为,在快捷键方面,似乎没有比其更牛的软件了。其与AU3功能相近,但是体积更小,更加方便应用。

AHK能做什么?

(1)快捷键的自定义,也许有人说,国产的按键精灵不行么?但是,经过对比,我感觉,也许在游戏中,按键精灵用来点鼠标用的更多些,但是其并不适用于办公,尤其是设置更加多样的快捷键方面。如你可以将左Win+t设置为一个快捷键来执行功能,也可以将右Win+t来执行另一个功能;可以设置按Capslock+q来打开百度搜索;可以设置右Ctrl+右Alt+鼠标右键来打开word的插入公式功能;而这些,按键精灵无法做到或很难做到;
(2)GUI功能,使用AHK可以方便的打造一个GUI,设置想要的控件,来实现想要的功能,这个功能也是区分与VBS、BAT、JS等脚本之处;
(3)调用系统函数:在AHK中,可以方便的使用SendMessage来发送消息,获取文件路径,而不需要复杂的遍历;当然通过Dllcall可以调用系统的API来进行执行更高级的功能;甚至有AHK高手曾言:除了不能用它来写硬件驱动,其他的功能全部都可以实现,足可显示其强大之处;
(4)可以方便的去创造效率工具。如使用AHK编写的Candy(万年书妖的作品)、QZ(Array的作品)、小仙并击(输入法)等等,可大大提升工作效率,有了AHK,可以将电脑中的快速启动软件、音量调节软件、鼠标穿透软件等一系列绿色软件统统淘汰掉了。因为其可以高效的实现这些功能。
(5)体积小。使用AHK可以一键将脚本编译为不到1M的exe可执行程序,非常方便使用。当然,还有更多的功能,限于本人的水平,无法一一列出
缺点:AHK比不上C的效率,在执行同一功能时比C的效率要低,而且其编译似乎也不是真正意义的编译。不过毫秒级别的差异根本感觉不到。此外,要作出更加美观的GUI,需要调用系统API,比较费劲,但是其重在效率和实用!

ahk在office中能做什么?

众说周知,如果在word中想要为一个功能定义快捷键,需要使用 KeyBindings.Add方法如:KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyR, wdKeyShift, wdKeyAlt), KeyCategory:=wdKeyCategoryCommand, Command:="InsertCrossReference"可将ALt+shift+R指定为弹出交叉引用对话框的快捷键;
在Excel中,需要使用Application.onkey:
如Application.OnKey "%q", "无格式粘贴" ,将Alt+q指定为无格式粘贴的快捷键;
那么PPT中呢?答案是NO!!!
你无法为ppt中现有的功能,或者是写的vba代码去指定快捷键,惟一能做的就是按Alt+F11,打开VBE代码窗口,找到代码,去运行,或者在2003版中,去加入一个自定义的菜单按钮,抑或是在07版以上的版本中,通过编辑XML代码来达到修改ribbonx界面增加按钮,通过按钮点击来执行自定义的功能。但是,当本人接触了AHK之后,这些就都不再是问题了。因为可以随心所欲的打造各种各样的快捷键,来一键实现所需的功能。本人接触AHK一年有余,粗略懂得些皮毛,其现将其在Office中应用的一些心得介绍下:

1.word

使用AHK的ComObjCreate("word.application")、ComObjActive("word.application")可以获取Word对象,如以下代码来实现按win键+q来无格式粘贴:

使用win+Alt+左中括号来实现减小段落间距(AHK来调用vba中的过程的示例):

VBA 代码中的过程:

其他的依次类推,不论03版还是高版本,都可以这样用AHK来调用。

2.Excel

高版本的Office有个特别不爽的功能,就是按Ctrl+o无法直接出现文件定位窗口,而是需要选择几次才出现,那么可以直接使用AHK来修改这一内部命令:

可实现按左Ctrl+o来迅速调出文件选择对话框;
下面代码可实现按`+1来设置单元格为文本格式:

下面代码可实现按左Ctrl+[/]来增加和减小单元格字号:

使用AHK来直接运行VBA过程:按Ctrl+Win+E来横向合并选择的单元格;

3.PPT

获取COM对象的方法同以上两者,只是名称稍微修改下:ComObjCreate("powerpoint.application")、ComObjActive("powerpoint.application")
如按住Win+[/]来实现减小/增大行距:

调用VBA代码的例子:

以上便是AHK在Word、Excel、PPT中的作用了,只需将ahk代码放入脚本,然后双击,便可以随意所欲的用快捷键来发动所需要的功能了。更方便的是,如果你想要修改快捷键,只需要在系统托盘右键--编辑脚本,快速修改后,重载(Reload)即可。

本文为原创文章,未经同意禁止转载!!