- ベストアンサー
MS Office Word のマクロで行列の現在位置を取得したいのですが?
Wordで、マクロを組んで、文書から必要箇所を抽出したいと思います。 SelectionオブジェクトのFindプロパティーで文字を検索し、その検索した文字の行、列位置を数値として取得したいのですが、方法が分かりません。 教えて頂ければ幸いです。 【技術者向け】コンピューターで質問しましたが、カテゴリーがずれていたのか回答頂けませんでした。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 いまいち、質問の意味が理解できていないのです。 >SelectionオブジェクトのFindプロパティーで文字を検索し、その検索した文字の行、列位置を数値として取得したいのですが、方法が分かりません。 行と列は、Cells プロパティで、Table がないと、存在しません。 もし、Table があれば、文字検索で「行と列」が、出てくるのでしょうけれども、そうではないような気がします。 それと、本来は、検索して現在位置(行と桁)を取得するマクロは見当たらないのは、この種のFind を使ったマクロは、それ自体が作業本位で、情報取得の目的には、Wordの場合は、あまりしないのだと思います。ステータスバー(画面下)に出てくるからですが。 もし、以下のマクロの解釈が違うようなら、また、レスを付けてください。 '------------------------------------------------------- Sub TestMacro1() Dim myRange As Range Dim mySearch As String Dim a As Long, b As Long mySearch = InputBox("探す文字を入力してください", "検索") If mySearch = "" Then Exit Sub Selection.Find.ClearFormatting With Selection.Find '以下を省略すると誤動作が出る可能性があります。 '必要ならオプションを入れてください。 .Text = mySearch .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Set myRange = Selection.Range With myRange '行 a = .Information(wdFirstCharacterLineNumber) '桁 b = .Information(wdFirstCharacterColumnNumber) End With MsgBox a & " 行 " & b & " 桁" End Sub
お礼
早速回答頂き、感謝に耐えません。 表現が悪く理解しにくかったかもしれませんが、ご回答が正に実施したかったことです。 早速、マクロに張り付けて、作動させて見ました。 これを組み込ませて頂いて、私のマクロは完成します。 ありがとう御座いました。