Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4580 / 13646 ツリー ←次へ | 前へ→

【55766】IEを非表示にする。 あつし 08/5/18(日) 23:34 質問[未読]
【55771】Re:IEを非表示にする。 ハチ 08/5/19(月) 9:54 発言[未読]
【55782】Re:IEを非表示にする。 あつし 08/5/19(月) 14:10 発言[未読]
【55789】Re:IEを非表示にする。 ハチ 08/5/19(月) 17:00 発言[未読]
【55793】Re:IEを非表示にする。 あつし 08/5/19(月) 21:40 発言[未読]
【55811】Re:IEを非表示にする。 ハチ 08/5/20(火) 11:29 発言[未読]
【55841】Re:IEを非表示にする。 あつし 08/5/20(火) 22:34 発言[未読]
【55779】Re:IEを非表示にする。 IE 08/5/19(月) 13:09 回答[未読]
【55784】Re:IEを非表示にする。 あつし 08/5/19(月) 14:28 発言[未読]

【55766】IEを非表示にする。
質問  あつし  - 08/5/18(日) 23:34 -

引用なし
パスワード
   VBAでIEを操作する際、  
 Set objIE = CreateObject("InternetExplorer.application")
 objIE.Visible = False
でIEを非表示にすることは分かるのですが、
この開いたIEを操作していて、別ウィンドウで開くリンクをクリックさせると、
もともと開いたページは非表示のままでも、新しく開くリンクのページは表示されてしまいます。

これを新しく別ウィンドウで開くページも非表示にするか、別ウィンドウで開くはずのリンクを強制的に同じウィンドウで開くことは可能でしょうか?

アドバイスよろしくお願いします。

【55771】Re:IEを非表示にする。
発言  ハチ  - 08/5/19(月) 9:54 -

引用なし
パスワード
   ▼あつし さん:

>これを新しく別ウィンドウで開くページも非表示にするか、別ウィンドウで開くはずのリンクを強制的に同じウィンドウで開くことは可能でしょうか?
>
>アドバイスよろしくお願いします。

過去ログで、リンクで開いたページを操作するというのをやりました。
www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=49515;id=excel

なにかの参考になればと思います。

【55779】Re:IEを非表示にする。
回答  IE  - 08/5/19(月) 13:09 -

引用なし
パスワード
   やりかた2つ

beforenavigate2でtargetをチェックしてurlを覚えてキャンセル
覚えたurlでnavigate

htmlの中を調べてtargetを書き換える

【55782】Re:IEを非表示にする。
発言  あつし  - 08/5/19(月) 14:10 -

引用なし
パスワード
   ハチさん こんにちは。

教えていただいた過去ログ読みました。
内容が少々自分には難解で、あまりよく理解できなかったのですが、
自分がやりたいのとは 少し違うような気がします。

新しく開いたIEを対象に操作する方法はわかっていて、ただ、それを最初から最後まで非表示のまま行う方法が知りたいのです。

【55784】Re:IEを非表示にする。
発言  あつし  - 08/5/19(月) 14:28 -

引用なし
パスワード
   IEさん こんにちは、アドバイスありがとうございます。

>beforenavigate2でtargetをチェックしてurlを覚えてキャンセル
>覚えたurlでnavigate

beforenavigate2 を知らないのでこれから調べてみます。
方法としてはこれが一番簡単そうですね。
ただ、問題がひとつ。
自分のコントロールしたいページがCGIでして、これの知識があまり無く、POSTの情報の送り方がわからず、順にClickしていく方法で 今までコードを書いていました。
とりあえずもう一度CGIとPOSTの仕方を勉強してみます。


>htmlの中を調べてtargetを書き換える

書き換えるなんてそんなことが出来るのですか?
これが出来ればものすごく、理想なのですが。
書き換え方の具体的な方法や、どんなキーワードで調べれば良いか、もしよろしければ、アドバイスいただけないでしょうか?

【55789】Re:IEを非表示にする。
発言  ハチ  - 08/5/19(月) 17:00 -

引用なし
パスワード
   ▼あつし さん:

>新しく開いたIEを対象に操作する方法はわかっていて、ただ、それを最初から最後まで非表示のまま行う方法が知りたいのです。

新しく開いたIEから、
リンクして開いたオブジェクトを操作(非表示)にしたい
と質問されているように感じました。

それであれば、Classモジュールを使って
IEのオブジェクトの_NewWindow2イベントを
取得するとできるかな と思った次第です。

ちょっとややこしいですね・・・
忘れてください。

【55793】Re:IEを非表示にする。
発言  あつし  - 08/5/19(月) 21:40 -

引用なし
パスワード
   ハチさん こんばんは。

改めてのアドバイスありがとうございます。

>それであれば、Classモジュールを使って
>IEのオブジェクトの_NewWindow2イベントを
>取得するとできるかな と思った次第です。

やはり、簡単にはいかなそうですね。
Classモジュール、実はまったく分かりません。
IEさんに教わった、beforenavigate2も少し調べてみたけど、今のところチンプンカンプンです。
いい機会なので、少し勉強しようと思います。

【55811】Re:IEを非表示にする。
発言  ハチ  - 08/5/20(火) 11:29 -

引用なし
パスワード
   ▼あつし さん:

>Classモジュール、実はまったく分かりません。
>IEさんに教わった、beforenavigate2も少し調べてみたけど、今のところチンプンカンプンです。

beforenavigate2は、InternetExplorerオブジェクトの「イベント」です。
「イベント」を使うには、オブジェクト変数を WithEventsで宣誓する必要があります。
しかし、標準モジュールではWithEventsは宣誓できません。
必然的にClassモジュールの使い方を勉強することになりますね。

非表示でデータを取得したいだけなら
WebBrowserコントロールを使うのも有効だと思います。

【55841】Re:IEを非表示にする。
発言  あつし  - 08/5/20(火) 22:34 -

引用なし
パスワード
   ハチさん こんばんは。

重ね重ねの助言ありがとうございます。

私、プログラムのきちんとした勉強はほとんどしたことが無く、エクセルにくっついているVBAなるもので、オリジナルソフトが作れるらしい、、、と言う話を小耳に挟み、なんだか面白そうだなぁと興味を引かれ、行き当たりバッタリで、WEBで調べては、サンプルコードを改造・継接ぎして、何とかソフトらしいものを作ることが出来ました。
しかし、生来欲深い私は、出来上がったソフトをさらに使い勝ってよく修正したくなって、今回の質問になりました。

でも、ここまで来ると、基礎が出来ていない私にはちょっとハードルが高いようですね。まずは書店に行き、基礎からしっかり学べそうな本を探してみることにします。

とりあえず、基礎とクラスモジュールしっかり勉強してみます。

4580 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free