実現したいこと
改ページのある文書で、マクロ実行前にカーソルを置いていた位置を取得したいのですが、なぜかうまくいきません。
下図のように、改ページを入れたあと、「Tttttt・・・」の前にカーソルを置き、
以下のコードを実行すると、MsgBoxで取得した文字開始位置に差が生じ、想定とは別の場所が選択されてしまいます。
この違いは、改ページを挿入していない場合は見られませんでした。
◆実行前(ハイライト色はあらかじめついた状態)
◆実行後(「T」よりも上の位置が選択されている)
どなたか、解消方法などご存じないでしょうか。
該当のソースコード
※Selection.Startで取得している値は、私が適当な文字、改行を挟んでいるため、おそらくほかの環境では再現されません。
ここでは「同じ位置の値を取得しているはずなのに、値が異なる」ことだけ見ていただければと思います。
VBA
1'カーソル位置の1文字を色付け 2Selection.MoveRight wdCharacter, 1, wdExtend 3Selection.Range.HighlightColorIndex = wdBrightGreen 4 5MsgBox Selection.Start 6>126 7 8'色付けた箇所を捜索 9With Selection 10 .HomeKey Unit:=wdStory 11 .Find.ClearFormatting 12 .Find.Highlight = True 13 14 Do Until .Find.Execute = False 15 If .Range.HighlightColorIndex = wdBrightGreen Then 16 d = .Range.Start 17 18 MsgBox d 19 >124 20 21'色を付けた範囲を選択 22 ThisDocument.Range(d, d).Select 23 Selection.MoveRight wdCharacter, 1, wdExtend 24 25 Exit Do 26 End if 27 Loop 28End With 29 30End Sub 31
補足情報(FW/ツールのバージョンなど)
Windows11
Word 2019

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/03 12:06
2022/06/05 23:31
2022/06/06 11:14
2022/06/08 01:21
2022/06/15 07:16