【Wordマクロ】文字列を削除したときに半角スペースが自動で削除されないようにする方法 | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

以前、「半角スペースの削除にご注意 」と「半角スペースの貼り付けにご注意 」の記事で、半角スペースの話をしました。

文字間隔を自動的に調整しているのですよね。

この自動調整は便利なので、おせっかい機能とは認識されていないかもしれません。

ただ、マクロで厳密に文字列を操作しようとするときにおせっかいだと感じることがあります。



では、この自動的に調整する機能に対して、どのようにマクロで対処すればいいのでしょうか?


解決策は、「置換」です。


文字列の削除時にDeleteメソッドを用いる場合、上記の自動調整機能が働きます。

しかし、FindプロパティExcuteメソッドを使って、置換後の文字列を空欄にして1つだけ置換にすれば、文字間隔の自動調整機能は働きません。

以下の例をご覧ください。



▼このマクロでできること

This is a pen. の文章中のis を削除します。

削除時に、isの後の半角スペースがそのまま残ります。




▼マクロの解説

検索する文字列には、削除対象の文字列を記入します。

置換後の文字列は空欄ですね。

これで置換をすれば、検索をする文字列に記入した文字列が削除されます。

「検索と置換」ダイアログボックスを使って文字列を削除するときの方法をマクロで実行しています。




▼マクロ

Sub 置換で文字列を削除()

 With Selection.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .text = "is"      '削除対象の文字列
  .Replacement.text = "" '置換後の文字列=空欄
  .Forward = True
  .Wrap = wdFindAsk
  .Format = False
  .MatchCase = False
  .MatchWholeWord = True
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchWildcards = False
  .MatchFuzzy = False
  .Execute Replace:=wdReplaceOne
 End With
 
End Sub



▼関連記事

半角スペースの削除にご注意

半角スペースの貼り付けにご注意