本文的宏多数根据 WPS 自带的录制功能所得代码进行修改,去除冗余、加上注释、修改为类型提示友好的代码风格。
布局设置
/**
* 功能:设置活动文档的页面布局为中文公文常用格式(A4纵向,上3.7cm,下2.3cm,左2.8cm,右2.3cm)
* 同时将全局度量单位改为厘米并启用字符单位。
*/
function 设置页面布局() {
// 全局选项设置(不在页面设置对象内)
Options.MeasurementUnit = wdCentimeters; // 界面中的标尺单位改为厘米
Options.UseCharacterUnit = true; // 启用字符单位(如首行缩进2字符)
// 获取页面设置对象
const ps = ActiveDocument.PageSetup;
// 1. 页边距对称设置
ps.MirrorMargins = 0; // 0 = 关闭镜像边距(不区分奇偶页)
// 2. 分栏设置(操作 TextColumns 子对象)
ps.TextColumns.SetCount(1); // 设置为单栏
ps.TextColumns.EvenlySpaced = -1; // -1 (True) = 栏宽等距
ps.TextColumns.LineBetween = 0; // 0 (False) = 栏间无分隔线
ps.TextColumns.Spacing = 0; // 栏间距为0磅(单栏时无效,但保留无影响)
// 3. 页面方向与装订线位置
ps.Orientation = wdOrientPortrait; // 纵向
ps.GutterPos = wdGutterPosLeft; // 装订线位于左侧
// 4. 页边距(使用厘米转换,比直接写磅值更易读)
ps.TopMargin = CentimetersToPoints(3.7); // 上边距 3.7cm
ps.BottomMargin = CentimetersToPoints(2.3); // 下边距 2.3cm
ps.LeftMargin = CentimetersToPoints(2.8); // 左边距 2.8cm
ps.RightMargin = CentimetersToPoints(2.3); // 右边距 2.3cm
// 5. 页眉页脚区域距离
ps.HeaderDistance = CentimetersToPoints(1.5); // 页眉距纸张顶端 1.5cm
ps.FooterDistance = CentimetersToPoints(2.4); // 页脚距纸张底端 2.4cm
// 6. 装订线宽度(0 表示无额外装订线空间)
ps.Gutter = 0;
// 7. 打印机纸盒设置(使用默认纸盒,通常不需要设置)
ps.FirstPageTray = wdPrinterDefaultBin;
ps.OtherPagesTray = wdPrinterDefaultBin;
// 8. 页眉页脚独立设置
ps.OddAndEvenPagesHeaderFooter = 0; // 0 = 不区分奇偶页页眉页脚
ps.DifferentFirstPageHeaderFooter = 0; // 0 = 首页不单独设置
// 9. 版式模式
ps.LayoutMode = wdLayoutModeGrid; // 网格模式(常用于中文排版)
}
2026/4/8大约 6 分钟