• ベストアンサー

MS Office Word のマクロで行列の現在位置を取得したいのですが?

Wordで、マクロを組んで、文書から必要箇所を抽出したいと思います。 SelectionオブジェクトのFindプロパティーで文字を検索し、その検索した文字の行、列位置を数値として取得したいのですが、方法が分かりません。 教えて頂ければ幸いです。 【技術者向け】コンピューターで質問しましたが、カテゴリーがずれていたのか回答頂けませんでした。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

psgrade
質問者

お礼

早速回答頂き、感謝に耐えません。 表現が悪く理解しにくかったかもしれませんが、ご回答が正に実施したかったことです。 早速、マクロに張り付けて、作動させて見ました。 これを組み込ませて頂いて、私のマクロは完成します。 ありがとう御座いました。

関連するQ&A