LoadPicture実行時エラー - 画像の表示ができません

このQ&Aのポイント
  • エクセルのシートに配置したアクティブエックスコントロールのイメージを表示するために、VBAを使用しています。
  • しかし、指定した画像のパスが正しくないか、オブジェクトがサポートしていないため、実行エラーが発生しています。
  • 正しい画像パスを指定するか、別の方法で画像を表示する方法を探してみてください。
回答を見る
  • ベストアンサー

LoadPicture 実行時エラー

エクセルのシートにアクティブエックスコントロールのイメージを1個設置しました。 名前は「Image1」となっており、数式バーには 「=EMBED("Forms.Image.1","")」とはいっています。 このイメージにvbaで画像を表示させたいのですが Sub test() Sheets("Sheet1").Image1.LoadPicture = "D:\My Documents\up\1.jpg" End Sub とすると 実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 と言う実行エラーになります。 画像は存在します。 どこが間違ってるのか教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

worksheets("Sheet1").image1.picture = loadpicture("D:…") のように使います。

aimghjxs2
質問者

お礼

私の使い方が間違ってたようですね。ありがとうございました。

関連するQ&A

  • VBAで実行時エラー1004が出ます

    VBAで実行時エラー1004が出ます。 「Rangeメソッドは失敗しました。Worksheetオブジェクト」です。 あらゆる可能性を調べたのですが、分かりません。誰か教えて頂けますでしょうか? 下記コードの「Cells(m, 7) =・・・」の部分がエラーになりました。 Sub ボタン1_Click() Dim 現シート As Worksheet ~ 現シート.Activate Cells(m, 7) = WorksheetFunction.VLookup(現シート.Range(現シート.Cells(m, 4)).Select, 現シート.Range(現シート.Cells(4, 104), 現シート.Cells(15, 107)).Select, 4, False) ~ End Sub 何卒宜しくお願いいたします。

  • Excel VBA 実行時エラー'1004':

     どちらの処理がより高速であるのかを調べるため、以下の2つのVBAを試作致しました。 Sub Macroコピペ乱数() 'コピペ乱数 Sheets("Sheet4").Select Range("A1:A99999").Formula = "=RAND()" Columns("A").Value = Columns("A").Value Range("B1").Select End Sub 及び Sub Macro繰り返し乱数() '繰り返し乱数 Dim i As Long Randomize Sheets("Sheet4").Select For i = 1 To 99999 Range("A" & i).Value = Rnd Next i Range("B1").Select End Sub  処が、これらのVBAを実際に動作させ様としますと、どちらの場合においても「Microsoft Visual Basic」ダイアログボックスが開いて 「実行時エラー'1004': 'Range'メソッドは失敗しました:'_Global'オブジェクト」 と表示されてしまいます。  さりとて、 Sub Macroコピペ乱数() 'コピペ乱数 Sheets("Sheet4").Select ActiveSheet.Range("A1:A99999").Formula = "=RAND()" Columns("A").Value = Columns("A").Value Range("B1").Select End Sub 及び Sub Macro繰り返し乱数() '繰り返し乱数 Dim i As Long Randomize Sheets("Sheet4").Select For i = 1 To 99999 Range("A" & i).Value = Rnd Next i Range("B1").Select End Sub 或いは Sub Macro繰り返し乱数() '繰り返し乱数 Dim i As Long Randomize Sheets("Sheet4").Select For i = 1 To 99999 Range(Cells(i, 1)).Value = Rnd Next i Range("B1").Select End Sub 等としましても、今度は 「実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです。」 となってしまいます。  どの部分がどの様に悪いのでしょうか?  そして、どの様に修正すれば良いのでしょうか?  尚、使用しておりますExcelのバージョンはExcel2010です。

  • 実行時エラー 2001

    http://officetanaka.net/excel/vba/vbe/05.htm を参考に VBAコードを取得したいのですが Declare Function GetTickCount Lib "kernel32" () As Long Public sampledata As String Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub を実行すると 実行時エラー 2001 'VBProject'メソッドは失敗しました:'_Workbook'オブジェクト が、 Code = ThisWorkbook.~ の行で発生します。 何が間違ってますか?

  • エクセル 実行時エラー 438

    Sheets("シート1").Column("a").Find(What:="検索文字").Row で 実行時エラー 438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 が発生する理由は、セルに検索文字がないからですか? それとも文法が間違っているからですか? Sheets("シート1").Column("a").Find(What:="検索文字").Row だとエラーになるのに、 Sheets("シート1").cells.Find(What:="検索文字").Row これだと検索文字が入ってる行番号を返します。 A列には、検索文字が入っているのに、 .Column("a")だとダメで、.cellsだと問題ない理由は何でしょうか? Column(1)にしてもエラーになります。

  • 実行時エラーで返される値の意味を教えてください。

    VBAで組んだアプリで以下のようなエラーが返されるのですが、 エラーの理由がくみ取れません。 申し訳ありませんが、どのなたかお教えいただけないでしょうか。 実行時エラー 2147220985(80040207) メソッドは失敗しました オブジェクト

  • 実行時エラー

    教えてください。 エクセルを開くと、ボタンがあって、それをクリックするとユーザーフォームが開いて、記入が出来るように作りました。でも、 実行時エラー438 オブジェクトは、このプリパティまたはメソッドをサポートしてません。 とでてしまいます。 Sub ShowForm() UserForm1.Show{←ここが黄色} End Sub なぜでしょうか? 説明不足でしたら補足させていただきますので 宜しくお願いします。

  • エクセルVBAの実行時エラー1004の解決方法

    Private tm As Double Sub Auto_Open() Call 更新 End Sub Sub 更新() Application.Calculate tm = [now()+timevalue("00:00:10")] Application.OnTime tm, "更新" End Sub '===================================================== Sub 更新やめ() Application.OnTime tm, "更新", , False End Sub この様なVBAがあります。 ここで「Sub 更新やめ()」のVBAを何度も実行すると「実行時エラー’1004’:’OnTimeメソッドは失敗しました;’_Application’オブジェクト」と表記されます。 何度も実行しても上記の表示が出ない様にする為のVBAはどの様に改造すれば良いでしょうか?

  • VBAで実行時エラー 1004 がでる

    Excel2013です。以下のコードでエラーがでます。 どのシートがアクティブでもデータを閉じる時に特定のシート(sheet1)のA行の最終行の一つ下をアクティブにし上書き保存して閉じるようにしたいです。 以下記述したコードです。 Sub Auto_Close() Worksheets(1).Activate Range("A60000").End(xlUp).Offset(1).Select 'Aセル60000から最終行のセルの一つ下に下がる ActiveWorkbook.Save End Sub 閉じるときは問題ないのですが、開いたときにエラーがでます。 以下エラー文です。 実行時エラー 1004 'Worksheets'メソッドは失敗しました'_Global'オブジェクト どこを直せばいいのでしょうか? アドバイス願います。

  • エクセルに埋め込んだPDFの実行時エラー1004

    エクセル2000です。 エクセルのBOOK内の非表示のワークシートにPDFドキュメントをアイコンの形で貼り付けてあります。 エクセル2000です。 エクセルで作成した文書のワークシート上に、「挿入」→「オブジェクト」→「ファイルから」で、PDFのドキュメントをアイコンの形で「埋め込みオブジェクト」にしました。 このシートは非表示に設定してあります。 表示されたシートにボタンを設置し、 Sub Test01  Sheets("Sheet3").Shapes("Object 4").OLEFormat.Verb  Sheets("Sheet1").Activate End Sub として、PDFを起動させるようにしています。 これでわたしの端末や近くの同僚の端末(2000および2007)ではボタンを押せばPDFが立ち上がり、ドキュメントを閲覧、印刷(これは手動)ができます。 PDFを閉じるとSheet1に戻ります。 ところが、別の同僚の端末(2000)で試すと、 「実行時エラー1004 このオブジェクトの作成元アプリケーションを起動できません」 というエラーになります。 エラーメッセージの「終了ボタン」を押し、再度ボタンを押してみると、今度はちゃんと立ち上がります。 PDFを閉じてからまたボタンを押すと、同じエラーがでます。 変だと思い、エラーメッセージを終了させタスクバーを見ると、なんとPDFの表示があり、そこをクリックするとちゃんとドキュメントが立ち上がっていました。 どうもエラーメッセージで画面がPDFに切り替わってくれないようです。 Sheets("Sheet3").Shapes("Object 4").OLEFormat.Verbの前にOn Error Resume Nextを入れたところ、エラーメッセージは出なくなりましたが、やはり画面は切り替わりません。 タスクバーにはあるのでそこをクリックすれば見れますが、画面が切り替わらないのは不便です。 どのように対処すればよいのでしょうか?

  • VBA:実行時エラー1004

    VBAにて以下のコードを実行すると実行時エラー1004が出ます。 dim tokuisakicode as string If Not Sheets("sheet2").Range("A" & cnt2).Value = Sheets("sheet2").Range("A" & cnt2 - 1).Value Then  tokuisakicode = Sheets("Sheet2").Cells(cnt2, 1).Value ↓エラーが出る行  Sheets("A").Cells(1, cnt6).Value = tokuisakicode ↑エラーが出る行  cnt2 = cnt2 + 1  cnt6 = cnt6 + 1 Else  cnt2 = cnt2 + 1 End If エラー1004は自分の経験上記述ミスなどのケアレスミスが多いのですが、今回は原因がどうしてもわかりません。 お分かりの方みえたらお教えください。

専門家に質問してみよう