配列から不要文字を削除したい
配列内で、特定文字を削除したい場合があります。
パーツ化しておくことで処理を簡単にします。
配列から不要文字を削除して返すサンプルコード
'■1次元の配列から不要文字を削除する
Public Function Call_ArrayRemoveWord(ByVal arr As Variant, str As String) As Variant
Dim i As Long
For i = LBound(arr) To UBound(arr)
arr(i) = Replace(arr(i), str, "")
Next
Call_ArrayRemoveWord = arr
End Function
'■2次元の配列から不要文字を削除する
Public Function Call_ArrayRemoveWord2D(arr As Variant, str As String) 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) = Replace(arr(i, j), str, "")
Next j
Next i
Call_ArrayRemoveWord2D = arr
End Function
使い方
上記をお好きなモジュール内にコピペしてください。
実際に使用する時は以下のような形で使用してください。
Public Sub sample()
'■1次元配列の場合
Dim arr1D As Variant: arr1D = Array("1a", "2a", "3a", "4a", "5a")
arr1D = Call_ArrayRemoveWord(arr1D, "a")
Debug.Print arr1D(0) '1
Debug.Print arr1D(1) '2
'■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_ArrayRemoveWord2D(arr2D, "a")
Debug.Print arr2D(0, 0) '1
Debug.Print arr2D(0, 1) '2
End Sub
注意点
- 別ソフトへのCSVインポート処理では、カンマとかダブルクォーテーション等禁則文字を削除しておく方が無難です。




コメント