VBA実行時エラー91「オブジェクト変数またはWithブロックが設定されていません」の解決方法

Visual Basic

VBAを使用している際に発生する「エラー91:オブジェクト変数またはWithブロックが設定されていません」というエラーは、オブジェクト変数が適切に設定されていないことが原因です。この記事では、エラー91の原因とその解決方法について説明します。

エラー91の原因とは

エラー91は、オブジェクト変数が適切に設定されていない場合に発生します。質問者が提供したコードでは、`db`オブジェクトが設定されておらず、`db.OpenRecordset`でエラーが発生しています。`db`オブジェクトは、現在のデータベースを指す`CurrentDb`を使って初期化する必要があります。

解決方法:オブジェクトの設定

エラーを解決するためには、`db`オブジェクトを適切に設定する必要があります。具体的には、`Set db = CurrentDb`を追加し、`db`オブジェクトを初期化することで解決できます。以下のようにコードを修正してください。

Dim db As DAO.Database
Set db = CurrentDb
Set Rst02 = db.OpenRecordset("□□□□連絡書01", dbOpenTable)

追加の注意点:エラー処理の修正

質問者のコードには、`except valueError:`という部分もあり、`NameError`が発生しています。これは、`valueError`という名前が正しく定義されていないためです。`ValueError`(大文字で始まる)に修正する必要があります。

まとめ

エラー91はオブジェクト変数が設定されていないために発生します。このエラーは、`Set db = CurrentDb`を追加することで解決できます。また、例外処理の部分ではエラー名を正確に記述することが大切です。これらの修正を加えることで、VBAコードは正常に動作するようになります。

コメント

タイトルとURLをコピーしました