[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『URLの画像を自動で保存』(みっこ)
データが何千件もあるので、1つ1つ手作業でURLを開き、名前をつけて保存をやっているとかなり効率が悪いもので…
画像はjpg、gif形式です。Excel2007 Windows7を使用しています。どうぞ宜しくお願いいたします<(_ _)>
a列 B列 C列
http〜test.jpg ab01.jpg c:\Docment〜\[ユーザー名]\
APIを使ってみましたが、こんな感じでしょうかね?
標準モジュールに貼り付けてください。
Private 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 test() Dim tbl As Variant, i As Long, returnValue As Long Dim myDownURL As String, mySaveName As String tbl = Range("A1").CurrentRegion.Value For i = 1 To UBound(tbl) myDownURL = tbl(i, 1) mySaveName = tbl(i, 3) & tbl(i, 2) returnValue = URLDownloadToFile(0, myDownURL, mySaveName, 0, 0) Next i MsgBox "完了しました。" End Sub
(momo)
Private 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 test() Dim tbl As Variant, i As Long, returnValue As Long Dim myDownURL As String, mySaveName As String tbl = Range("A1").CurrentRegion.Value For i = 1 To UBound(tbl) myDownURL = tbl(i, 1) mySaveName = tbl(i, 3) & tbl(i, 2) returnValue = URLDownloadToFile(0, myDownURL, mySaveName, 0, 0) Next i MsgBox "完了しました。" End Sub
すみません、マクロは超初心者なもので(><)上記のとおりにマクロのコードを記述するところに貼り付けて実行しましたが、以下のようなエラーが出てしまいました。
何か記述ミスがあるのでしょうか??
エラー:
End Sub,End Function またはEnd Property 以降には、コメントのみが記述できます。
全部見ていませんが、 >Sub 画像保存() これを削除してください。
これで提示されたエラーはなくなります。
ichinose
Private 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 test() Dim tbl As Variant, i As Long, returnValue As Long Dim myDownURL As String, mySaveName As String tbl = Range("A1").CurrentRegion.Value For i = 1 To UBound(tbl) myDownURL = tbl(i, 1) mySaveName = tbl(i, 3) & tbl(i, 2) returnValue = URLDownloadToFile(0, myDownURL, mySaveName, 0, 0) Next i MsgBox "完了しました。" End Sub
momoさんのマクロで保存できましたよ。 みっこさんが提示されたように A列=URL、B列=保存ファイル名、C列=保存先 のフォーマットになっていますか?
また、保存先のパスの最後に「\」はついていますか? つけなかった場合、ひとつ上のフォルダに保存されるみたいです。 (てつろう)
写真小(サムネイル)URL ファイル名 保存場所
http://image.d-064.com/products/images/samnail/1447287 1447287.jpg C\
http://image.d-064.com/products/images/samnail/408775 408775.jpg C\
http://image.d-064.com/products/images/samnail/408774 408774.jpg C\
http://image.d-064.com/products/images/samnail/408773 408773.jpg C\
データが投稿どおりなら・・・・、 C列を C\ −−−−−−> C:\
にしないとね!!
ichinose
何でなんでしょう。。。
ファイルはエクセル形式でtest.xlsで保存しています。
(みっこ)
保存先を「C:\WK\」のようにルートではなくフォルダにした場合は保存できますか? (そもそも手作業で保存する場合に「C:\」に保存できますか?) (独覚)
皆様フォローありがとうございます。
ん〜 あとは引っかかる所といえば >Windows7 という所でしょうか? 環境が無いので確認できませんが・・・
Windows7にurlmon.dllが無いとか?(そんな訳無いと思いますが) urlmon.dllを検索かけて存在しているか確認してみてください。 APIが使えないと何もできないコードなので。
あとは・・・URLやファイル名、パスに余分なスペースが入っているとか。
(momo)
しかしここで新たな問題にぶつかったのですが…保存された画像を確認したら1000件中200件程、リンクエラーのため、正常に画像が保存されなかったものがありました。どのファイルが保存されたのか把握しないといけないのですが、例えば、保存された画像は、D列に”○”と入力する…といった事は可能でしょうか??
(みっこ)
ダウンロードが成功すると変数returnValueに0が返りますので それを判定条件に○を入れます。
Private 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 test() Dim tbl As Variant, Ans() As String, i As Long, returnValue As Long Dim myDownURL As String, mySaveName As String tbl = Range("A1").CurrentRegion.Value ReDim Ans(1 To UBound(tbl), 1 To 1) For i = 1 To UBound(tbl) myDownURL = tbl(i, 1) mySaveName = tbl(i, 3) & tbl(i, 2) returnValue = URLDownloadToFile(0, myDownURL, mySaveName, 0, 0) If returnValue = 0 Then Ans(i, 1) = "○" End If Next i Range("D1").Resize(UBound(Ans)).Value = Ans MsgBox "完了しました。" End Sub
(momo)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.