配列操作

配列から不要文字を削除する(一次元/二次元)【ExcelVBA】

配列から不要文字を削除したい

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

配列から不要文字を削除して返すサンプルコード

'■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インポート処理では、カンマとかダブルクォーテーション等禁則文字を削除しておく方が無難です。

関連記事

コメント

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