器用貧乏の独り言

器用貧乏なおっさんが気の向くままに。

【VBA】全角・半角を一括変換するマクロ

◇前置き

「1つの文書内に半角と全角が共存している!統一しなきゃ!!」

PCを使って事務処理をしたことのある方であれば、一度は経験があると思います。
漢字とひらがなには全角文字しか存在しませんが、アルファベット・数字・カタカナには半角文字と全角文字が存在しています。

「半角と全角が混ざっていると何がいけないのか?」

そう考える人もいるかと思います。
半角と全角が混在することによって起こる不都合は大きく2つです。

①見た目が悪い

非常にシンプルな話です。
1つの文書内に全角カタカナと半角カタカナが混在していると統一感が無く、見た目が汚くなってしまいます。
↑この文章も見た目が悪いですよね?

②外部システムに取り込む際にエラーが出る

Excelで整理したデータを、社内で利用している業務システムに取り込む際、エラーの原因になる事があります。
「数字・アルファベットは半角(全角)しか受け付けない。」
そんな仕様のシステムも多いですからね。

今日は、全角と半角を一括変換するマクロを紹介します。

◇概要

例としてこんな感じのExcelを用意しました。
※ボタンだけあればOKです。
 ↑その他は何でもOKです。

変換したい箇所を選択して、いずれかの変換ボタンをクリックするだけの簡単な構造です。

ソースコード

今回のソースコードはこんな感じです。
※半角変換用、全角変換用で2つのマクロに分かれています。

 
'全角に統一するマクロ
Sub convert_to_full_width()
   Application.ScreenUpdating = False
   Dim i As Range
   For Each i In Selection
       i = StrConv(i, 4)
   Next
   Application.ScreenUpdating = True
   MsgBox "半角→全角の変換作業が完了しました。"
End Sub
 
'半角に統一するマクロ
Sub convert_to_half_width()
   Application.ScreenUpdating = False
   Dim i As Range
   For Each i In Selection
       i = StrConv(i, 8)
   Next
   Application.ScreenUpdating = True
   MsgBox "全角→半角の変換作業が完了しました。"
End Sub

変換範囲を自分で選択する仕様なので、使いたいシートにコピペするだけでそのまま使用可能です。

◇使い方

さて、単純なマクロですが、実際に動かしていきます。

まずは、変換したい範囲をこんな感じで選択します。

半角→全角変換ボタンをクリックすると・・・・

選択範囲の半角文字が全角文字に変換されました!

次は、お隣の列を半角に変換してみます。
先ほどと同じように変換範囲を選択します。

全角→半角変換ボタンをクリックすると・・・・

無事、全角文字が半角文字に変換されましたね!
※漢字とひらがなは、いずれのマクロでも影響を受けません。

◇最後に

ちょっとした小技ではありますが、事務作業の効率化に少しは役立つのではないでしょうか?
特に、複数の人から集めたデータ・書類を取りまとめる機会のある方は重宝するマクロだと思います。
※書類作りの際、全角・半角を気にしない方は一定数存在しますからね・・・。
誰かのお役に立てると嬉しいです。