• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルエラー:型が一致しません。)

VBAコンパイルエラー:型が一致しません。

このQ&Aのポイント
  • VBA(EXCEL2007)-Win7Proでソースコードを実行すると、コンパイルエラーが発生します。
  • 問題のソースは、参考サイトの「画面遷移待受サブルーチン」です。
  • 初心者の方がコピペした結果であり、問題点の絞り込みが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは。 > コンパイルエラー:型が一致しません。 容易に再現できるエラーですが、 コンパイルエラーの原因は、引数の渡し方、です。 オブジェクト型のまま「参照渡し」として   sub1 ie または    Call sub1(ie) のようにするのが正しのですが、    sub1 (ie) などのように余分な括弧を付けてしまうと、 オブジェクト型では「値渡し」できませんので、 「型が一致しません。 」というエラーになります。 こういうのは、ベテランでも見落とすことのあるミスですが、 何か問題にあった時に、「不必要な括弧」が残っていないか、 「不必要」や「余分」を探すようにデバッグすると、 あっけない程簡単に解決できることが結構ありますね。

その他の回答 (2)

回答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

関連するQ&A