ホーム > ユーザーフォーム > Lesson15: イメージ

イメージ
イメージ イメージ
イメージは、画像を配置できるコントロールです。
表示できるファイルは、bmp、cur、gif、ico、jpg、wmfなど。
イメージ
イメージをユーザーフォームに配置します。オブジェクト名:Image1
イメージコントロール配置
表示する画像を準備。
画像を準備
しげっち、えんどーくん、ぷーちゃんの3つ。ロボたんは、なし。
画像のアドレス
シートに画像のアドレスを用意。

スピンボタンをクリックしたら対応する画像がユーザーフォームに表示されるようにします。
LoadPicture関数を使います。
object.Picture = LoadPicture( イメージファイルのパス名 )

スピンボタンが変わったときなので、SpinButton1_Change。
Private Sub SpinButton1_Change()
  
  TextBox1.Value = SpinButton1.Value
  TextBox2.Value = Cells(SpinButton1.Value + 2, "C")
  imgEntry
  
End Sub


Sub imgEntry()
  
  Image1.Picture = LoadPicture(Cells(SpinButton1.Value + 2, "K"))
  
End Sub

実行結果
2007年9月
イメージ イメージ その2
動くようになったけれど、もう少し追加。
もしも、シートに用意したイメージファイル名を間違っていたら...
ファイルがない
endo.gif を endo と記入してあったとする。
これで実行すると
エラー
表示しようとする前に、Dir関数を使ってファイルが存在するか確認します。
Dir(pathname)

一致するものが見つかった場合は、その名前を返し、
見つからなかった場合は、""を返す関数です。
Sub imgEntry()
  
  If Dir(Cells(SpinButton1.Value + 2, "K").Value) = "" Then
    Image1.Picture = Nothing
  Else
    Image1.Picture = LoadPicture(Cells(SpinButton1.Value + 2, "K"))
  End If
  
End Sub

これを実行すると、ファイルが見つかりませんというエラーはなくなったけれど、
セル(K5)の空欄(イメージファイル名がない)のとき、新たなエラーが発生。
エラー2
Dir関数は、引数(pathname)を指定しないとエラーが発生します。
これを回避するために、Dir関数の前で、pathnameがあるかどうか確認する必要があります。
Sub imgEntry()
  
  If Cells(SpinButton1.Value + 2, "K").Value = "" Then
    Image1.Picture = Nothing
  ElseIf Dir(Cells(SpinButton1.Value + 2, "K").Value) = "" Then
    Image1.Picture = Nothing
  Else
    Image1.Picture = LoadPicture(Cells(SpinButton1.Value + 2, "K"))
  End If
  
End Sub

エラーがなくなりました。
実行結果2
2007年9月