- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルエラー:型が一致しません。)
VBAコンパイルエラー:型が一致しません。
このQ&Aのポイント
- VBA(EXCEL2007)-Win7Proでソースコードを実行すると、コンパイルエラーが発生します。
- 問題のソースは、参考サイトの「画面遷移待受サブルーチン」です。
- 初心者の方がコピペした結果であり、問題点の絞り込みが必要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 > コンパイルエラー:型が一致しません。 容易に再現できるエラーですが、 コンパイルエラーの原因は、引数の渡し方、です。 オブジェクト型のまま「参照渡し」として sub1 ie または Call sub1(ie) のようにするのが正しのですが、 sub1 (ie) などのように余分な括弧を付けてしまうと、 オブジェクト型では「値渡し」できませんので、 「型が一致しません。 」というエラーになります。 こういうのは、ベテランでも見落とすことのあるミスですが、 何か問題にあった時に、「不必要な括弧」が残っていないか、 「不必要」や「余分」を探すようにデバッグすると、 あっけない程簡単に解決できることが結構ありますね。
その他の回答 (2)
- Hayashi_Trek
- ベストアンサー率44% (366/818)
回答No.2
参照設定が不足しているからだと思う。 参照設定を活用してIEオブジェクトのメソッドやプロパティを調べる http://www.macrogirls.net/iesamplecode/vbaie_day2_4.html http://www.macrogirls.net/download.html#vbaie
- trytobe
- ベストアンサー率36% (3457/9591)
回答No.1
このように ie という名前の Object を明示的に作って、その Object である ie を引数で関数 sub1() に渡していますよ、と明示してもダメでしょうか。 '呼ばれる側 Public Sub sub1(ie As Object) End Sub '呼び出し側 Public Sub Test() Dim ie As InternetExplorer Set ie = CreateObject("InternetExplorer.Application") sub1 (ie) End Sub