Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


33 / 306 ツリー ←次へ | 前へ→

【703】塗りつぶしされた文字の検索を行いたい Alfa 10/9/8(水) 18:58 質問[未読]

【704】Re:塗りつぶしされた文字の検索を行いたい りる 10/9/8(水) 20:16 発言[未読]
【783】Re:塗りつぶしされた文字の検索を行いたい マナ 13/6/3(月) 21:05 発言[未読]
【785】Re:塗りつぶしされた文字の検索を行いたい マナ 13/6/9(日) 12:44 発言[未読]

【704】Re:塗りつぶしされた文字の検索を行いたい
発言  りる  - 10/9/8(水) 20:16 -

引用なし
パスワード
   Alfa さん、こんばんわ。
>開いている文書内の塗りつぶし文字を検索したいのですが、
あまりWordを使わないので塗りつぶし文字というのがよくわからず、Wd2003では見つけられないのですが、蛍光ペンのことでしょうか?

Sub Macro1()
  With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
    .Execute
  End With
End Sub

蛍光ペンを検索したのを記録したらこんな風になりました。
カーソル位置から後ろで一つ見つけたらハイライトしていました。
Loopで繰り返せば全部取得できると思います。

違っていたら、Wordのバージョンや塗りつぶしの設定方法などを書いてもう一度質問してみてください。

【783】Re:塗りつぶしされた文字の検索を行いたい
発言  マナ  - 13/6/3(月) 21:05 -

引用なし
パスワード
   質問者さんは、もう見てないでしょうが。
自分でもやってみました。

まずはマクロの記録から。(Word2002と2010で試しましたが、どちらも同じ)
りるさんの回答は、大事な部分がコピペ漏れでしょうか。
Selection.Find.ClearFormatting
Selection.Find.Highlight = True

Sub Macro2()
'
' Macro2 Macro
' 記録日 2013-06-03 記録者 mana
'
  Selection.Find.ClearFormatting
  Selection.Find.Highlight = True
  With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = True
  End With
  Selection.Find.Execute
End Sub


マクロ記録でキーとなる箇所がわかれば、あとは何とかなる。
勉強のために、何でもいいから今はとにかく沢山書いてみようと思っているので、適当に。
例えば、青色蛍光ペンの箇所を削除するマクロだと、こんな感じで。

Sub test()
  Dim r As Range
  
  Set r = ActiveDocument.Content

  With r.Find
    .Highlight = True
    Do While .Execute
      If r.HighlightColorIndex = wdBlue Then
        r.Delete
      End If
    Loop
  End With

End Sub

【785】Re:塗りつぶしされた文字の検索を行いたい
発言  マナ  - 13/6/9(日) 12:44 -

引用なし
パスワード
   全然だめ。
複数の色が連続する場合は、色の特定はだめみたいですね。
でも解決策もちゃんと紹介されていました。

みんなのワードマクロ。ブックマークに追加させていただきます。
ht tp://ameblo.jp/gidgeerock/entry-10905373936.html
ht tp://ameblo.jp/gidgeerock/entry-11012321922.html

Sub test2()
  Dim r As Range
 
  Set r = ActiveDocument.Content

  With r.Find
    .Highlight = True
    Do While .Execute
      Do While r.HighlightColorIndex = wdUndefined
        r.MoveEnd Unit:=wdCharacter, Count:=-1
      Loop
      If r.HighlightColorIndex = wdBlue Then
        r.Delete
      End If
    Loop
  End With

End Sub

33 / 306 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
206491
(SS)C-BOARD v3.8 is Free