Excel VBAで英数字と記号を半角、カタカナを全角に統一する方法

Excel VBAで英数字と記号を半角、カタカナを全角に統一する方法

Excel VBAを使って、英数字と記号を半角に、カタカナを全角に統一する方法をご紹介します。この方法は、データの整形やデータの視認性向上に役立ちます。実際の使い方やサンプルを交えて説明しますので、初心者の方でも安心してお読みいただけます。

ユーザー定義関数の作成

まず、以下のユーザー定義関数を作成します。この関数は、引数として文字列を受け取り、英数字と記号を半角に、カタカナを全角に統一した結果を返します。

Function ToHalfWidthAlnumFullWidthKana(ByVal target As String) As String
    Dim character As String
    Dim i As Long
    Dim result As String
    Dim nextCharacter As String

    target = target & ChrW(&H200B)

    For i = 1 To Len(target) - 1
        character = Mid(target, i, 1)
        nextCharacter = Mid(target, i + 1, 1)

        If (AscW(character) >= &H3041 And AscW(character) <= &H3096) Or (AscW(character) >= &HFF61 And AscW(character) <= &HFF9F) Then
            If (AscW(nextCharacter) = &HFF9E) Or (AscW(nextCharacter) = &HFF9F) Then
                character = character & nextCharacter
                i = i + 1
            End If
            ' 半角カタカナを全角カタカナにする
            result = result & StrConv(character, vbWide)
        ElseIf (AscW(character) >= &HFF10 And AscW(character) <= &HFF5A) Then
            '全角英数字と記号を半角にする
            result = result & StrConv(character, vbNarrow)
        Else
            ' それ以外の文字はそのまま追加
            result = result & character
        End If
    Next i

    ToHalfWidthAlnumFullWidthKana = result
End Function

使い方

上記のユーザー定義関数を使うには、まずExcelのVBAエディタで新しいモジュールを作成し、上記のコードを貼り付けます。その後、以下のようにExcelのシート上で関数を使用することができます。

=ToHalfWidthAlnumFullWidthKana(A1)

ここでは、セルA1に入力された文字列を関数の引数として与え、結果を表示する例を示しています。

サンプル

以下に、半角と全角が混ざった架空のサンプルを用いて、関数の使い方を説明します。

例1:

元のデータ: 渋谷109ビルB1F カフェテリア12
関数適用後: 渋谷109ビルB1F カフェテリア12

例2:

元のデータ: オンラインショッピングサイトABCストア メンズコーナー
関数適用後: オンラインショッピングサイトABCストア メンズコーナー

例3:

元のデータ: 100ゲームセンターグランドオープン
関数適用後: 100ゲームセンターグランドオープン

これらの例では、英数字と記号が半角に、カタカナが全角に統一されています。この関数を使用することで、データの整形や視認性の向上が期待できます。

まとめ

この記事では、Excel VBAで英数字と記号を半角に、カタカナを全角に統一するユーザー定義関数の作成方法と使い方を説明しました。データの整形や視認性の向上に役立ててください。これからもVBAを活用して、効率的なデータ処理を目指しましょう。

コメント