【Web上のファイルや画像をダウンロード、URLDownloadToFile】【VBA】
Web上のファイルをダウンロードする際に
・ファイルのURLに法則性があり機械的に決まっている。
・ダウンロードしたファイル名を自分で決めて保存したい。
といったケースに大変便利です。
例えばYahooFinanceのトヨタ自動車(証券コード7203)の日足チャートは以下のようにURLが決まっています。
以下の日足チャートをダウンロードしてみます。
"http://chart.yahoo.co.jp/?code=7203.T&tm=1y&type=c&log=off&size=m&over=m65,m130,s&add=vm,ss&comp="
ちなみに証券コード(7203)部分を書き換えると他社の日足チャートになります。
'宣言部に以下の記述が必要 Private Declare PtrSafe 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 testURLD() '指定した証券コードの日足チャートを本ファイルと同じフォルダに証券コード名で保存する。 Dim SaveFN As String, DFURL As String, ReturnValue As Long, SCode As Long SCode = 7203 '証券コード。7203→トヨタ自動車 SaveFN = ThisWorkbook.Path & "\" & SCode & ".jpg" '画像ファイルの保存先とファイル名を設定 DFURL = "http://chart.yahoo.co.jp/?code=" & SCode & ".T&tm=1y&type=c&log=off&size=m&over=m65,m130,s&add=vm,ss&comp=" 'ダウンロードしたいファイルのURLを設定 ReturnValue = URLDownloadToFile(0, DFURL, SaveFN, 0, 0) '実行部分 If ReturnValue = 0 Then 'ダウンロードに成功すると「ReturnValue =0」となる。ただの確認 Debug.Print "ダウンロード成功" Else Debug.Print "ダウンロード失敗" End If End Sub