【Word】ネットからのコピペで混ざる「おかしな段落記号」を削除する

2014年9月8日

先日、H. C. Shinopyさんから以下のコメントをいただいたとおり、ネットからコピペした情報にはゴミが含まれることがあります。

1. 見えないゴミ!
私も、目に見えないゴミに悩まされたことがあります。

インターネット上の表形式のデータをコピーして、
Wordに貼り付けしたのですが、
各データ1件を一行一段落にずらりと並べておき、
マクロで一段落ごとに処理しようとしたのですが、
なぜかマクロがうまく動かず、原因がわかりませんでした。

(これは、縦に並べた外国語の一つの単語を一行ごとに並べておき、
CSV形式の辞書ファイルからADOで日本語の訳語を呼び出し、
単語の後ろに書き出しする処理でした。
自分用の紙製辞典を手作業なしで作るものです。)

しかしながら、データをいじる途中で不審な点があり、
○データをトリプルクリックすると、なぜか一段落だけでなく、文書全体を選択した状態になる。
○改行マークの後ろをクリックすると、なぜか改行マーク(段落記号)の前ではなく、
改行マークの後ろ1文字目にカーソルが移動する。

このことから、改行マークの後ろに
1文字の見えないゴミがあることが判りましたので、
マクロの記録を使って、ショートカットキーで一回操作した後、
For~Nextコマンドを追加して、これを実行し、
見えないゴミを削除しました。

下記は、その当時の応急用のマクロ:

Sub MyBdmDelete()
Rem *----*----* *----*----* *----*----* *----*----*
Rem ゴミ文字削除処理
Rem *----*----* *----*----* *----*----* *----*----*
'
Dim i As Long
'
For i = 1 To 1000 ' 繰り返す回数を指定して処理を実行する。
Selection.EndKey Unit:=wdLine ' 行の末尾にカーソル移動。
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend ' 末尾の1文字選択。
Selection.TypeParagraph ' 改行を入力。(ゴミ削除+次行へ移動。)
Next ' i
'
MsgBox "End!"
End Sub ' MyBdmDelete *

今回は、そういうゴミ情報の1つである「段落」記号の削除方法についてご紹介します。

この方法でできること

Word以外のソフトウェア(会社のシステム)が生成したWordファイルや、ネットからの情報を貼り付けたWordファイルでは、段落記号がおかしな挙動をする場合があります。

この改行を正常な段落に書き換えます。

解説

H. C. Shinopyさんからコメントにある挙動は、Windows のWordで標準で使われていない改行コードが改行の編集記号として使用されている場合に起こります。

なので、「見た目は段落記号なのにWordの標準の段落記号ではないもの」を、Wordの標準の段落記号に置き換えます。

「検索と置換」ダイアログボックスを使えば、このような置き換えはできます。マクロを使わなくても大丈夫です。

方法

「検索と置換」ダイアログボックスを用いて、以下の文字列を置換します。

検索する文字列:^13
置換後の文字列:^p

オプションをすべてオフにします。(ワイルドカードを使うがオンになっていても大丈夫)

[すべて置換]ボタンをクリックして置換します。

さらにおまけ

この挙動は、ネットからのコピペ以外にも起こります。

よくある間違いは、ワイルドカードを使用して置換をするときに、[置換後の文字列]欄に改行のつもりで ^13 を入力してしまう場合です。

置換後の文字列に改行を入れる場合には、^p を使います。

お気をつけください。

-Word
-, ,