「数字・アルファベットは半角・カタカナは全角」Excelで全角・半角を処理する関数・マクロ

PCで入力する際、全角と半角は明確に使い分けるべきです。
全角、半角が混在すると処理をするときに困ります。
特にExcelでは欠かせません。
スクリーンショット 2015 02 27 8 58 22

全角と半角は別物

「Excel」と「EXCEL」
「セミナー」と「セミナー」
「100」と「100」

見た目が違うだけで、どちらを使っても問題ないような感じもします。

ただ、データとして扱うのであれば、明確に使い分けなければいけません。
全角のものと、半角のものは別物と判断されるからです。
意識しておかないと困ることがあります。

また、見た目の上でも、アルファベット、カタカナ、数字を全角にするか半角にするかを決めておくべきです。
自分なりに決める、会社として決めるといったルールを決めておきましょう。

ルールの例

私の場合は、

英語は、半角
カタカナは全角
数字は半角

というルールです。

Excel上だけではなく、このブログも、メールも統一しています。

勤めていたところは、このルールがすべて逆だったので困りました。
(辞めた理由の1つです)

プリントアウトしたときは、全角のアルファベットや数字がきれいに見えることもありますが、PC上で見ると違和感があり、Excelで処理することも考えると、このルールがしっくりきます。

入力フォームで、全角数字や全角アルファベットを強制されると嫌なのですが、これは好みの問題もあるのでしかたありません。

半角のカタカナはネット上や2ch(2ちゃんねる)でよく使われます。
どちらかといえば仕事上は、さけた方がいいでしょう。
(世代によるかもしれませんが)

Excelで全角・半角の処理をするならば

Excel上で、全角・半角が混じっている場合、関数で処理できます。

JIS関数は、半角を全角にする関数、ASC関数は、全角を半角にする関数です。

スクリーンショット 2015 02 27 9 09 00

=JIS(A1)といれれば全角に、=ASC(A1)といれれば半角になります。

全角、半角が異なると、IF関数でも別物と判断され、VLOOKUP関数でも別物と判断されて、処理に支障があるのです。

「数字とアルファベットを半角に、カタカナは全角に」という場合はマクロを使うしかありません。
サンプルとして次のようなものを作ってみました。

スクリーンショット 2015 02 27 9 16 02

A列(セルA2から下)にある文字列を、「数字とアルファベットを半角に、カタカナは全角に」してB列に表示するマクロです。

いったん、すべてを全角にします。

「マンションA-203」→「マンションA−203」

1文字ずつチェックして、数字・アルファベット以外ならそのまま全角に、数字・アルファベットだったら半角にします。

「マ」→数字・アルファベット以外→「マ」
「ン」→数字・アルファベット以外→「ン」



「A」→数字・アルファベット→「A」


という処理です。

Sub henkan()

    Dim i
    Dim j
    Dim zenkaku
    Dim moji
    Dim word
    
    For i = 2 To Range("a" & Rows.Count).End(xlUp).Row
        '■すべての語をいったん全角にする
        zenkaku = StrConv(Range("a" & i).Value, vbWide)
        word = ""
        
        '■1文字ずつ、数字・アルファベットか、カタカナかをチェック
        For j = 1 To Len(zenkaku)
            moji = Mid(zenkaku, j, 1)
            
            '■英語・アルファベット以外だったらそのまま全角
            If moji Like "[ァ-ヶ]" Then
                word = word & moji
            '■英語・アルファベットだったら半角に
            Else
                word = word & StrConv(moji, vbNarrow)
            End If
        Next
        
        '■結果をB列に入力
        Range("b" & i).Value = word
    Next

End Sub

サンプルはこちらです。
EX-ITサンプル 半角全角

人が作ったもの、システムから取り出したもので全角・半角がルール通りでなければ、上記の方法で処理しましょう。

それ以前に自分(または組織)で、ルールを作っておくことが大事です。
データの作り方、入力方法も効率化に大きく影響してきます。
意識していきましょう。





【編集後記】
来週の久米島トライアスロンに向けて、準備を進めています。
離島なので、明日には宅配で送らなければいけません。
(念のため)
明日はバイク練50kmから60km、明後日はスイム練2km。
デビュー戦を控えるチームメイト3人とともに最後の調整をやります。

【昨日の1日1新】
※詳細は→「1日1新」

■スポンサードリンク

お茶プレッソ
Canon IP2700
ドラゴンクエスト ヒーローズ