ウィルスソフトで、IEからファイルのダウンロードが一発でできない。 削除


Message#11 2017年6月6日(火)16時00分
From: 困ってます君
みらーさん

ありがとうございました。

できました。

このようにしたらリンクができるまで待機できました。
While Left(objIE.Document.getElementsByTagName("td")(2).innerText, 7) = "ダウンロード中"
DoEvents
Wend

またおっしゃるとおり、
APPLICATION.WAITを使ったら、
ieオブジェクトはそのままで大丈夫でした。

本当にありがとうございました!

> みらーのメッセージ(#9)への返事
>
> ありがとうございます。
>
> すでにページが遷移した後で、
> (readystateはすでに4になっている)
> 画面が30%完了、50&完了、100パーセント完了というふうに表示されていき、
> 完了したら、ダウンロードのリンクが現れます。
>
> DOCUMENTでもREADYSTATEやってみましたが、
> COMPLETEで、だめでした。
>
> ファイルの大きさによって、100%完了になる時間がちがうのですが、
> 最大3分待つようにすればいいかもしれません。
>
> また、100パーセント完了になったら、
> CLICK HERE という文字列が現れるので、
>
> While Not InStr(objie2.Document.getElementsByClassName("datatable").innerText, "Click") > 0
> DoEvents
> Wend
>
> という風にして、
> その文字列がない間だけ、待機、というふうにはできないでしょうか?
>
>
>
> > 困ってます君のメッセージ(#7)への返事
> >
> > スキャン中というのは、すでにページが遷移したあとで、
> > 同じページ内にリンクが出てくる、という認識で合ってますでしょうか?
> >
> > スキャン中、READYSTATEが使えないのであれば、
> > APIのSLEEPで任意の秒数待機したあとで、
> > <a>タグを探す、というのはどうでしょう?
> >
> > > 待機ができないのは、
> > > ウイルススキャン中は、
> > > READYSTATEは4になっていました。
> > > もしリンクがなければ、待機しつづける、
> > > というコードにすればいいのでしょうか?
> > >
> > > Debug.Print objIE2.ReadyState
> > > Debug.Print objIE2.Busy
> > >
> > > 4
> > > False
> > >
> > >
> > > > このようにしたら遷移したドキュメントのURLを取得できました。
> > > >
> > > > Dim objShell, objIE2 As Object
> > > > Set objShell = CreateObject("Shell.Application")
> > > > Set objIE2 = objShell.Windows(objShell.Windows.Count - 1)
> > > >
> > > > ソースはここでした。
> > > > https://teratail.com/questions/9052
> > > >
> > > > > みらーのメッセージ(#4)への返事
> > > > >
> > > > > ありがとうございます。
> > > > >
> > > > > ページが遷移しても、
> > > > > 最初のie.documentのオブジェクトは変更していないので、
> > > > > ie.document.urlは前のアドレスのままで、
> > > > > リンクがなくエラーとなってしまいます。
> > > > >
> > > > > 遷移した、今開いている新しいページを
> > > > > ie.documentにする方法はありますか?
> > > > >
> > > > > 新しいオブジェクトを作成しなおしすればいいでしょうか?
> > > > >
> > > > > > 困ってます君のメッセージ(#3)への返事
> > > > > >
> > > > > > ページ上にリンクが出てくるのであれば、
> > > > > > ページが遷移したあとに、innertextが"http*"で始まる<a>タグをループで探せば大丈夫ではないでしょうか。
> > > > > >
> > > > > > For Each obj In IE.document.getElementsByTagName("a")
> > > > > >   If obj.innertext Like "http*" Then
> > > > > >     obj.Click
> > > > > >   End If
> > > > > > Next obj
> > > > > >
> > > > > > > みらーのメッセージ(#2)への返事
> > > > > > >
> > > > > > > ありがとうございます!!
> > > > > > >
> > > > > > > リンクは、サイト上のページにでてきます。
> > > > > > > サイトのURLが変更になり、ループで待機ができない感じです。
> > > > > > >
> > > > > > > このようなページに変更します。
> > > > > > >
> > > > > > > https://kc.mcafee.com/corporate/index?page=content&id=KB80729&viewlocale=ja_JP&locale=de_DE
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > 困ってます君のメッセージ(#1)への返事
> > > > > > > >
> > > > > > > > リンクというのは、サイト上に出てくるのでしょうか?
> > > > > > > > それともダイアログでしょうか?
> > > > > > > >
> > > > > > > > 「1分経ったらクリック」する場合、
> > > > > > > > 仮にスキャンに1分以上かかった場合はアウトですよね。
> > > > > > > >
> > > > > > > > そのリンクが出てくるまで、ループで待機するのがベストだと思います。
> > > > > > > > それとsendkeysも確実性がないので、使うのはオススメしません。
> > > > > > > >
> > > > > > > >
> > > > > > > > > VBAでファイルの保存ボタンをおし、
> > > > > > > > > application.sendkeysで保存、まではできたのですが、
> > > > > > > > >
> > > > > > > > > うちの会社ではウイルスチェックのソフトを使っており、
> > > > > > > > > (McAfee web gateway)
> > > > > > > > > 一度、ある特定の場所に、ファイルが保存されて、
> > > > > > > > > そこでウイルススキャンが行われ、
> > > > > > > > > 問題なければ、
> > > > > > > > > 画面がかわり、ダウンロードのリンクが表示され、
> > > > > > > > > そこをもう一度、クリックしたら、
> > > > > > > > > やっとダウンロードできます。
> > > > > > > > >
> > > > > > > > > 問題は、ウイルススキャンの時間が、
> > > > > > > > > ファイルのサイズによって違い、
> > > > > > > > > 画面が変更する時間も長かったりするので、
> > > > > > > > > エラーになってしまいます。
> > > > > > > > >
> > > > > > > > > このような場合は、
> > > > > > > > > 例えばどのような場合でも1分停止してから
> > > > > > > > > リンクをクリック、
> > > > > > > > > というような方法しかないでしょうか?
> > > > > > > > >
> > > > > > > > > 同じような経験された方がいらっしゃいましたら
> > > > > > > > > 教えて頂けると幸いです。

上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。

パスワード:

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com