前提・実現したいこと
2次元配列を1次元配列に変換したい。
VBAで配列にある要素が含まれているかを確認したいです。
まず検索元となる配列としてA1:E1の値を格納します。
このとき配列は2次元配列(1行5列)…検索元配列になると思います。
このあと
'Filter()関数により要素を検索
varResult = Filter(検索元配列, 検索キー)
'戻り値配列のサイズで要素の有無を判定
If UBound(varResult) <> -1 Then
としたいのですが、2次元配列なのでうまくいきません。
該当のソースコード
VBA
1Dim varArray() As Variant 2Dim varResult As Variant 3Dim strTarget As String 4 5'検索元の配列を作成 6varArray = Worksheets("Sheet1").Range("A1:D1").Value 7 8'検索要素を指定 9strTarget = Worksheets("Sheet1").Range("A2").Value 10 11'Filter()関数により要素を検索 12varResult = Filter(varArray, strTarget) 13 14'戻り値配列のサイズで要素の有無を判定 15If UBound(varResult) <> -1 Then 16 Debug.Print strTarget & "は配列内に存在する" 17Else 18 Debug.Print strTarget & "は配列内に存在しない" 19End If
試したこと
2次元配列を1次元配列に変換する方法として
varArray_1 = WorksheetFunction.Index(varArray,1)
varResult = Filter(varArray_1, strTarget)
としてみたところ
varArray(1,1)の値がvarArray_1に格納されていました。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/10 21:14