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