用(JS)宏批量调整Word文档中的表格格式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

使用办公软件做重复性的操作简直是浪费生命,此处记录如何自己摸索编写工作中需要的宏代码。(个人纯小白,比只会写print(‘hello word’)强那么一丝丝儿)

一、目标任务

1.现状

我的目标是将Word文档中 所有 格式不对的表格,先按内容调整,再按窗口调整,再调整行高、字体。
在这里插入图片描述

2.结果

最终达成如下截图的格式
![在这里插入

3.参考文章

https://blog.csdn.net/jiciqiang/article/details/134653657
在这里插入图片描述

三、JS宏代码

1.最终代码

以下代码就可以实现我要的功能

function 批量修改表格样式(){
	// 获取表格对象
	const TableObj = ActiveDocument.Tables;
	// 循环选中所有表格
	for(let i = 1; i <= TableObj.Count; i++){
		TableObj.Item(i).AutoFitBehavior(wdAutoFitContent);//对每个表格按内容调整
		TableObj.Item(i).AutoFitBehavior(wdAutoFitWindow);//按窗口调整
		// 选择当前表格内容
		TableObj.Item(i).Select();//其实我不懂
	    Selection.Font.Name = "微软雅黑";//修改字体
	    (obj=>{
		     obj.Size = 7.500000;
		     obj.SizeBi = 7.500000;
	    })(Selection.Font);//此处((Selection.Font))不懂什么意思,但是得有!!!
    	(obj=>{
		     obj.HeightRule = wdRowHeightAtLeast;//这段应该是调整行高为0.5cm的
		     obj.Height = 14.173115;
		     obj.AllowBreakAcrossPages = -1;
	    })(Selection.Cells);//此处((Selection.Cellst))是我自己改的
	    Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter;
	    (obj=>{
		     obj.Alignment = wdAlignRowLeft;
		     obj.WrapAroundText = 1;
		     obj.LeftIndent = 0;
	    })(Selection.Cells);//此处((Selection.Cellst))也是我改的 
	}
}

2.如何编辑宏

如何编辑宏,请看参考文章。

3.如何实现自己想要的功能

录制宏,因为只是测试性质的,所以保存在当前文档就行。
在这里插入图片描述
录制宏后,直接对表格进行操作就可以了
在这里插入图片描述
录制完毕后,查看代码
在这里插入图片描述
需要的代码在最下面,上面是一堆用不到的selection.range.wholestory()
在这里插入图片描述

4.代码解析

//段落1 
	(obj=>{
		obj.HeightRule = wdRowHeightAtLeast;//这些obj都看不懂,不重要,复制下来就行
		obj.Height = 14.173115;
		obj.AllowBreakAcrossPages = -1;
	})(ActiveDocument.Range(37, 594).Rows);
	   //此处ActiveDocument.Range(37, 594).Rows是选中的表格索引,每个表格所在位置不同,要修改!修改成什么?看最后的注释
//段落2
	Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter;
	(obj=>{
		obj.Alignment = wdAlignRowLeft;
		obj.WrapAroundText = 0;
		obj.LeftIndent = 0;
	})(ActiveDocument.Range(37, 594).Rows);//同上,
//段落3
	Selection.Font.Name = "微软雅黑";
	(obj=>{
		obj.Size = 6.500000;
		obj.SizeBi = 6.500000;
	})(Selection.Font);//我发现此处的Selection.Font 与这段的开头Selection.Font.Name = "微软雅黑"
	//是一样的,所以对前面两段做了同样的修改,将ActiveDocument.Range(37, 594).Rows 改成Selection.Cells,结果运行成功!
	//至于具体是什么原因 我也不知道

4.将宏适配至所有文档

将写好的宏代码 复制到Normal.dotm下就可以了
在这里插入图片描述

总结

写JS宏可以通过录制宏作为参考来写,当然我是先去了解的pywin32才来写的宏 (pywin32可以在B站上搜索一下,目前只有“34号大块”在讲一些基础内容)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值