半角カタカナを全角カタカナへ変換する(VBA,ユーザー定義関数)

icon 項目のみ表示/展開表示の切り替え

半角カタカナを全角カタカナへ変換する(VBA,ユーザー定義関数) 2013/05/12

セルの文字列のうち半角カタカナのみ全角カタカナに変換する必要に迫られたため、VBAによりユーザー定義関数を作成してみました。
半角カタカナでは濁音・半濁音は例えば「ぱ」は「は」と「゜」の2文字で表現されますが、全角では「ぱ」の一文字となります。本VBAソースでは、半角をすべて全角に変換(StrConv関数)することにより、濁音・半濁音を処理しています。数字、アルファベットは、半角へ再度変換(StrConv)します。動作は変換例を参考にしてください。
Excel 2002,2007,2010で動作を確認しました

使用方法

下記のソースコードを拡張子basというファイルとして保存し、Visual Basicエディタを開き保存したファイルをインポートします。a1セルの文字列を変換し、b1セルに =han2zen(a1) と入力します。マクロは有効にしておいてください。

VBAソースコード


' 半角カタカナを全角カタカナに変換
' 数字・アルファベットは半角に変換
'
' Copyright 2013/04/24 by Yamamoto

Function han2zen(src As String)
    Dim l As Integer
    Dim dtc As String
    Dim c As String
    Dim n As Integer
    
    ' 半角をすべて全角に変換する
    s = StrConv(src, vbWide)
    l = Len(s)
    For n = 1 To l
        c = Mid(s, n, 1)
        code = Asc(c)
        ' ぁの文字コード以下の文字は半角に変換
        If code < Asc("ぁ") Then
            c = StrConv(c, vbNarrow)
        End If
        dtc = dtc & c
    Next n
    han22zen = dtc
End Function

変換例(半角カタカナを全角カタカナへ変換する) 2013/05/12

変換元 変換後
パ
ギャ ギャ
ギャ ギャ
\
$
%
#
α α
ABC ABC
ABC 1 231 ABC 1 231
_ _
ひらがな ひらがな
ヒラガナ ヒラガナ
漢字123ひらがな 漢字123ひらがな
αζ αζ
ヒラガナ ヒラガナ
, ,
>= >=
<= <=
* *