[[20170627111819]] 『ダウンロードボタンを右クリックし「対象をファイ』(skyblue) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ダウンロードボタンを右クリックし「対象をファイルに保存」で保存したい』(skyblue)

●データをダウンロードする時、所有するPCの新しい方でダウンロードスイッチを押すと
ダイアログボックスが開き、
開く(O)、保存(S)を聞かれます。
困った事にダイアログボックスが開くとマクロが止まってしまいます。

・古い方のPC(新旧の両方ともウィンドウズ10で、IE11)では通常の左右に細長い帯が出て 開く(O)、保存(S)を聞く方式のため支障は有りません。

・対象となるURLは
https://225labo.com/modules/downloads_data/index.php?cid=3
です。
沢山ダウンロードボタンが有りますが、どれでも同じ現象となります。
ここに入るには会員登録(無料)が必要になります。

●ダイアログボックスを出さないための対策として次の手動操作をマクロで実現する事が考えられます。
1.ダウンロードボタンの上で右クリックし、
2.「対象をファイルに保存」を選択して、
3.希望するフォルダーを選び
4.保存する事です。

 かなり難しそうなテーマで申し訳ないのですが、ご指導のほど
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


まずは、途中で止まるというマクロを見せていただかないと、何とも…。貴方がそこまで作ったものを、回答者にゼロから作らせるおつもりでしょうか? それはご勘弁ください。

あと、トップページを見た感じ、先物取引関係の情報サイトのようですが、会員登録とか、それは第3者はリスクがあるので、手を出さないと思いますよ。つまり、HTMLを解析しにくいので、回答しにくい、という事。 ご自身でHTMLを解析し、ボタンを押す行為をどのような方法(VBScriptだ、とか)で実現しているのか調べ、その場合の押し方を調べてみてみることをお薦めします。(右クリックしているという事は、ダウンロードファイルへのフルパスが得られる? それなら一括ダウンロード系のフリーウェアを使ってしまう、とか?)

VBAで参考になりそうなURLなぞ。
https://www.ka-net.org/blog/?p=4855
(???) 2017/06/27(火) 13:54


???さん

 お世話になっています。

 マクロのイメージは次のようになります

Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.navigate "https://225labo.com/user.php"
Do While objIE.ReadyState <> 4

    Do While objIE.Busy = True
    Loop
Loop

ID = "****"
パスワード = "####"

 'IDとパスワードの入力
For Each obj In objIE.Document.getElementsByTagName("input")
    Select Case obj.ID
    Case "legacy_xoopsform_uname"
        obj.Value = ID
    Case "legacy_xoopsform_pass"
        obj.Value = パスワード
    Case Else
'        MsgBox (obj.ID)
    End Select

    Select Case obj.Type
    Case "submit"
        obj.Click
        Sleep 1000
    Case Else
    End Select
Next
objIE.navigate "https://225labo.com/modules/downloads_data/index.php?page=************"'イメージ

'ここで新しいPCではダイアログボックスが出ます 古いPCの場合は画面下部に横細のBARが出て開くか保存を問います

Do While objIE.ReadyState <> 4

    Do While objIE.Busy = True
    Loop
Loop
SendKeys "{ENTER}"
Sleep 1000
SendKeys "%(O)", True 
'旧PCではここでダウンロードしたフォルダーが開く・・・・以下省略

(skyblue) 2017/06/27(火) 19:22


 下記のページが参考になるだろうか?
https://blogs.technet.microsoft.com/jpieblog/2016/04/28/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB-%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E6%99%82%E3%81%AE%E9%80%9A%E7%9F%A5%E3%83%90%E3%83%BC%E3%80%81%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0/

 下記はIE9の場合だが。
https://hebikuzure.wordpress.com/2011/05/27/

(ねむねむ) 2017/06/28(水) 09:12


まずは、2回目のNavigateした後、Sendkeysする前にDoEventsするとか、十分な待ち時間とCPU開放を入れてみてください。キーの受け取り準備ができていない状態にキーを送りつけている可能性があります。(期待薄ですが…)

待ちを入れても変わらないようならば、ログイン認証部分は通せているようなので、昨日紹介したURLのSample04を元にして試してみてください。状況が似ているように思います。
(???) 2017/06/28(水) 09:42


ねむねむ さん

 貴重な情報を有難う御座いました。
この情報を元に対応方法を検討してみます。
解決したら報告します。

??? さん

 いつもお世話になっています。
ダウンロード時のダイアログは手操作(ボタンを押す)でも同じように出るので、作成したマクロの問題ではないと考えています。
(skyblue) 2017/06/28(水) 11:28


ダイアログがでるかどうかは、IEのバージョン次第なので、仕方ないです。現在困っているのは、ダイアログのボタンが押せていなくて、先に進めないという点ですよね? なので、ボタンを押す前に少し待つ事で押せるようになるのではないか、という点と、ボタンを押してダウンロードするのではなく、直接ファイルとしてダウンロードする方法が書いてあるので、このコードを試してみては?、という点をお薦めした訳です。

待ってもやはりボタンが押せないならば、Sendkeys案は捨てるしかない、ということになります。
(???) 2017/06/28(水) 13:05


??? さん

  ご指導いただいた内容を含めまして、色々試し、確認し、別の方面からも調査しております。
なかなか難しい問題である事だけは確かなようです。
禁句でしょうが、UWSCで解決する部分は有りそうです。

 少し時間を頂きたいと思います。

(skyblue) 2017/06/28(水) 22:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.