用AutoHotkey调用VBA一键给word文档添加多级列表。
word的多级列表
设置步骤很繁琐,于是就有了此脚本。
后续还要研究如何一键设置标题1-9的样式
,已会的请留言告知,谢谢!!
使用步骤:
- 添加9行内容并分别设置好样式为标题1-9
- 打开脚本
- 选中该9行内容,按F9运行脚本,如果编号出现,则表示已完成。
效果如下
附上 AutoHotkey v2-beta 代码
;添加的规则见 arr2 的相关配置 F9:: { addListlevel1() addListlevel1() { arr2 := [ ["%1、", 39, 1, 0, 0], ["%1.%2", 253, 1, 0, 0], ["%1.%2.%3", 253, 1, 0, 0], ["%1.%2.%3.%4", 253, 1, 0, 0], ["%1.%2.%3.%4.%5", 253, 1, 0, 0], ["%1.%2.%3.%4.%5.%6", 253, 1, 0, 0], ["%1.%2.%3.%4.%5.%6.%7", 253, 1, 0, 0], ["%1.%2.%3.%4.%5.%6.%7.%8", 253, 1, 0, 0], ["%1.%2.%3.%4.%5.%6.%7.%8.%9", 253, 1, 0, 0], ] _setListlevel(arr2) ;打开对话框 send("{alt}hmd") ;TODO 是否有快捷键或消息号 WinWaitActive("ahk_class bosa_sdm_msword") send("{enter}") } /* 设置自定义列表级别 调用方法后→选中内容→打开多级列表→确定→核实内容已更改 arr2含义 1. 编号格式 NumberFormat 第%1章.%2.%3 2. 编号样式 NumberStyle 正规样式=253(解决显示上级标题序号为一二三的问题) 123=0 一二三=39 abc= 3. 编号后面的符号 TrailingCharacter 0=tab 1=space 2=none 4. 对齐位置 NumberPosition 5. 文本缩进位置 TextPosition */ _setListlevel(arr2) { idx := 1 wd := ComObjActive("word.application") lt := wd.ListGalleries(3).ListTemplates(idx) ;【多级列表】的【第1个模板】 arrTextPosition := [0.75, 1.75, 2.5, 3.5, 4.5, 5.75, 6.75] ;缩进默认值 for arr in arr2 { lv := lt.ListLevels(A_Index) ;内容 lv.StartAt := 1 ;起始编号 lv.NumberFormat := arr[1] ;编号格式 lv.NumberStyle := arr[2] ;编号样式(数字0,大/小写字母3/4,大/小写罗马1/2) lv.TrailingCharacter := arr[3] ;后面的符号 lv.LinkedStyle := "标题 " . A_Index ;链接的样式 ;位置 lv.alignment := 0 ;0=左对齐 1=居中 2=右对齐 https://docs.microsoft.com/zh-cn/office/vba/api/word.WdListLevelAlignment lv.NumberPosition := arr[4] ;对齐位置 lv.TextPosition := arr[5] ;文本缩进位置 ;lv.ResetOnHigher := 0 ;lv.TabPosition := 9999999 } ;lt.Name := "list" . idx ;TODO 什么用 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!