4

MS-Access 2007のフォームのボタンのVBAコードで、「コンパイルエラー:型の不一致:配列またはユーザー定義の型が必要です」というエラーが表示される理由を誰かに説明できますか?

Private Sub Button_Click()
    Dim Arr() As Integer
    Foo (Arr())
End Sub

Private Sub Foo(Arr() As Integer)
    Me.Field.Value = "Foo"
End Sub

しかし、これはうまくコンパイルされますか?

Private Sub Button_Click()
    Dim Dummy
    Dim Arr() As Integer
    Dummy = Bar (Arr())
End Sub

Private Function Bar(Arr() As Integer)
    Me.Field.Value = "Bar"
End Function

私が書いている関数/サブルーチンは何も返しませんが、上記のBar関数のように、関数呼び出しの戻り値をダミー変数に割り当てない限り、コンパイルすることはできません。

4

1 に答える 1

5

パラメータの前後に角かっこを使用する場合は、Callを使用する必要があるため、角かっこはスキップしてください。

Private Sub Button_Click()
    Dim Arr() As Integer
    ''No brackets
    Foo Arr()
    ''Or 
    ''Call Foo(Arr())
End Sub

Private Sub Foo(Arr() As Integer)
    Me.Field.Value = "Foo"
End Sub
于 2012-06-20T20:05:16.703 に答える