用于在Microsoft Word 2007中插入自动形状的锚位置的VBA脚本

时间:2014-11-21 15:28:35

标签: vba word-vba

我超出了幼儿园级VBA技能的限制,所以想问一下这里是否有人可以帮我写一个VBA脚本来帮助我逐步完成我的Word文档并调整所有的锚定位置文档中的自选图形。

我在Microsoft Word中有一本400页的书,在主体文本栏左侧的一个精简列中的每一页上至少有一本,有时是几个边缘(旁注)。这些旁注是一个简洁的指针'对于正文中的特定点,需要直接出现在该点的左侧。

每个旁注都在自己的AutoShape中(在该形状的文本框中)。 AutoShapes由作者以不一致的方式放置。大多数情况下,它们都固定在页面上的某个位置。

但是,我需要重新组合。这将导致正文文本以不同方式流动,我需要旁注与其一起流动(大致或完全)!

因此,在我重新讨论之前,我想确保将每个自选图形锚定到它所属的段落,而不是它当前所在的页面。

我不知道是否可以自动完成,因为我不知道Word如何推断AutoShape和段落之间的纯粹空间关系。

所以我猜我必须使用"半自动"处理。像这样:

  • 按按钮启动VBA脚本
  • 选择下一个自选图形
  • 提示用户在要放置锚点的正文中输入光标
  • 恢复宏
  • 将该自选图形的锚点放在该位置
  • 将AutoShape的垂直位置参数更改为"相对于段落" 和" 0毫米"
  • (替代方案,不是0毫米,而是另一个值推断为更多 准确定位AutoShape)
  • 将自选图形的宽度参数更改为 一个特定的固定值37毫米(其中一些是一点点 不准确地绘制)
  • 结束周期并返回开始
  • 选择下一个自选图形

希望这一切都是可以理解的。

我尝试录制一个VBA脚本来执行其中一些但不知道如何构建用户提示符。

非常感谢任何帮助!

克雷格

2 个答案:

答案 0 :(得分:0)

你可能最好创建一个一次处理一个形状的宏,或者手动锚定所有形状(你几乎都在做什么),然后写一个宏来处理你的各种参数和设置想。

如果你真的想在宏运行时提示用户,你需要查看无模式对话框(在Mac上无法实现)。请看这个链接:http://www.bettersolutions.com/vba/VXV113/SE846743531.htm

基本上,您必须创建自己的对话框,然后无模式显示它,以便用户在点击OK之前仍然可以放置光标。如果您是VBA新手,可能很难设置。

答案 1 :(得分:0)

在寻找解决方案时,我在另一个论坛上找到了一个试图做一些非常相似的事情的帖子。他正在为使用Word的编辑开发一套工具,直到找到最终的解决方案,我正在使用他的" Shapes"允许我更改每个自选图形上的参数的工具我只需点击一下,而不是每次都打开和关闭一个对话框,每次都选择一个不同的标签......他的工具可以在his Editors' Toolkit website下载