Word ドキュメントが特定の仕様を満たすように正しくフォーマットされていることを確認する vba マクロを作成しています。私がチェックしなければならないことの 1 つは、各行の左余白です。異なる段落には、コンテキストに応じて異なる最初のインデントとぶら下げインデントがあるはずです。これはスタイルをチェックするのと同じくらい簡単なはずですが、残念ながらそうではありません.スタイルを使用してインデントを変更するドキュメントもあれば、手動のスペースとタブを使用してテキストを正しく配置するドキュメントもあります. したがって、各 Document.Paragraphs の最初の物理文字の実際の物理的な位置を確認する方法が必要です。段落の最初に表示されている文字の範囲を取得するのに問題はありませんが、マージンから (またはページの左側から) 距離を取得することについてはわかりません。
Window.GetPoint メソッドを見つけましたが、これは画面上の実際の物理的な位置に基づいているため、使用するのが不安です。このマクロは、さまざまなバージョンの Word を使用するさまざまなコンピューターで使用されますが、他の表示設定 (印刷レイアウト、ズームなど) によってどのように影響を受けるかはわかりません。これを一貫して使用する方法はありますか?マージンからの距離を決定する方法は?
もう 1 つの方法は (すべてのドキュメントが Courier New 12 にあるため) スタイルの firstindent プロパティを調べ、すべてのスペースとタブを手動でカウントすることです (ただし、タブストップを考慮する必要があります)。これもどうしようか迷っています。これを行うにはもっと簡単な方法があるはずだと思いますが、見つけることができないので、誰か提案があれば、本当に助けていただければ幸いです。