VBAについて質問です。


現在IEを起動しフォームにデータを送れるようにしようとしているのですが、
いざ実行をしてみると

ユーザ定義型は定義されていません。

というエラーが発生してしまいます。

ネットで調べて ツール→参照設定から MicroSoft Scripting Runtime にチェックを入れないといけない

と書いてあり チェックを入れて実行したいのですが、再び同じエラーが出てしまいます。

お手数をおかけしますが、どなたか解決策を知っていたら教えていただけないでしょうか?

環境ですが OSがWindowsXP、エクセルはExcel2003を使用しております。

参照設定には

Visual Basic For Applications
Microsoft Excel 11.0 Object Library
OLE Automation
Microsoft Office 11.0 Object Library

に初期状態でチェックが入っております。


どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/12/11 03:48:07
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.2

回答回数1314ベストアンサー獲得回数393

ポイント100pt

どこでエラーになっているか明示したほうがよいと思いますが、

今回の問題に関しては、単純に型をObject 型にすれば問題は解決します。


Dim objIE As InternetExplorer '変数を定義します。

   ↓

Dim objIE As Object '変数を定義します。

ちなみに 「MicroSoft Scripting Runtime」 はScripting ライブラリ(FileSystemObject、Dictionary)を

使用するときに必要であって、IEとは関係ありません。


また、上記を使用する際も CreateObject("...")を使用するのであれば(実行時バインド)、

参照設定はしなくとも動作します。

id:aiomock

ご回答ありがとうございます。

2009/12/11 03:40:13

その他の回答1件)

id:airplant No.1

回答回数220ベストアンサー獲得回数49

ポイント35pt

「Microsoft Internet Controls」を参照設定すれば動きます。

id:aiomock

ご回答ありがとうございます。

2009/12/11 03:40:07
id:Mook No.2

回答回数1314ベストアンサー獲得回数393ここでベストアンサー

ポイント100pt

どこでエラーになっているか明示したほうがよいと思いますが、

今回の問題に関しては、単純に型をObject 型にすれば問題は解決します。


Dim objIE As InternetExplorer '変数を定義します。

   ↓

Dim objIE As Object '変数を定義します。

ちなみに 「MicroSoft Scripting Runtime」 はScripting ライブラリ(FileSystemObject、Dictionary)を

使用するときに必要であって、IEとは関係ありません。


また、上記を使用する際も CreateObject("...")を使用するのであれば(実行時バインド)、

参照設定はしなくとも動作します。

id:aiomock

ご回答ありがとうございます。

2009/12/11 03:40:13
  • id:aiomock
    またコードは、ページを参考にしており、以下になります。
    とりあえず インターネットエクスプローラを起動し、実際にページを開くところまでまず持っていけたらと思っています。

    Sub ie_test() 'IEの表示をテストする。

    'IEの起動
    Dim objIE As InternetExplorer '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True '可視、Trueで見えるようにします。

    '表示位置(左上の座標)とサイズ(高さ・幅)を調整する
    objIE.FullScreen = False '※Trueのモードだとびっくりするよ
    objIE.Top = 100 '左上 上位置
    objIE.Left = 100 '左上 左位置
    objIE.Width = 800 '横幅
    objIE.Height = 600 '高さ

    'XXXバー、外観・外枠の調整。
    objIE.ToolBar = True 'タブの切り替えで必要なので、ツールバーを表示にする
    objIE.MenuBar = False 'メニューは非表示にする
    objIE.AddressBar = True 'URLなど アドレスバーは確認のため、表示する
    objIE.StatusBar = True '一番下のステータスバーを表示。

    '処理したいページを表示します。
    objIE.Navigate "http://www.google.co.jp/" '.Navigate メソッドで Yahooを表示する。
    'Navigate と Navigate2 の 違いが私もイマイチわかってませんが

    'ページの表示完了を待ちます。
    While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True '.ReadyState <> 4の間まわる。
    DoEvents '重いので嫌いな人居るけど。
    Wend

    End Sub

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません