- ベストアンサー
エクセルへ出力するコードがコンパイルエラーになる
- アクセス2003で「.Number」の部分がメソッドまたはデータ メンバが見つかりませんというコンパイルエラーが出ます。
- 質問者は以前は問題なく動作していたと思いますが、何かが変わりましたか?
- 修正が必要なコードについて、アドバイスをいただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> このコードはおかしいですか? 単純にモジュールに貼り付けた後、デバッグを実行しましたが、 問題なく通りました。 また、フォーム上のコマンドボタンからの呼び出しでも、問題なく 動作することを確認しました。 従って、コード自体の問題ではないと思われます。 > 前までは問題なくできてたと思うのですが何が変わったのでしょうか? 私が思いつくのは、以下の2つです(可能性が高いのは前者): 【第1候補】どこかで、「Err」を変数として宣言してしまっている。 例えば、標準モジュールで「Public Err As DAO.Database」といった 宣言をすると、ご質問の件と同じエラーが発生しました。 【第2候補】何らかの参照設定が、VBAよりも優先順が上になっている。 VBAのメニューで「ツール(T)→参照設定(R)」から開く『参照設定』 ダイアログでは、「Visual Basic for Application」は最上位に設定 されていて動かせませんが、何らかのエラーによってこの優先順位が 変わっていて、そちらに「Err」というメンバが存在し、かつ「Number」 というメソッド等が存在しなければ、同様のエラーが発生する可能性 が考えられます。 (通常使用するErrオブジェクトは、VBAが定義しているものですが、 それより上位の参照設定に「Err」というものがあると、そちらのメソッド 内で「Number」が検索されることになるため) ・・・ということで、まずはVBA内で「Err」を完全一致検索(Ctrl+Fキー)して 「Err」を宣言(Dim Err~/Private Err ~/Public Err ~)していないか、 また、『参照設定』で優先順位がVBAより上になったものがないかを、 それぞれ確認してみてください。 (なお、後者の方で、『参照設定』ダイアログ上でVBAの優先順位が 最上位にできなかった場合(→通常は動かせないようにされている)、 すみませんが私は対処法を知りませんので、ご容赦願います(汗))
お礼
わかりました! 標準モジュールの名前にErrを使用していました! おかげで解決しました。 ありがとうございます。参考になりました。