1. ホーム
  2. excel

[解決済み] VBA関数 - 引数は任意ではない

2022-02-27 16:59:37

質問

Public Function RETURN_Equipment(Optional category As String) As Collection
    Dim config As classConfiguration
    Set config = New classConfiguration

    Dim item As classItem
    Set item = New classItem

    Dim myCollection As Collection
    Set myCollection = New Collection

    For Each config In Configurations
        For Each item In config.colItems
            If IsMissing(category) Then   
                myCollection.add item
            ElseIf InStr(category, "mainframe") <> 0 And item.category = "mainframe" Then
                myCollection.add item
                MsgBox "Fired!"                
            ElseIf category = "accessory" And item.category = "accessory" Then
            Else
            End If
        Next
    Next

    RETURN_Equipment = myCollection
End Function

が出続けています。

コンパイルエラーです。
引数がオプションでない

最後の行でエラーが発生します

RETURN_Equipment = myCollection

エラーメッセージは理解できます。パラメータが記入されていないことを知らせているのです。しかし、私はパラメータを1つだけ持っていて、それをオプションと宣言しています。関数から関数を呼び出そうとしているように見えるのですが?

どうする?

解決方法は?

オブジェクトを割り当てるときは、常に set キーワードを使用します。

set RETURN_Equipment = myCollection