• ベストアンサー

コントロールの挿入と同時に画像を表示する方法

アクティブエックスコントロールのイメージコントロールの設置と同時に、 画像をそのコントロールに表示するvbaを作ってるのですが、 実行時エラー438が発生します。 Sub test() Dim objOLE As OLEObject Set objOLE = ActiveSheet.OLEObjects.Add("Forms.Image.1") With objOLE .Name = "Image" .Picture = LoadPicture("C:\1.gif") End With End Sub C:\1.gifのパスをブラウザで表示させることはできるので、ファイルは存在しているし、 パスは間違っていません。 .Picture = LoadPicture("C:\1.gif") をコメントアウトすれば正常にコントロールが挿入されます。 コントロールの挿入と同時に画像を表示する方法を教えてください。 ご回答よろしくお願いします。

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

 そのままだとpictureプロパティが存在しないので .object.Picture = LoadPicture("C:\1.gif") とすればloadできます。  なぜかは知りません。

phnqsjgqnbfat
質問者

お礼

ありがとうございます。

関連するQ&A

  • イメージコントロールに画像をセット

    イメージコントロールに画像をセットしたいのですが、下記ではうまく動きません。 どうしたらよいでしょうか。 Private Sub Workbook_Open() ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ DisplayAsIcon:=False, Left:=137.25, Top:=20.25, Width:=270, Height:= _ 154.5).Select Worksheets("Sheet1").Image1.Picture = LoadPicture("D:\My doc\My Pictures\11.jpg") End Sub

  • VBAでフォームに画像を表示したい

    ExcelVBAでフォームに画像を表示したいのですが Private Sub CommandButton1_Click() Image2.Picture = LoadPicture("A3") End Sub セルA3に"C:\デスクトップ\A\A\a-1\A-01.jpg"が入力されています。 ファイルがありません。とエラーがでます。 下記ではうまく表示されます。 Image2.Picture = LoadPicture("C:\デスクトップ\A\A\a-1\A-01.jpg") 何がよくないのでしょうか? よろしくお願い致します。

  • VB6のイメージコントロールでURLの画像を表示

    VB6のイメージコントロール、またはピクチャーコントロールで URLの画像を表示したいです。 ローカルに一度保存してLoadPicture関数を使うことでできそう ですが、ローカルに保存せずに表示することは可能でしょうか?

  • 挿入した画像を等倍ではなく、サイズを指定したい

    Sub Macro1() ActiveSheet.Pictures.Insert( _ "C:\Users\画像.gif").Select With Selection.ShapeRange .ScaleWidth 1, msoFalse, msoScaleFromTopLeft .ScaleHeight 1, msoFalse, msoScaleFromTopLeft End With End Sub これで画像を挿入し、サイズを変更してるのですが 1だと等倍になってしまうようです。 常に1cmとか、サイズを指定して変更するプロパティはありますか?

  • Ecel 2003 VBA 画像 挿入

    質問させて頂きます。 現在、UserForm内にあるComboBoxで値を入力した後commandbuttonを押すと別UserFormを開き画像を表示させるコードを記述しています。結果的に実現は出来たのですが問題が一つ有ります。 ExcelFileを起動してUserForm内ComboBoxで値を入力した後commandbuttonを押すと一度目は表示されません。 もう一度押すと表示されます。 因みに主観ですがPCのスペックは関係ないと思います。スペックの良い別のPCでも試しましたが同様の結果でした。 現在記述しているコードは下記になります。 Private Sub tBok_Click() Call tsurigutenpo End Sub Public Sub tsurigutenpo() If tsuri.sityoson.Value = "文字列" And tsuri.tenpo.Value = "文字列" Then Call u_yone ElseIf tsuri.sityoson.Value = "文字列" And tsuri.tenpo.Value = "文字列" Then Call u_step End If End Sub Public Sub u_yone() t_Tuy.Show 'UserForm表示 t_Tuy.Image1.Picture = LoadPicture("パス") End Sub Public Sub u_step() t_Tuf.Show 'UserForm表示 t_Tuf.Image1.Picture = LoadPicture("パス") End Sub

  • Excelの既存シートへの写真自動貼付け

    With ActiveSheet.OLEObjects("Image" & i) .Object.PictureSizeMode = 3 .Object.Picture = LoadPicture(myDir & myFile) ・・・のようなimage等を使わず、単純に貼りつけるだけのプログラムを教えて下さい。  具体的にはエクセルの挿入で貼りつけた図1~n の写真を得ることです。

  • VBAで画像を表示する方法

    VBA初心者です。ExcelのVBAでプログラミングの練習をしています。 早速ですが質問させてください。 ユーザーフォーム上にコマンドボタンをクリックすることにより画像を表示させることはできるのですが、これをユーザーフォームを開いた瞬間に自動的に表示させる方法はないのでしょうか? ちなみに現在は以下のようにしています。 Private Sub CommandButton1_Click() Image1.Picture = LoadPicture(" ") End Sub インターネットで調べてみても見つからないので質問させてもらいました。分かりにくい説明でしたらすみません。

  • 挿入されている画像をクリアする(VB.2003)

    VB.NET2003 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'ピクチャーボックス1~2のイメージをクリア For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2} picBox.Image = Nothing Next 'ピクチャーボックス3~4にイメージを設定 PictureBox3.Image = Image.FromFile("C:\image03.jpg") PictureBox4.Image = Image.FromFile("C:\image04.jpg") End Sub Private Sub PictureBox3to4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click, PictureBox4.Click For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2} If picBox.Image Is Nothing Then picBox.Image = sender.Image Exit Sub End If Next End Sub 上記は、ピクチャーボックス3~4のどれかが押されるとピクチャーボックス1に押された画像が挿入され、 次にピクチャーボックス3~4のどれかが押されると次はピクチャーボックス2に押された画像が挿入されるプログラムなのですが、 ボタン1を押すと、元に戻す「ピクチャーボックス1、2に挿入されている画像があればクリアする」プログラムを 作りたいのですが、サッパリ分かりません。 どなたかご教授願います┏○

  • 画像のランダム表示

    初心者なのですがVisual Studio6.0でもぐらたたきゲームを利用した作品を現在制作しています。内容は決まった画像がランダムでImageコントロールに表示され、それをクリックできると画像が変わり得点加算、クリックできないと画像が変わり減点というゲームです。現在Imageコントロールに決まった画像を呼び出す処理が完成しました。そして追加機能としてクリックできたらボーナスポイントの画像をImageコントロールに何分の何かの確率で表示させたいのですがわからない状態です。ちなみに画像は私のパソコンのDドライブから呼び出して表示させています。 どういった命令文を打ったら良いのかわかる方教えて下さい。宜しくお願いします。 こちらがプログラムです。 Option Explicit Const MinImgAry = 0 Const MaxImgAry = 15 Const GameTime = 15 Dim HitFlg As Integer Dim TEN As Integer Dim HoleNum As Integer Dim IconAry(2) As String Private Sub Command1_Click() Command1.Enabled = False Option1.Enabled = False Option2.Enabled = False Option3.Enabled = False HitFlg = 0 TEN = 0 Text1.Text = Str(TEN) Timer1.Enabled = True Timer2.Enabled = True End Sub Private Sub Command2_Click() Form1.Show End Sub Private Sub Form_Load() Dim StrPath As String StrPath = App.Path If Right(StrPath, 1) <> "\" Then StrPath = StrPath + "\" End If IconAry(0) = "D:制作\5\画像1.bmp" IconAry(1) = "D:制作\5\画像2.bmp" IconAry(2) = "D:制作\5\画像3.bmp" End Sub Private Sub Image1_Click(Index As Integer) Image1(Index).Enabled = False HitFlg = -1 End Sub Private Sub Option1_Click() Timer1.Interval = 1000 End Sub Private Sub Option2_Click() Timer1.Interval = 800 End Sub Private Sub Option3_Click() Timer1.Interval = 500 End Sub Private Sub Timer1_Timer() Static CtlFlg As Integer Select Case CtlFlg Case 0 Image1(HoleNum).Enabled = False Image1(HoleNum).Visible = False HoleNum = Int((MaxImgAry - _ MinImgAry + 1) * Rnd + MinImgAry) Image1(HoleNum).Picture = _ LoadPicture(IconAry(0)) CtlFlg = 1 Image1(HoleNum).Visible = True Image1(HoleNum).Enabled = True Exit Sub Case 1 Image1(HoleNum).Enabled = False If HitFlg Then HitFlg = 0 Image1(HoleNum).Picture = _ LoadPicture(IconAry(2)) TEN = TEN + 1 Text1.Text = Str(TEN) Else Image1(HoleNum).Picture = _ LoadPicture(IconAry(1)) TEN = TEN - 1 Text1.Text = Str(TEN) End If CtlFlg = 0 Exit Sub End Select End Sub Private Sub Timer2_Timer() Static TimeCnt As Long TimeCnt = TimeCnt + 1 If TimeCnt <> GameTime Then Exit Sub End If Timer1.Enabled = False Timer2.Enabled = False MsgBox "おしまい" TimeCnt = 0 Command1.Enabled = True Image1(HoleNum).Enabled = False Image1(HoleNum).Visible = False Option1.Enabled = True Option2.Enabled = True Option3.Enabled = True End Sub

  • サンプルプログラムでエラーが出てしまいます、対処法を教えて下さい。

    Sub test写真の連続挿入()   Dim myDir As String   Dim myFile As String   Dim i As Integer   Dim n As Integer   n = 10   myDir = "D:\写真\" myFile = Dir(myDir, vbNormal)   Application.ScreenUpdating = False   Do Until myFile = ""   If myFile <> "." And myFile <> ".." Then   If (GetAttr(myDir & myFile) And 16) <> 16 Then   i = i + 1   With ActiveSheet.OLEObjects("Image" & i)    .Object.PictureSizeMode = 3    .Object.Picture = LoadPicture(myDir &myFile)   End With   If i = n Then Exit Do   End If   End If   myFile = Dir   Loop   Application.ScreenUpdating = True End Sub このWith ActiveSheet.OLEObjects("Image" & i)の行でエラーが出てしまいます、対処法を教えて下さい。( 実行時エラー'1004'OLEObjects プロパティを取得できません)

専門家に質問してみよう