• ベストアンサー

ユーザーフォームに画像を表示

Excel2003のユーザーフォームに関しての質問です。 ユーザーフォームに画像を表示させるコントロールがあるのですが そのコントロールにシート内にある画像を表示させることは可能なのでしょうか。 (フォルダなどにある画像を表示させることは出来ます) もしそのような方法があるのでしたら 簡単なコードなどを教えていただけたらと思います。 よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 私の後に、誰も書いてなかったようで、簡単なものを公開しておきます。Image オブジェクトにわずかに、枠が入ってしまいます。 条件としては、Picture はひとつであることです。複雑なシートの構造の時は、コードを考えて直してください。 Private Sub CommandButton1_Click()   Dim pic As Object   Dim chrt As Chart   Dim wd As Double   Dim ht As Double   With Me.Image1    ht = .Height    wd = .Width    .PictureAlignment = fmPictureAlignmentTopLeft    .PictureSizeMode = fmPictureSizeModeZoom   End With   With ActiveSheet     Set chrt = .ChartObjects.Add(1000, 1000, wd, ht).Chart     .Pictures(1).Copy     chrt.Paste     .ChartObjects(1).Chart.Export "tmp1.jpg", "jpg"      Me.Image1.Picture = LoadPicture("tmp1.jpg")         .ChartObjects(1).Delete     Kill "tmp1.jpg"   End With End Sub

tunan
質問者

お礼

コードまで書いていただきありがとうございます。 基本のコードすら考え付かなかったので助かりました。 あとは、これをもとに少し加工すれば 解決できそうな気がします。 本当にありがとうございました。

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

#3 の回答者です。 >そのコントロールにシート内にある画像を表示させることは可能なのでしょうか。 >(フォルダなどにある画像を表示させることは出来ます) あっ、#3の回答、読み間違えました。すみません。 簡単なコードというところに目がいってしまいました。 一旦、画像をクリップボードに入れて、それを、ChartObject に入れて出力するか、HTMLにして取り出すか、どちらかだったような気がします。Win32APIの場合は、クリップボードから取り出すのかな? しばらくやったことがないのと、需要がないので忘れました。誰の回答をお待ちになってください。 いずれにしても、簡単なコードではなかったと思います。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 初歩的なコードですが、コマンドボタンで選べるように作りました。Image オブジェクトのプロパティの調整などをして、上手に入るようにしてください。 Private Sub CommandButton1_Click() Dim fn As Variant Dim mPath As String  '現在のユーザーのマイピクチャを探す  mPath = CreateObject("Shell.Application").Namespace(&H27).Self.Path  ChDir mPath  fn = Application.GetOpenFilename("画像 (*.jpg; *.gif; *.bmp), *.jpg; *.gif; *.bmp", , "画像の選択")  If VarType(fn) = vbBoolean Or fn = "" Then Exit Sub  '画像呼び出し  Me.Image1.Picture = LoadPicture(fn) End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>フォルダなどにある画像を表示させることは このことは、ファイルになった画像を言っていると思うが、ファイルから画像データを読んで表示するのが基本(前提)のつくり。 >シート内にある画像を表示させることは可能なのでしょうか この意味があいまい。 (1)シート内にある画像でも、挿入したファイル名が判っていれば質問にも値しない。 (2)それ(ファイル名)が判らない (3)(1)(2)以外であれば、質問で言う画像とはどういうものを指すのか。 見えているシート画面の一部とか。その意味をはっきりさせないと答えられないのでは。 ファイルでないものはファイル化(ペイントなどのソフト・特別ソフトを使って)しないとだめと思う。 >簡単なコードなどを教えていただけたらと思います 簡単なはずが無い。APIとかを駆使したりしないとVBAの範囲では無理でしょう。

tunan
質問者

お礼

自分なりに詳しい説明を記載したつもりだったのですが まだまだ説明不足だったみたいで反省しております。 APIというキーワードをもとにもう少し調べなおしてみます。 貴重なご意見ありがとうございました。

  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.1

クリップボードの画像をStdpictureに変換するコード例が 以下のURLに掲載されてますから、これを参考にしてみてください。 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=46923;id=excel

tunan
質問者

お礼

コード自体はよくわからなかったのですが そのまま貼り付けて、分かる範囲で加工したら 目当てのものが出来ました。 自分でも、色々検索してみたのですが そういう情報は見つけられませんでしたので まだまだ検索方法が甘いと再認識させられました。 今回は本当にありがとうございました。

関連するQ&A