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

Wordで作成した文書内の塗りつぶし箇所(黒)の文字だけ消すVBAを作成したいです。

順序としては
1.黒塗り箇所を検索
2.黒塗り箇所を削除
3.削除した文字数文スペースを作成
4.作成したスペースに黒塗りを実行
以上です。
ご教授お願いいたします。

A 回答 (1件)

おそらく、こちら↓のようなことをしたいのでしょうね。



Sub 黒塗り文字をスペースに()
Dim s1, s2
Dim i As Long
Dim rng As Range

Set rng = ActiveDocument.Range(0, 0)

s1 = Array("[\!-~]", "[、-龠0-9a-zA-Z]")
s2 = Array(" ", " ")

 For i = 0 To UBound(s1)
  With rng.Find
   .Text = s1(i)
   ' テーマの色での黒ではなく、RGB(0,0,0)の黒
   .Font.Shading.BackgroundPatternColor = wdColorBlack
   .Replacement.Text = s2(i)
   .MatchWildcards = True
   .Execute Replace:=wdReplaceAll
  End With
 Next i

End Sub

半角の英数字などは半角スペースに、全角文字は全角スペースに置換
しています。質問の順序での処理よりも置換のほうが早く確実です。
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます!

とても助かりました

神様かと思いました

お礼日時:2021/07/15 08:56

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