
いつもお世話になっております。
エクセル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
URLDownloadToFile でダウンロード不可
Visual Basic(VBA)
-
ExcelVBAでリンク先の対象のファイルを保存
Visual Basic(VBA)
-
VBA ログイン後csvファイルをダウンロードする
Excel(エクセル)
-
-
4
URLDownloadToFileのコピペで64ビットで使用するにはに更新必要とあり修正方法?
Visual Basic(VBA)
-
5
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
6
VBAでwebの画像を名前を付けて保存する方法
その他(プログラミング・Web制作)
-
7
ファイルをダウンロードすると必ず破損してしまいます
その他(パソコン・スマホ・電化製品)
-
8
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
11
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
12
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
13
2つ以上の変数を比較して最大数を求めたい
Word(ワード)
-
14
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
15
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
16
メッセージボックスで1025文字以上を扱う
Visual Basic(VBA)
-
17
[VBA] Classから他のClassを呼び出す場合
Visual Basic(VBA)
-
18
エクセルVBAでMHTMLで保存したWebページをGoogle Chromeで表示
Visual Basic(VBA)
-
19
VBA IE ダウンロード ダイアログ制御(名前を付けて保存)
Visual Basic(VBA)
-
20
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLページが勝手にダウンロー...
-
URLDownloadToFile でダウンロ...
-
Webサイトから、txtファイルを...
-
【HTML】1クリックで複数ファイ...
-
VBA URLDownloadToFileについて
-
ホームページビルダーV9でエ...
-
Excelのマクロについて教えてく...
-
JavaScriptでのダウンロード
-
htmlにてクリックするとダウン...
-
画像ダウンロード
-
java_run.batがダウンロードで...
-
ダウンロード完了後メッセージ...
-
HTMLからフォルダを開きたい
-
lang 英語と日本語など混ざる時は
-
医療画像(Windows用)をMacで...
-
サブドメインでメインドメイン...
-
社内で利用するWebサイトを立ち...
-
googleドライブで、PDFファイル...
-
タイトルバーを非表示にできま...
-
Excelで、社外秘(閲覧のみ)と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webサイトから、txtファイルを...
-
HTMLページが勝手にダウンロー...
-
【HTML】1クリックで複数ファイ...
-
java_run.batがダウンロードで...
-
異なる2つのファイルを同時に...
-
VBA URLDownloadToFileについて
-
URLDownloadToFile でダウンロ...
-
Excelのマクロについて教えてく...
-
ファイルをダウンロードすると...
-
イラストレーターのaiファイル...
-
bcpadのコンパイラのインストー...
-
ファイルの解凍
-
log4net書庫が壊れている
-
WEB上でPDF閲覧のみにしたいです。
-
asxをダウンロードさせた場合に...
-
有料アダルトサイトで間違えて...
-
複数のデータをダウンロードさ...
-
XMLファイルのダウンロード
-
asp ダウンロード中にタイムア...
-
フランスのフリーチャートのダ...
おすすめ情報