Word VBA如何获取表格左右边框的边界位置
Word VBA 获取表格左右边框实际位置解决方案
你之前使用的Selection.Information(wdHorizontalPositionRelativeToPage)仅返回选区内文本的排版位置,天然受单元格内边距、文本对齐方式的影响,无法直接匹配边框坐标。正确实现方式直接读取表格对象的原生属性计算即可,具体方案如下:
核心实现逻辑
- 首先获取目标表格对象,选中表格后可通过以下代码声明:
Dim targetTable As Table Set targetTable = Selection.Tables(1) - 计算左边界(相对于页面左边缘):表格整体左缩进 + 页面左边距,默认单位为磅
Dim leftBorderPos As Single leftBorderPos = ActiveDocument.PageSetup.LeftMargin + targetTable.LeftIndent - 计算右边界(相对于页面左边缘):左边界值 + 表格总宽度
Dim rightBorderPos As Single rightBorderPos = leftBorderPos + targetTable.Width
特殊场景修正
如果你处理的是设置了文字环绕的浮动表格,需要额外叠加浮动水平偏移量修正结果:
leftBorderPos = leftBorderPos + targetTable.Rows.HorizontalPosition rightBorderPos = rightBorderPos + targetTable.Rows.HorizontalPosition
单位转换说明
返回值默认单位为磅,如需转换为其他常用单位可按以下规则计算:
- 转换为厘米:
数值 / 28.35 - 转换为英寸:
数值 / 72
内容的提问来源于stack exchange,提问作者BrianH
相关产品推荐
相关产品推荐

