プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/07 16:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています