1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VBAで、配列に要素が含まれているかを調べる関数

Posted at

はじめに

VBAで、配列の中に指定の要素が含まれているかを確認する関数の備忘録です。

結論

対象の値と一致しているかどうか、要素の中を1から順に確認していきます。1から順に調べていくため、配列の要素数が多くなると時間がかかってしまうことに注意してください。予想としては1万個ぐらいになってくると時間がかかることが体感的にわかってきそうです。

サンプルコード

Sub 検証()
    Dim arr(1 To 5) As Long
    arr(1) = 3
    arr(2) = 1
    arr(3) = 4
    arr(4) = 1
    arr(5) = 5

    Debug.Print (InArray(1, arr))
    Debug.Print (InArray(5, arr))
    Debug.Print (InArray(6, arr))
    Debug.Print (InArray(9, arr))
End Sub

'配列に含まれているかを調べる
Private Function InArray(ByVal value As Long, ByRef arr() As Long) As Boolean
    Dim i As Integer
    For i = LBound(arr) To UBound(arr)
        If arr(i) = value Then
            InArray = True
            Exit Function
        End If
    Next
    
    InArray = False
End Function

結果

True
True
False
False

補足

InArray関数を宣言するところでPrivateと記述しています。これを付けることで、エクセルのワークシートの関数候補から表示されなくなるようです。しかし、関数名を直接入力すれば使用はできるようなのでそこは注意が必要です。
詳しくは、下記の記事が参考になります。

以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?