• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ネットからcsvファイルをvbaでダウンロード)

VBAでネットからcsvファイルをダウンロードする方法

このQ&Aのポイント
  • VBAを使用して、ネットからcsvファイルをダウンロードする方法を教えてください。
  • 具体的には、csvファイルのURLを探し、ダウンロード先のパスを指定する方法が知りたいです。
  • 現在試しているコードでは、ダウンロードが失敗してしまうため、正しいパスの取得方法を教えてください。

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

  • ベストアンサー
  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.1

ボタンだかリンクだかをクリックする前にF12を押して IEの開発者ツールを起動して、 (IEとの一体化が気になるならCtrl + Pで分離) ネットワークボタンを押して切り替えてからキャプチャボタンを押す。 そしたらアドレスが分かります。 ただ、サイトによってはワンタイムトークン(一部アドレスが可変)やらRefererやらCookieやらが必須なので、 URLDownloadToFileは使えず、WinHTTPとADODB.Streamの組み合わせを選択する事もあるかと。

ttpanniynmw
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA ログイン後csvファイルをダウンロードする

    VBAで会員サイトにログインし、その後、csvファイルでダウンロードする処理を考えています。 調べたところURLDownloadToFileを使うとよいとあり、つかってみたのですが ダウンロードできません。 調べたら http://okwave.jp/qa/q5390386.html にあるように https サイトなので使えないとのことでした。 ↑のURLの記事は2009年なのですが、今も、URLDownloadToFileはhttpsサイトでは難しいのでしょうか。 URLDownloadToFileの説明を見てもよくわからなかったので、どなたか教えていただけないでしょうか。 また、httpsサイトにあるcsvをvbaでダウンロードするよい方法等もありましたらご教授お願いいたします。

  • VBA:2つのCSVファイルを開きたいです。

    エクセル2010のVBAにてCSVファイルを開き結合させるプログラムを組もうとしているのですが、2つ目のCSVファイルを開こうとすると、何故かエラーが出てしまいます。 -------------------------------------------------------------------------------- 1つ目 Sub mobile_FileSearch(Path As String) 'test.csvのデータを検索して開く Dim FSO As Object, Folder As Variant, File As Variant Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folder In FSO.GetFolder(Path).SubFolders Call mobile_FileSearch(Folder.Path) Next Folder For Each File In FSO.GetFolder(Path).Files If File.Name = "test.csv" Then Workbooks.Open ("test.csv") End If Next File End Sub ---------------------------------------------------------------------------- 2つ目 Sub local_FileSearch(Path As String) 'bbb.csvのデータを検索して開く Dim FSO As Object, Folder As Variant, File As Variant Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folder In FSO.GetFolder(Path).SubFolders Call local_FileSearch(Folder.Path) Next Folder For Each File In FSO.GetFolder(Path).Files If File.Name = "bbb.csv" Then Workbooks.Open ("bbb.csv")'←ここでエラー End If Next File End Sub ------------------------------------------------------------------------ まったく同じプログラムで、csvファイル名だけ変えただけで実行時エラー1004が出てしまいます。 一体全体何が問題なのでしょうか?

  • CSVファイルのダウンロードについて

    サーバー上にアップしたcsvファイルにアクセスすると ダウンロードの確認ダイアログが出ずに 画面上にテキストベースで表示されてしまいます。 フォルダオプションの設定で ダウンロード後に開くを確認するのチェックボックスを チェックしましたがうまくいきません。 宜しくお願いします。 ※Webサーバー・・・JRUN4 <-- sample.jsp --> <% response.setContentType("application/octet-stream-dummy; charset=iso-2022-jp"); %> <% response.setHeader("Content-Disposition","inline; filename=aaa.csv"); %> top.location.href=~aaa.csv ← ファイルのフルパス

    • ベストアンサー
    • Java
  • EXCEL2000 VBA CSVファイルの読み込み

    エクセル2000です。 VBAでCSVファイルを読み込もうとしているのですが、CSVファイルの一部に改行コード[*]が入っています。 そのまま読み込んだ場合、エクセルの中では改行されません。CSVファイル(文字列)を精査していって、[*]があれば、VBでの改行コードChr(10)に変換する方法でいけるのでしょうか。 Workbooks.Open   Filename:="C:\temp\sample.csv" Range("A2:J901").Select このsample.csvの中身を変換したいのですが。 よろしくお願いします。

  • 【VBA】ファイルを開く→シートをコピー→保存

    VBAを使って、複数ファイルを一気に編集したいです。 あるフォルダ内に、複数のエクセルブックと VBAを登録したブックが入っています。 VBAの内容としては、 (1)フォルダ内のエクセルファイルをすべて開く (2)各ファイル1ページ目のシートを複製(コピー)する (3)上書き保存して閉じる (4)VBAを登録したブックを閉じる です。 下記のように書いてみたのですが、まったく動かないので どこが間違っているかのアドバイスをいただければと思います。 ----------------------------------------------------- Sub test() Dim Myfile, Filepath As String Filepath = ThisWorkbook.Path 'フォルダ名取得 Myfile = Dir(Filepath & "\") 'フォルダ内のファイル名取得 Do While Myfile <> "" Workbooks.Open Filename:=Filepath & "\" & Myfile Workbooks(Myfile).Activate Sheets(1).Select Sheets(1).Copy after:=Sheets(1) Workbooks(Myfile).Close SaveChanges:=True Myfile = Dir() Loop ThisWorkbook.Close SaveChanges:=True End Sub ----------------------------------------------------- よろしくお願いいたします。

  • csvファイルのダウンロード

    こんにちわ。 今、IE6.0 SP1で、OSがWin2000 SP4の環境にて、CSVファイルをブラウザより、「ファイルnダウンロード」ダイアログにて、保存先等を指定できるようにしたいのですが、ブラウザ上にデータ内容が表示されてしまいます。 「フォルダオプション」、「ファイルタイプ」にて、CSVファイルの設定を「ダウンロード後に開く確認をする。」にチェックを付けてみたのですが、やはりだめでした。 どなたか、ダイアログ表示の方法をご存知の方がいらっしゃいましたら、ご教授ください。

  • 複数ファイルのA1だけを抽出して別ファイルにしたい

    すみませんが、教えてください。 特定のフォルダ内に入っているcsvのA1列目のみ抽出して別ファイルにしたく、検索したところ 同じように困っていた方がいたようで、参考にさせていただいたのですが、 以下を実行しても インデックスが有効範囲にありませんと出ます。 各csvファイルのシート名は 1000近くあるファイル全て違い、別々の名前(コード00-000とか)になっています。 (エクセルで開いたとき) お手数ですが、教えていただきたくお願いいたします。 参考にしたマクロです。 Sub macro1() Dim myPath As String Dim myFile As String myPath = "ファイルの場所\" myFile = Dir(myPath & "*.xls") Do Until myFile = "" Workbooks.Open myPath & myFile With Workbooks("集約.xls").Worksheets("Sheet1").Range("A65536").End(xlUp) .Offset(1, 0).Value = myFile .Offset(1, 1).Value = Workbooks(myFile).Worksheets("概要").Range("C3").Value End With Workbooks(myFile).Close savechanges:=False myFile = Dir() Loop End Sub 宜しくお願いいたします。

  • VBAで画像ファイルをダウンロードしたいけどうまく

    VBAで画像ファイルをダウンロードしたいけどうまく行かない・・・ XPで、オフィス2003です。 http://officetanaka.net/other/extra/tips01.htm を参考に、画像ファイルをダウンロードする練習をしているのですが "エラーが発生しました"になってしまいます。 標準モジュールに --------------------------------------------------------- Option Explicit Public Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" (ByVal pCaller As Long, _ ByVal szURL As String, ByVal szFileName As String, _ ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Sub Sample() GetImageFile "http://www.officetanaka.net/sample.jpg", "C:\sample.jpg" End Sub Sub GetImageFile(ImgName As String, SaveName As String) Dim SaveFileName As String, DownloadFile As String, Ret As Long Ret = URLDownloadToFile(0, DownloadFile, SaveFileName, 0, 0) If ImgName = "" Then Exit Sub SaveFileName = SaveName DownloadFile = ImgName Ret = URLDownloadToFile(0, DownloadFile, SaveFileName, 0, 0) If Ret = 0 Then MsgBox "ダウンロードできました" Else MsgBox "エラーが発生しました" End If End Sub --------------------------------------------------------- を貼り付けました。 Retが0にならなくてはいけないみたいですが、 自分の場合は、-2147221020になってしまいます。 どう修正すればいいのか教えてください。

  • Excel 2010 VBA:ファイル名を読み込む

    下は複数のcsvファイルを一つに合体するVBAです。これにシートの右端に読み取ったファイル名を追加するにはどうしたらよいでしょうか。 よろしくお願いします。 Sub macro1() Dim myPath As String Dim myFile As String Dim s As String myPath = ThisWorkbook.Path & "\" On Error Resume Next Kill myPath & "合体版.csv" On Error GoTo 0 myFile = Dir(myPath & "*.csv") If myFile = "" Then Exit Sub Open myPath & "合体版.csv" For Output As #1 Do Until myFile = "" Open myPath & myFile For Input As #2 Do Until EOF(2) Line Input #2, s Print #1, s Loop Close #2 myFile = Dir() Loop Close #1 End Sub

  • VBAでファイルの保存を自動化する

    1. ID・パスワードを入れてログイン 2. カテゴリーリスト(20項目程)から1カテゴリーをクリック 3. カテゴリー内部にある csv○○.zip をダウンロード 以降2.3を全項目分繰り返す 自社サイトにログインし毎日行っている上記の作業を VBAにて自動化しようと悪戦苦闘しているものです。 1.2は問題無く組めたのですが3で躓いています。 色々試してみた結果としましては… まず、普通にVBAでcsvへのリンクをクリックさせてみましたが、 『ファイルの保存』ダイアログの状態から先へ進めず、 sendkeyでOKボタンを押す処理も試してみたが上手く動作せずに、挫折。 次に、URLDownloadToFileというAPIが使えそうだったので手を出してみました。 しかし、上記手順3の段階でのファイルのリンク先が、 どのメニューから入っても【~/csv.do?linkToQA=1】と共通のリンク先名になっており、 (※リンク名は同じだがダウンロードすれば違うファイルが落ちてくる) ダウンロード先のファイル名が分からない現状では、結局不可能なようでした。 あまりプログラミングに明るくないので詳細は分からないのですが、 リンク先は共通だが、手順2で入ったメニュー項目によって 自動的にダウンロードするCSVへのリンク先アドレスを振り分ける処理?を行っているようです。 ディレクトリ内部からcsv.zipを探し出せば直アドレスが分かるはず!と思い、 内部へ潜ってみたりもしたのですが分からず…。 この状況で、zip形式のcsvダウンロードの自動化するには一体どうすればいいのでしょうか? 何か良い手などがありましたら、ぜひご教示ください。

転職のタイミングはいつ?
このQ&Aのポイント
  • 転職のタイミングに悩んでいる方へ、考えるポイントと注意点を解説します。
  • 転職を検討しているが、今の会社には裏切り感を抱えている。転職するべきか迷っている方へのアドバイス。
  • 転職なんて、贅沢なのか?自身の環境が恵まれていると感じつつも、転職による成長やチャンスの可能性について考えます。
回答を見る

専門家に質問してみよう