質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

965閲覧

Excel URLの画像を自動で保存

uhsi

総合スコア57

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/09/18 13:14

http://www.excel.studio-kazu.jp/kw/20100324130207.html
こちらのサイトを参考に作成したのですが、完了しましたというダイアログが表示されるだけでダウンロードできませんでした。
「XPモードで試した」と書かれているのですができないため、ほかの解決方法はありますでしょうか。

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

そのままコピペして実行したところ問題なく動作しました。
恐らくシートに書かれている情報に誤りがあるのでしょう。
こういう場合はステップ実行して変数myDownURLmySaveNameが想定通りの値になっているか、URLDownloadToFile関数の戻り値はどうなのかを確認してください。

と書いている間に別の回答で解決してしまったようですね。
折角なのでそのまま回答しておきます。
.

投稿2019/09/19 02:55

編集2019/09/19 02:56
ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uhsi

2019/09/19 07:19

ありがとうございます。また機会がありましたらよろしくお願いいたします。
guest

0

ベストアンサー

URLDownloadToFile関数はダウンロード成功時に0が返されるので、
returnValue の値を確認しながら試してみてください。
とりあえず、以下の修正で解決できないでしょうか。

VBA

1mySaveName = tbl(i, 3) & "\" & tbl(i, 2) 2'mySaveName = tbl(i, 3) & tbl(i, 2)

投稿2019/09/18 13:26

TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uhsi

2019/09/18 13:33

ありがとうございます。 mySaveName = tbl(i, 3) & tbl(i, 2)をmySaveName = tbl(i, 3) & "\" & tbl(i, 2)に変更するということでしょうか。
TanakaHiroaki

2019/09/18 13:38

そのつもりで書きました。 ただし、tbl(i, 2)の値、つまりは、ファイル名の先頭に"\"が付与されていない場合の解決策です。
uhsi

2019/09/18 21:29

保存場所のデータの最後に/をつけ、解決しました。 ご回答のおかけで解決策がわかりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問