- ベストアンサー
VBAでIE操作のサンプル
- VBAを使用してInternet Explorer(IE)を操作するサンプルコードをネットで検索しているが、どちらがより良い方法なのかを知りたい。
- 圧倒的にネットでは、Sample2の方法がよく使われているが、Sample1の方法も存在している。
- Sample1の方法でブラウザを開くメリットがあるのかを知りたい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sample2 が Dim objIE As InternetExplorer となっているが、これは Dim objIE As Object では? で、実際にやってみればすぐにわかる。 Sample1 の場合、変数の型として InternetExplorer が使えるということは、開発段階で IE を参照設定している。 なので objIE. とすると IE が持つプロパティやメソッドがインテリセンスに表示されるのがメリット。 Sample2 の場合 (あくまで Dim objIE As Object の記述ミスだとして) 、汎用的な Object 型の変数を使うため、プログラムが実行されて CreateObject("InternetExplorer.application") で IE のインスタンスが作られた時に初めて IE への参照が入る。 したがって Sample2 では開発時に IE のインテリセンスが使えない。 とは言え開発時に参照設定する場合、当然ながら開発用 PC で参照設定を行うため、開発用 PC に入っている IE のバージョンに対して参照設定が行われる。 これで開発したプログラムを他の PC で実行する場合、開発用 PC と同じバージョンの IE が実行用 PC に入っている保証はない。 バージョンが違っている場合、最悪は "参照不可" という状況になってしまい、プログラムの実行に支障が出る可能性がある。 ということでお勧めは、 1. 開発段階では参照設定を行い、インテリセンスの恩恵を受けながら開発する。 2. 完成したら参照設定を外し、IE の型や名前付き定数を汎用的なものに書き換える。 という方法。
その他の回答 (1)
- kumatti1
- ベストアンサー率60% (73/121)
Sample1の > Set objShell = CreateObject("Shell.Application") は要らないのでは。 Sample1は変数宣言と同時に参照をセット、Sample2はCreateObject関数で参照をセット、 Newキーワードの方が効率がいいです。 > 圧倒的にSample2の方がネットでは多いのですが 参照設定が要らないからでは。
お礼
ありがとうございました。
お礼
ありがとうございました。