Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Home Premium : Word 2013)
指定の文字の検索後の処理がうまくいきません
投稿日時: 17/04/29 23:10:16
投稿者: sambrou007

wordの文章で、文字検索後の処理をさせたく、指定した文字を検索し、その文字が見つかれば、いくつかの処理をしたいのですが、その処理がわかりません。
ExcelのVBAは、そこそこやってきましたが、wordのVBAは、まったく初心者です。
処理の仕方をお教え願います。
 
検索文字 SRCH1=":" ⇒ 処理 ":"より後ろ(右側)の文字をすべて削除
検索文字 SRCH2=";" ⇒ 処理 ";"より後ろ(右側)の文字を削除し"。"を追加
検索文字 SRCH3=">" ⇒ 処理 ">"を削除
 
rng.Find.Text=SRCH1
Do While rng.Find.Execute=True
 
 Selection.EndKey・・・・・ここの処理がわかりません
 
 Selection.Delete
Loop
 
rng.Find.Text=SRCH2
Do While rng.Find.Execute=True
 
 Selection.・・・・・・・・・ここの処理がわかりません
Loop
 
rng.Find.Text=SRCH3
Do While rng.Find.Execute=True
 
 Selection.・・・・・・・・ここの処理がわかりません
Loop
 
rng.Find とSelectionの使い方が間違ってるかと思うのですが、
Selection.Find.Text=SRCH1 のようにやってみても、
まったく、思うような動作には、ほど遠い感じです。
 
検索してカーソル位置を取得しての処理も、MoveendやMoveの使い方が
よくわかりません。
 
わからないことばかりで申し訳ありませんが、どうかお教え願います。

回答
投稿日時: 17/04/30 22:07:10
投稿者: んなっと

引用:
":"より後ろ(右側)の文字

の解釈の仕方が複数考えられます。
今後は必ず具体例を添えて質問してください。
 
適当に想像して回答します。
 
  Dim r As Range
  Set r = ActiveDocument.Range(0, 0)
  With r.Find
    .Text = ":"
    Do While .Execute
      'r.Collapse wdCollapseEnd
      r.Select
      With Selection
        .EndKey wdLine, wdExtend
        .Delete
      End With
      r.Collapse wdCollapseEnd
    Loop
  End With
  Set r = ActiveDocument.Range(0, 0)
  With r.Find
    .Text = ";"
    Do While .Execute
      'r.Collapse wdCollapseEnd
      r.Select
      With Selection
        .EndKey wdLine, wdExtend
        .Text = "。"
      End With
      r.Collapse wdCollapseEnd
    Loop
  End With
  Set r = ActiveDocument.Range(0, 0)
  With r.Find
    .Text = ">"
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll
  End With

投稿日時: 17/05/02 03:34:46
投稿者: sambrou007

んなっとさん、早速、ありがとうございます。
 
的確な推測をしていただき、ありがとうございます。
 
ずばり、合っています!
 
r.select と r.Collapse wdCollapseEnd 
が、全く、思いつきませんでした。
 
作成いただいたプログラムで、再度、VBAをおさらいしてみます。
 
ありがとうございました。