• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:subまたはfunctionが定義されていません。)

エクセル2010で燃料電池車の画像を保存する方法

このQ&Aのポイント
  • エクセル2010で燃料電池車の画像を保存する方法について、コードの一部でエラーが発生しています。
  • トヨタのホームページから燃料電池車の画像を取得し、エクセルファイルに保存するためのVBAコードを使用しています。
  • エラーが発生している箇所は、URLDownloadToFile関数の引数において、矢印の部分です。

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.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" としてください。 おそらくマイドキュメントに保存されるかと。

tomomaki
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

標準モジュールを挿入し、下記コードを貼り付けます。 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" とするのでしょう。

tomomaki
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.1

「subまたはfunctionが定義されていません。」に書いてある通り(URLDownloadToFileがSubでもFunctionでも定義されていない)なのでは? おそらく http://www.ken3.org/vba/backno/vba120.html を参考にされたのだと思いますが先頭からちゃんと読んでますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAで画像ファイルをダウンロードしたいけどうまく

    VBAで画像ファイルをダウンロードしたいけどうまく行かない・・・ XPで、オフィス2003です。 http://officetanaka.net/other/extra/tips01.htm を参考に、画像ファイルをダウンロードする練習をしているのですが "エラーが発生しました"になってしまいます。 標準モジュールに --------------------------------------------------------- Option Explicit 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 Sample() GetImageFile "http://www.officetanaka.net/sample.jpg", "C:\sample.jpg" End Sub Sub GetImageFile(ImgName As String, SaveName As String) Dim SaveFileName As String, DownloadFile As String, Ret As Long Ret = URLDownloadToFile(0, DownloadFile, SaveFileName, 0, 0) 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 --------------------------------------------------------- を貼り付けました。 Retが0にならなくてはいけないみたいですが、 自分の場合は、-2147221020になってしまいます。 どう修正すればいいのか教えてください。

  • エクセルのマクロを利用して

    マクロ初心者でです。 いろんなサイトから引用させて頂き次のようなマクロを作成しました。 実行すると、日付と担当者氏名(A1)がファイル名となるものです。 そこで教えて頂きたいのですが、実行すると保存先がマイドキュメントに なるのですが、これを例えば「C:\日報」というフォルダが指定されるようにしたいのですが、 自分なりに、いろいろ試したのですが全くできません。 宜しくお願い致します。 Sub 名前をつけて保存() Dim SaveFileName As String, re As Variant With Sheets("sheet1").Range("A1") If .Value = "" Then MsgBox "名前が入力されていません", vbExclamation Exit Sub Else SaveFileName = Format(Now, "yyyymmdd") & "_" & .Value End If End With re = Application.GetSaveAsFilename(SaveFileName) If re = False Then MsgBox "保存を中止しました", vbExclamation Else MsgBox "日報をを保存しました", vbInformation End If End Sub

  • sub又はfunctionが定義されていない??

    プログラム内容 4たくの問題を乱数で出す(テスト用のPGのため数字にしていますが、実際は文字が入ります) Private Sub Form_Load() Dim Total As Integer Dim mo() As String Dim se_a() As String Dim se_i() As String Dim se_u() As String Dim se_e() As String Dim ka() As String Dim kai() As String Total = 3 ReDim mo(Total) As String ReDim se_a(Total) As String ReDim se_i(Total) As String ReDim se_u(Total) As String ReDim se_e(Total) As String ReDim ka(Total) As String ReDim kai(Total) As String '----------------------- mo(1) = "1 + 1" mo(2) = " 2 + 2" mo(3) = " 3 + 3" '----------------------------- se_a(1) = "2" se_a(2) = " 2" se_a(3) = " 2" se_i(1) = "3" se_i(2) = "3" se_i(3) = "3" se_u(1) = "4" se_u(2) = "4" se_u(3) = "6" se_e(1) = "7" se_e(2) = "5" se_e(3) = "9" '-------------------------- ka(1) = "ア" ka(2) = "ウ" ka(3) = "ウ" kai(1) = "a" kai(2) = "s" kai(3) = "s" '----------- End Sub Private Sub kotae_Click() kaitou.Visible = True End Sub Private Sub next_Click() Dim i As Integer kaitou.Visible = False i = Int(Rnd * Total) + 1 NO.Text = i MONDAI.Text = mo(i) select_a.Text = se_a(i) select_i.Text = se_i(i) select_u.Text = se_u(i) select_e.Text = se_e(i) kaitou.Text = ka(i) End Sub でエラーが出ます。何がおかしいのでしょうか MONDAI.Text = mo(i) にエラーがあるようなのですが・・・。 kai =解説

  • If文中のExit Sub

    Dim i As String i = TextBox1.Value If i ="" Then MsgBox "入力なし" Exit Sub End If Exit Subは何の意味が有るのでしょう? Exit Subを調べたり試したりしたのですが、良く、解りません。 宜しくお願い致します。

  • エクセル・名前を付けて保存するマクロ 不要な文字を消す方法

    お世話になります。 エクセルで「名前をつけて保存」のマクロを作って使用していますが、 一部、改造したいところがあります。 B20セルの文字が自動でファイル名になるようにしています。 「件名:●×商店納品見積書_20090125_1326」という感じなのですが、 最初の「件名:」という文字が不要で、毎回手動で消しています。 しかし、この文字を最初から消しておくわけにはいかず、 マクロ実行時のみ「件名:」が消えるようにしたいのです。 よい方法はありますか? どうぞよろしくお願いします。 Sub ブック保存() Dim SaveFileName As String, re As Variant, WSH As Variant, Path As String Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("Desktop") & "\" With Sheets("見積書").Range("B20") If .Value = "" Then MsgBox "店舗名が入力されていません", vbExclamation Exit Sub Else SaveFileName = Path & .Value & "_" & Format(Now, "yyyymmdd_hhmm") End If End With Set WSH = Nothing re = Application.GetSaveAsFilename(SaveFileName) If re = False Then MsgBox "保存中止", vbExclamation Else ActiveWorkbook.SaveAs SaveFileName MsgBox "保存OK", vbInformation End If End Sub

  • 数値かどうかを取得したい IsNumberではダメ

    Sub Macro2() Dim mystr As String mystr = "1" If IsDate(mystr) = False Then MsgBox "NO" End If End Sub これなら日付型かどうかを取得できるのに、 Sub Macro1() Dim mystr As String mystr = "1" If IsNumber(mystr) = False Then MsgBox "NO" End If End Sub だと、IsNumberがコンパイルエラーになります。 変数に入っている値が数値として評価できるかを取得する方法を教えてください。

  • OKを押してもキャンセルを押しても、反応しない

    このコード、どこが間違ってるか教えてもらえますか? Sub test() Dim ret As Variant ret = InputBox("タイトルを入力してください。") If TypeName(ret) = "Boolean" Then MsgBox "キャンセルが選択されました" End If End Sub これで、キャンセルボタンを押しても、メッセージボックスが表示されません。 間違えてる部分がわかりません。

  • 初歩的な事だと思います。 Sub または Function が定義されていません。

    VBAの本を買ってきて、勉強をしているのですが、テキストに書いてある通り入力しても「Sub または Function が定義されていません。」となってしまいます。 Sub IfSample() Dim intData As Integer intData = clntInputbox("数値を入力して下さい", ("データ入力")) Select Case ingData Case 1 To 10 MsgBox "入力された値は1以上、10以下です" Case 10 To 100 MsgBox "入力された値は10より大きくて、100以下です" Case Else MsgBox "入力された値は100より大きいです。" End Select End Sub 実行すると、エラーがでて、Sub IfSample()が黄色く、 clntInputboxが反転された状態になります。 テキスト通りに入力できているか、なんども確認したのですが、特に間違っていないと思います。どこが悪いのでしょうか?

  • VBA 関数(Function) カッコの後のデータ型は必要?

    Function あ() あ = "あああ" End Function Sub test3() MsgBox あ End Sub と、 Function あ() As String あ = "あああ" End Function Sub test3() MsgBox あ End Sub は同じ動作をするのですがやはり「As String」をつけたほうがいいのですか? ウォッチウインドウで確認すると 「As String」がないほうは「Variant/ String」型ですが あるほうは「String」型のみです。

  • 角カッコが含まれてるかどうかをlikeで取得

    したいのですが、どうやらエラーになるようです。 Sub test() Dim mystr As String mystr = "[test]" If mystr Like "*[*" Then MsgBox "[が含まれます" End If End Sub だと、実行時エラー93 パターン文字列が不正ですになります。 こういうように各カッコが含まれてるかどうかを取得するにはどうすればいいですか?