電子出版小技集 012

文字を1対1で変換する 1

全角洋数字を半角洋数字に直す

秀丸\中級\正規表現

 原稿の数字が半角と全角が不統一、一気に全部半角にしたいのだがといった場合を考えてみましょう。数字を半角に統一するなら「1」→「1」、「2」→「2」と置換を行えば良いのですが10回も置換するのは何ともやり切れません。どうにかならないでしょうか。

 こんな時はPerlやsedを知っていれば何でもありません。Perlならば

 
	tr/0-9/0-9/;

とやるだけですね。

 これと同じことを秀丸でやりたいのですが実は私もできません。もちろんマクロを使えば同じ動作をさせることは可能です。でもマクロは面倒…。

 設問のケースなら手軽にキーボードマクロで可能です。キーボードマクロ部分はたった2STEPです。


・全角洋数字を半角洋数字に直すキーボードマクロ

準備

 メニューの[その他][動作環境]動作環境ダイアログを出します。動作環境ダイアログの[ユーザーインターフェイス][検索での表示]を選び「検索での表示」のラジオボタンを「点滅表示」ではなく「範囲選択」にする。(デフォルトはたしか「点滅表示」だったような気がする)

 こうしておくと検索結果の文字列が選択状態になります。


キーボードマクロ

  1. Shift+F1 で記録開始
  2. 正規表現“[0-9]+”で検索
      これで全角の0〜9までの文字の連続が選択されます
  3. 右クリックしてコンテキスト・メニューから[半角に変換]を選択
  4. Shift+F2 で記録終了

 後はキーボードマクロを再生するだけです。


 正規表現を“[0-9A-Za-z]+”にすれば全角の英数が対処になります。もっとも和文中に含まれる全角の英文を半角に直すなどの場面では全角英数間に含まれる空白や記号をどうするか工夫しないと実際的ではないでしょうね。正規表現は“[0-9A-Za-z,. −’]+”といった感じになるのかな?実際にやってみて調整してください。

といった方法も何かの時に役立つかも知れません。

 半角英数記号を全角にする場合は[全角カタカナに変換]でも[全角ひらがなに変換]でも同じ結果になります。

 でもこううまくいくケースばかりじゃないですね。たとえば漢数字を洋数字に変換なんて場合はだめですし、句読点を“、。”から“,.”に一回で直したいなんてのもだめですね。


 もっと欲張りに複数の置換を一気に行うことをマクロで考えましょう。これを説明すると長くなるのでこれは次回以降で解説します。




BACKNewsletterのTopに戻る
Homeトップページに戻る