我“昨天”在 Graphic Design SE 上问过这个问题,但有人提示我超级用户对于我想要完成的任务会更有用。我的问题是关于基线的使用,但请记住,我有一份 MSOffice 2016 Home & Student。
我正在尝试编写 VBA 在整个文档中执行单个字符调整:
Sub RandomizeBaseline()
Dim rng As Range
Dim char As Variant
Dim baseline As Double
Set rng = ActiveDocument.Range
For Each char In rng.Characters
baseline = Rnd() * 2 - 1
char.Font.Position = baseline
Next char
End Sub
这样做的最初目的是使文档看起来就像是在打字机上打字的一样。我已经有了一个可以使用的等宽字体,但是 MSWord 解析的方式使随机基线值变为 -1、0 或 1。将这些值设置为十进制值可以使基线偏移不那么剧烈,显然会截断为仅零并且根本不会改变任何东西。该代码确实解析了文档中的每个字符,单击“撤消”时可以从编辑历史记录中看到,但没有明显的差异。我应该如何为我想要的超具体项目解决这个问题?
回答了我自己的问题 - 想象一下。我没有考虑到我可以使用变量随机化器合理地“间隔”基线这一事实。其代码如下: