Microsoft Word 2010 で VBA を書くこと (誰も好きな仕事ではありません)。テキストボックスの垂直位置をドキュメント内の場所に固定しようとしています。これにより、テキストが前に追加されると、テキストボックスはその相対的な位置を保持します (つまり、テキストがリンク先の場所の前に挿入されると下に移動します)。
私のコードは
ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 372, 400, 120, 120).Select
With Selection
.ShapeRange.TextFrame.TextRange.Select
.Collapse
.TypeText Text:="Text box placement test"
With .ShapeRange
.Select
.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
...
私が考える鍵は、この最後のプロパティ、RelativeVerticalPosition です。
私はそれを wdRelativeVerticalPositionLine に変更しようとしました: これは最初の段落で機能します (つまり、テキスト ボックスはテキスト内の位置に固定されているため、正しく移動する前にテキストが追加された場合): ただし、2 番目以降の段落では垂直位置は完全に間違っています。
LockAnchor プロパティを変更しようとしましたが、変更はありません。
欲求不満は、これが手動で実行できることです (ページ レイアウト、グループの配置、テキストの折り返し、その他のレイアウト オプション、位置、テキストをオンにしてオブジェクトを移動 = チェック済み) が、Word ではテキスト ボックスのプロパティを変更するマクロを記録できません。機能させるための設定の組み合わせが見つかりません。
助言がありますか?それとも、これは 20 年以上前のコードを使用した結果の 1 つにすぎませんか?