住所録や部品リストなどの表を作成する際、全角と半角を混在してカタカナや英数字記号を入力してしまいがちです。当然、カタカナは全角、英数字記号は半角、といったように、全角と半角を統一したいはずです。そのような処理にもVBAは有効です。

 VBAやマクロを使わなくても、半角に変換するASC関数や全角に変換するJIS関数で済むように思えるでしょう。しかし、そもそも関数は変換後のデータを別のセルに出力することしかできません。同じセルの既存データを書き換えることはできないのです。しかも、セル内の文字列すべてを全角または半角にまとめて変換することしかできません。セル内にカタカナと英数字記号の両方が含まれていると、文字種に応じた変換ができないのです。それゆえ、VBAやマクロが必要となるのです。

 ここでは、全角と半角のカタカナや英数字記号が混在する表において、カタカナは全角、英数字記号は半角にすべて変換して統一します。記号は「-」(ハイフン)のみとします。また、選択したセル範囲に対して統一処理を行うようにします。このサンプルでは、表のデータが入っているA4~B9セルを選択し、Subプロシージャ「全角半角統一」を実行すると、全角と半角が統一されます(図1)。

図1●選択したセル範囲の文字列について、カタカナを全角、英数字記号を半角に統一
[画像のクリックで拡大表示]

次ページ以降はITpro Active会員(無料)の方のみお読みいただけます。