配列から不要文字を削除したい
配列内で、特定文字を削除したい場合があります。
パーツ化しておくことで処理を簡単にします。
配列から不要文字を削除して返すサンプルコード
'■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インポート処理では、カンマとかダブルクォーテーション等禁則文字を削除しておく方が無難です。
コメント