プロが教えるわが家の防犯対策術!

エクセル2010で下記コードの矢印の部分でエラーが出てしまいます。
ほぼネットで見つけたコードそのままですが矢印のところで題記のエラーが出てしまいます。
内容はトヨタのホームページの燃料電池車の画像を保存するはずなのですが・・・
どなたかご存知の方ご教示いただけますでしょうか???

Sub aaa()
GetImageFile "http://toyota.jp/sp/image/e_bn/", "FCV_20140625.jpg"
End Sub

Sub GetImageFile(ImgName As String, SaveName As String)
Dim SaveFileName As String, DownloadFile As String, Ret As Long
If ImgName = "" Then Exit Sub
SaveFileName = SaveName
DownloadFile = ImgName
Ret = URLDownloadToFile(0, DownloadFile, SaveFileName, 0, 0) ’←ここです
If Ret = 0 Then
MsgBox "ダウンロードできました"
Else
MsgBox "エラーが発生しました"
End If
End Sub

A 回答 (3件)

VBAは「URLDownloadToFile」のことを知らないから定義する必要があります。


以下のコードを先頭に付け加えてください。

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

あとURLの指定方法、間違えていますよ

GetImageFile "http://toyota.jp/sp/image/e_bn/FCV_20140625.jpg", "FCV_20140625.jpg"

としてください。

おそらくマイドキュメントに保存されるかと。
    • good
    • 0
この回答へのお礼

お忙しいところご回答ありがとうございます。
御礼が遅くなってすみません・・・

お礼日時:2014/08/07 06:26

標準モジュールを挿入し、下記コードを貼り付けます。



Public 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 aaa()
GetImageFile "http://toyota.jp/sp/image/e_bn/", "FCV_20140625.jpg"
End Sub

これは「GetImageFile」のパラメーターと意味が違っているようです。"FCV_20140625.jpg"がダウンロードするファイルのはずで、例えば、自分のパソコンのMドライブの、Down01フォルダーに「mySample.jpg」のファイル名で保存する場合、

GetImageFile "http://toyota.jp/sp/image/e_bn/FCV_20140625.jpg", "M:\Down01\mySample.jpg"

とするのでしょう。
    • good
    • 0
この回答へのお礼

お忙しいところご回答ありがとうございます。
御礼が遅くなってすみません・・・

お礼日時:2014/08/07 06:29

「subまたはfunctionが定義されていません。

」に書いてある通り(URLDownloadToFileがSubでもFunctionでも定義されていない)なのでは?

おそらく

http://www.ken3.org/vba/backno/vba120.html

を参考にされたのだと思いますが先頭からちゃんと読んでますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!