4

次のコードで オブジェクト変数またはブロック変数が設定されていないというエラーを受け取ったのはなぜですか。

Function GetConnection() As ADODB.Connection
    'Create connection to worksheet
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & "Extended Properties=Excel 8.0;"
    cn.Open
    GetConnection = cn
End Function

オブジェクトを「cn」として宣言し、適切に初期化してから、いくつかのプロパティを設定して開いてから、オブジェクトを返します。

GetConnection=cn行でエラーが発生します。

4

1 に答える 1

10

メモリが適切に機能する場合...クラシックvbで参照型(オブジェクト)を操作する場合は、「set」キーワードを使用する必要があります

すなわち:

Set GetConnection = cn

これは、関数のreturnステートメントだけでなく、すべての割り当てに適用されます。

于 2013-02-13T05:36:03.730 に答える