• ベストアンサー

EXCELマクロでネットから資料をダウンロードしたい

EXCELマクロを使って、Web上にある資料(ZIPファイル。毎日100個から300個)をダウンロードしたいと思っています。 EXCELの特定のセルに、縦にハイパーリンクを続けてコピーするところまでは手で行おうと思っています。 その後、 Range(\"F1\").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True で、ダウンロードすることまではできるのですが、 「保存しますか?」のダイヤログと、実際のセーブする時のダイヤログを止められません。 エラーでない限り、自動的に「はい」を選択し、次に進むようにさせたいのですが。 Application.DisplayAlerts = False でダイヤログを出さない。。。ということもできませんでした。 似たような操作をしている例はないか検索したのですが、見つかりませんでした。 素人な質問ですみません。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.4

Application.Wait Time:=Now + TimeValue("00:00:05") SendKeys "{LEFT}", True SendKeys "{ENTER}", True Application.Wait Time:=Now + TimeValue("00:00:03") SendKeys "{TAB 2}", True SendKeys "{ENTER}", True '次のダウンロードへ とかにしてWaitを入れてあげてください APIのほうはちょっとわかりません。

mimimi_jp
質問者

お礼

全部はうまくは動かなかったのですが、上記の途中までは無事動き、半分手でクリックしながら、なんとか作業のピークを乗り越えることができました。ありがとうございました。

その他の回答 (3)

  • sippo06
  • ベストアンサー率25% (7/27)
回答No.3

こんにちわ URLDownloadToFile API関数を使うとできますよ。

mimimi_jp
質問者

お礼

ありがとうございます。まだ試せていませんが、もう少しスキルがついたらチャレンジしてみます。

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.2

比較的簡単にやるとすると、Sendkeysステートメントですね。 ただ、応答時間などを考えて余裕を持って設計する必要があるでしょう。

mimimi_jp
質問者

お礼

ありがとうございます。 SendKeys "{LEFT}" SendKeys "{ENTER}" SendKeys "{TAB 2}" SendKeys "{ENTER}" と入れてみたのですが、ダイヤログには届かないようです・・。

回答No.1

勘だけど、あのダイアログは、Excelから出してないから無理じゃないの? ダウンロード用のプログラムじゃ駄目な理由があるのかしら? ダウンローダーで検索すればいくらでもあると思うのだが。

mimimi_jp
質問者

お礼

ありがとうございます。 確かに今のところ、ダイヤログに届く方法が見つかっていません。 EXCELにしたいのは、ダウンロードしたファイルや作業履歴をEXCELで管理したいからなのですが・・・。

関連するQ&A

  • VBAにて:IEを閉じるにはどうすれば良いですか?

    セルB1にハイパーリンクが設定してあると、以下のコードにて、IEを起動することが出来ます。 IEが起動されたときに、リンク切れがあると”お探しのページはありません”と出ますが、この時にIEを閉じるようにしたいのです。 どのようにすれば実現できるか教えてください。 Range("B1").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True     

  • VBAを使い、Web上からファイルをダウンロードしたいのですが・・・

    はじめまして。 今、日証金から日々の融資・貸株残高のデータ(CSV)を自動的に ダウンロードしてExcelに取り込むというマクロを作ろうとして いるのですが、うまくいきません。 具体的には、 range("A1").value = "http://www.jsf.co.jp/de/stock/dlcsv.php?target=balance&date=" & format(now,"YYYY-MM-DD") range("A1").select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True しかし、これだと「ファイルを保存」のWindowがあがってしまうので 処理が途中で止まります。 VBAで、あらかじめ指定したディレクトリに、指定したURLからファイルを自動的にダウンロードする には、どのようにすればよいのでしょうか?

  • マクロでExcelパスワードを入力する方法

    教えて頂きたいのですが、 今Excelのフォームボタンにマクロを使って、 別のExcelファイルを開けるように設定していますが、 そのファイルにパスワードを掛けており、フォームボタンを押すと、 まず、そのパスワード入力のダイアログが出ます。 それを、フォームボタンを押したときのマクロに組み込み、 パスワード入力のダイアログを出さずに開く事って可能でしょうか? 現在のフォームボタンに登録しているマクロの記述は下記の通りです。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Sub Macro11() ' ' Macro11 Macro ' マクロ記録日 : 2008/9/25 ユーザー名 : ************ ' ' Range("I29").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー I29にハイパーリンクにてアドレスを入力しているだけのものです。 宜しくお願いいたします。

  • エクセルVBAでのファイル転送

    任意のアドレスに添付ファイルを付けて送信完了までのコードを教えてほしいです。 Workbooks("***.xls").Sheets("***").Activate Range("D8").Select /上記セルにメールアドレスを設定してます。/ Selection.Hyperlinks(1).Follow _ NewWindow:=False, AddHistory:=True 送り先は設定されるけど添付ファイルの付け方が判らない。 Workbooks("***.xls").Activate Application.Dialogs(xlDialogSendMail).Show 添付ファイルは付けれるけど送り先の設定が判らない。

  • マクロの実行について 質問です。

    マクロ勉強中です! 何時間も調べておりますが、 どうしても分からないので お教え下さい(;_;) 別シートの都道府県が混在するデータの中から、 3列の付属語が『下関』のものだけをコピーして、シート1に貼り付けるマクロを マクロの記録で 『下関』 というタイトル?にして作りました。(下記) これを実行するときに、マクロ名からではなく、 下の表の R3C8セルの、『下関』 というハイパーリンクをクリックで 実行される・・・・ そんなふうにするには、どうしたらいいのでしょうか? ご回答を おまちしております。よろしくお願いします! Sub 下関() ' ' 下関 Macro ' ' Keyboard Shortcut: Ctrl+a ' ActiveWindow.SmallScroll Down:=-9 Range("B3").Select ActiveWindow.SmallScroll Down:=117 Range("B3:F137").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-9 Range("H3").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True Selection.Copy Sheets("Sheet1").Select Range("B3").Select ActiveSheet.Paste Range("C3").Select End Sub

  • 動画再生のマクロ ハイパーリンクについて教えて下さい

    エクセルVBA2003対応 の マクロについて教えて下さい 現在エクセルのワークシートの「セルC14」に、 MPG形式の動画が保存してあるパス (例えば、C:\◎○×\ビデオ\あいう.mpg)が記載して あり、それにハイパーリンクが設定してあります。 マクロで、それを自動実行し、終了するようにしたい為 Range("C14").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True と、プログラムし、マクロを実行すると、自動再生は しますが、動画が終了しても、再生画面はそのまま残り 動画再生のプログラムは自動で終了しません。 どのようにプログラムを追加すれば、再生後、自動で 「動画再生のプログラム」をクローズさせることが できるかどなたか教えて下さい よろしくお願いいたします 注:セルC14をクリックすれば正常に動画を再生できるのは   確認済みです

  • VBA 実行時エラー1004 range・・・

    【VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクト】 Excel Book内のあるシートで、 【数量の入っていない行を非表示にする】 【それを解除して全表示にする】 という二つのマクロを使用しています。 このシートのシート名を変更したところ、上記のエラーが出るようになってしまいました。 シート名をもとに戻せば出なくなります。 当方、VBAには詳しくないので、シート名を変えてもこのエラーが出なくなる方法を考え付きません。 エラーからデバッグを表示すると下記記述の窓が開きました。 ===ここから=== Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Application.Goto Excel.Range(Target.SubAddress), True End Sub ===ここまで=== 『Application.Goto Excel.Range(Target.SubAddress), True』の部分が黄色になっていて、その中の『Target.SubAddress』にカーソルを合わせると、 『Target.SubAddress=”(変更前のシート名)”』がポップアップします。 どこかでシート名の変更をすればいいのだろう、という事は察するのですが、それをどうやったらいいのかがわかりません。 使っているマクロの内容は下記です。 ===== 【数量の入っていない行を非表示にするマクロ】 Sub まとめ() ' ' まとめ Macro ActiveSheet.Range("$A$4:$T$2000").AutoFilter Field:=9, Criteria1:="<>" Range("B2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub ===== 【それを解除して全表示にするマクロ】 Sub 解除() ' ' 解除 Macro ActiveSheet.Range("$A$4:$T$2000").AutoFilter Field:=9 Range("B2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub ===== どこをどうやったらいいのでしょうか。 教えていただけませんでしょうか。

  • エクセルのマクロのタイマー機能について

    エクセルのマクロのタイマー機能について エクセルのマクロで指定した時間ごとにURLをクリックするマクロを作っています。 下記のように作っていますが、もっと簡略化して短い記述にしたく思います。 URLと指定時間は別のマクロで生成して、URLはA1~A49まで、指定時間はB1~B490までセルに書きこむようにしています。 URLはA49まで読んだらA1から読み直して10往復して、490回使用します。 使用するセルを一回ごとにずらしていくだけなので、簡単に出来そうな気もしますが、マクロ初心者のためわかりません>< 恐れ入りますが、ご教授いただければ幸いです。 ちなみにエクセル2007で作成しています。 Sub 一定の時間間隔でマクロを実行する() '進捗状況を示すために準備する 指定時刻 = Now + TimeValue("0時00分05秒") 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規01", TimeValue(待ち時間) End Sub Sub 新規01() Range("A1").Select 'A列のURLを取得 Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 指定時刻 = Now + Range("B1").Value 'B列の時間を取得 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規02", TimeValue(待ち時間) End Sub Sub 新規02() Range("A2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 指定時刻 = Now + Range("B2").Value 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規03", TimeValue(待ち時間) End Sub         ↓    同様の記述を490回繰り返す         ↓ Sub 新規建設490() Range("C1").Value = Now & " 終了" End Sub Private Sub 進捗状況を示すために準備する() Cells.Clear Columns("A:A").NumberFormatLocal = "yyyy/m/d h:mm:ss" Range("A1").Select ActiveCell.Value = Now & " 開始       " Columns("A:A").EntireColumn.AutoFit End Sub

  • excel マクロコードを教えていただきたいです

    マクロ初心者のため、単純な動作しか分からず困っています。 以下の表とマクロコードを確認していただき、教えていただきたいです。 ファイル【Book1】の表   A  B  C  D  E  F   G   1                  data1   ボタン1   2                  data2   ボタン2  3                  data3   ボタン3     4                  data4   ボタン4  5                  data5   ボタン5  6                  data6   ボタン6  ・                   ・ ・                   ・ ・                   ・ ※Gの列にはハイパーリンクが並んでいます。 ※ハイパーリンクにて各ファイル(data1・data2・data3・・・・)が開きます。 ※各行の右端にはフォームのボタンを設置しています。 ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ Sub Macro1() Range("G1").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True Windows("Book1.xls").Activate Range("A1:F1").Select Selection.Copy Windows("data1.xls").Activate ActiveSheet.Paste End Sub ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ 今の動作としては、ボタン1を押す事でファイル”Book1”のG1のハイパーリンク(data1.xls)が開き、 ”Book1”のA1からF1をコピーして、data1のsheetに貼り付けています。 これで、当初は5行ぐらいの表でしたので、毎回、上記の行番号を変更したコードを入力し、各ボタンに 登録していました。ただ今後、この表の行が多くなるとの事で、毎回、この作業を行うわけにもいかず、 何か良い案(マクロ)があれば教えていただきたいです。 やりたい事としては、マクロの実行にて、ハイパーリンクが立ち上がりその行の内容を、その立ち上がった ファイルのsheet2のセルA1:F1に貼り付けたいと思っています。 例としては、立ち上げたい行(セル)をクリックしておいて、ボタンを押すと上記のマクロが開始するなど・・・。 出来もしないのに生意気で申し訳ありませんが、教えていただけると助かります。よろしくお願い致します。

  • エクセルで困っています。

    素人ですいません。 エクセルの余計な所をいじって印刷できなくなりました。 現在仕事で使っている表ですが 最初のシートに見積もり印刷ボタンがあり 印刷ボタンを押すと、別のファイルシートのいき 入力したものを印刷するように、マクロで作ってあるみたいです。 余計な所を押したのか、使えなくなりました。 ちなみに、コードが出るところで、色が変わっている箇所があり それが変わっているのかよくわかりません。 Selection.ShapeRange.Item(1).Hyperlink.Follow NewWindow:=False, AddHistory _ :=True こんな感じででています。 何が違うかわからないので、どうか教えていただけないでしょうか。 ちなみに、この表を作った方は辞めてしまって 他に詳しいものがいないので困っています。 どうかよろしくお願いします。

専門家に質問してみよう