配列(一次元/二次元)

配列内の文字を全角→半角変換する(一次元/二次元)【ExcelVBA】

配列内の文字を半角に変換したい

配列内で、特定文字を変換したい場合があります。
パーツ化しておくことで処理を簡単にします。

配列内の文字を全角から半角に変換し、返すサンプルコード

'■1次元の配列から全角文字を半角文字に変換する
Public Function Call_ArrayFulltoHalf(ByVal arr As Variant) As Variant
    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        arr(i) = StrConv(arr(i), vbNarrow)
    Next
    Call_ArrayFulltoHalf = arr
End Function
'■2次元の配列から全角文字を半角文字に変換する
Public Function Call_ArrayFulltoHalf2D(arr As Variant) As Variant
    Dim i As Long, j As Long
    For i = LBound(arr, 1) To UBound(arr, 1)
        For j = LBound(arr, 2) To UBound(arr, 2)
            arr(i, j) = StrConv(arr(i, j), vbNarrow)
        Next j
    Next i
    Call_ArrayFulltoHalf2D = arr
End Function

使い方

上記をお好きなモジュール内にコピペしてください。
実際に使用する時は以下のような形で使用してください。

Public Sub sample()
    '■1次元配列の場合
    Dim arr1D As Variant: arr1D = Array("1a", "2a", "3a", "4a", "5a")
    arr1D = Call_ArrayFulltoHalf(arr1D)
    Debug.Print arr1D(0) '1a
    Debug.Print arr1D(1) '2a
    
    '■2次元配列の場合
    Dim arr2D As Variant: ReDim arr2D(1, 1)
    arr2D(0, 0) = "1a"
    arr2D(0, 1) = "2a"
    arr2D(1, 0) = "3a"
    arr2D(1, 1) = "4a"
    arr2D = Call_ArrayFulltoHalf2D(arr2D)

    Debug.Print arr2D(0, 0) '1a
    Debug.Print arr2D(0, 1) '2a

End Sub



注意点

  • 別ソフトへのCSVインポート処理では、文字を統一しておく方が無難です。

関連記事

コメント

タイトルとURLをコピーしました