
いつもお世話になっております。
エクセルVBAを使用し色々と試しているのですが
うまく回らなく質問させて頂きます。
記述している内容は下記ですが,ネットで拾い集め記述していますが
画像が保存されません。URL自体に誤りはないため"ダウンロード完了!"と表示は出ますが
実際にダウンロードはされてない状態です。
記述に誤りが無いか,お教え頂ければと思います。
Option Explicit
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 Download_File()
Dim lngRes As Long
Dim strURL As String
Dim strPath As String
strPath = "C:\"
strURL = "https://www.google.com/images/branding/googlelog …
lngRes = URLDownloadToFile(0, strURL, strPath, 0, 0)
If lngRes = 0 Then
MsgBox "ダウンロード完了!"
Else
MsgBox "ファイルをダウンロードできませんでした"
End If
End Sub
実際にはここへWSHを用いてデスクトップに保存できるように
するつもりでもあります。宜しくお願い致します。
環境:Win10 Enteprise
Office 2016
No.5ベストアンサー
- 回答日時:
>strPath = "C:\"
通常、Win10の設定で、Cドライブ直下に管理者設定などをしないで、ダウンロードは出来ないと思います。
合わせて、WindFaller氏の回答にあるようにファイル名が必要です。
>"ダウンロード完了!"と表示は出ます
抜粋:ファイルを作成できず、ダウンロードがキャンセルされた場合でも、 URLDownloadToFileは S_OKを返します。
Cドライブ直下を変更した例
例場合、対象がjpgと明確なので、拡張子をjpgにしています。
デスクトップにTest.jpgがダウンロードされます。
strPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Test.jpg"
strURL = "http://arch.casio.jp/image/dc/images/fh20_galler …
No.4
- 回答日時:
lngRes = URLDownloadToFile(0, strURL, strPath, 0, 0)
strPath とは書いても、そこは、ファイル名付きのはずですね。
StrRev あたりでファイル名は取得するか、日付ファイル名とかにするか、それは考えてください。
VBAでは、\\は不要です。
> 実際にはここへWSHを用いてデスクトップに保存できるように
それは、また厄介なことでしょうけれども、とりあえず、それは別の話でしょう。
No.3
- 回答日時:
"C:\"に保存できないのでドキュメントフォルダに保存されてませんか?
C:\以外の
strPath = "C:\○○"
で試してみては?
No.2
- 回答日時:
こちらを見ると、
MSDN - URLDownloadToFile function
https://msdn.microsoft.com/ja-jp/windows/ms77512 …
ダウンロード成功時の返り値は「S_OK」だそうなので、
If lngRes = S_OK Then
MsgBox "ダウンロード完了!"
として見るとか。
また、英文のテキストはよう読みませんが、ファイルが作れない時、ダウンロードがキャンセルされた時もS_OK出すように読めるので、
strPath = "C:\test.txt"
と、具体的なファイル名を指定しては。
あるいは、VBで良くあるけど、\はエスケープシーケンスだと解釈されるので、"c:\\test.txt"とかでなきゃマズイとかって事もあるかも?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
URLDownloadToFile でダウンロード不可
Visual Basic(VBA)
-
ExcelVBAでリンク先の対象のファイルを保存
Visual Basic(VBA)
-
URLDownloadToFileのコピペで64ビットで使用するにはに更新必要とあり修正方法?
Visual Basic(VBA)
-
-
4
ファイルをダウンロードすると必ず破損してしまいます
その他(パソコン・スマホ・電化製品)
-
5
VBA ログイン後csvファイルをダウンロードする
Excel(エクセル)
-
6
VBA初心者ですがダウンローダーを作成したいです。。
Visual Basic(VBA)
-
7
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
8
エクセルをWEBからダウンロード時にファイル破損
Excel(エクセル)
-
9
VBAでwebの画像を名前を付けて保存する方法
その他(プログラミング・Web制作)
-
10
VBAのExecメソッドで画面を非表示にして実行する方法
Visual Basic(VBA)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
VBAで「致命的なエラー」が出ました。どのくらい致命的なんでしょうか?
Access(アクセス)
-
13
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
14
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
15
VBA IE ダウンロード ダイアログ制御(名前を付けて保存)
Visual Basic(VBA)
-
16
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
17
VBAでchromeを動かしたいのですが、エラー出ます。
その他(パソコン・スマホ・電化製品)
-
18
自分の部署・担当を言うとき、どういう言い方が正しいでしょうか?? 会社のときは、弊社といいますが、部
その他(ビジネス・キャリア)
-
19
Excel マクロでShearePoint先のフォルダ指定
Excel(エクセル)
-
20
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【HTML】1クリックで複数ファイ...
-
Webサイトから、txtファイルを...
-
java_run.batがダウンロードで...
-
XMLファイルのダウンロード
-
ホームページからダウンロード
-
自分のHPからダウンロードして...
-
アクセスした瞬間にダウンロード
-
WEB上でPDF閲覧のみにしたいです。
-
CSVファイルをサーバからクライ...
-
VC++でHTTPプロトコルを用いた...
-
HPで音楽ファイルをDLできる...
-
VS2005ExpressEdition無償版ダ...
-
ファイルを載せるには?
-
VBA URLDownloadToFileについて
-
HTTP上にあるファイルの更新日時
-
HTMLページが勝手にダウンロー...
-
複数同時ダウンロードをさせな...
-
VBA IE操作でダイアログ表示後...
-
VBAでIEのファイルを自動的にダ...
-
ファイルを一括ダウンロードす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【HTML】1クリックで複数ファイ...
-
Webサイトから、txtファイルを...
-
HTMLページが勝手にダウンロー...
-
java_run.batがダウンロードで...
-
VBA URLDownloadToFileについて
-
URLDownloadToFile でダウンロ...
-
WEB上でPDF閲覧のみにしたいです。
-
Excelのマクロについて教えてく...
-
XMLファイルのダウンロード
-
ZIPの拡張子のついたURLがダウ...
-
ファイルをダウンロードすると...
-
エクセルのファイルのダウンロ...
-
フォームのボタンをダウンロー...
-
javascriptでファイルダウンロ...
-
IE操作時、ファイルのダウンロ...
-
VBA IE操作でダイアログ表示後...
-
選択した複数のファイルを、一...
-
VBAでIEのファイルを自動的にダ...
-
ダウンロード完了後メッセージ...
-
asp ダウンロード中にタイムア...
おすすめ情報