配列内の文字を半角に変換したい
配列内で、特定文字を変換したい場合があります。
パーツ化しておくことで処理を簡単にします。
配列内の文字を全角から半角に変換し、返すサンプルコード
'■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インポート処理では、文字を統一しておく方が無難です。




コメント