ホーム > VBAこんなとき? > Lesson2: LoadPicture関数で画像を...

LoadPicture関数で画像を...
LoadPicture関数で画像を表示。その画像を移動(削除)してしまったとき出るエラー処理をなくすには? LoadPicture関数で画像を表示。その画像を移動(削除)してしまったとき出るエラー処理をなくすには?
LoadPicture関数を使って画像を表示するプログラムを作った。
ワークシートにImageを配置。それをクリックすると画像が表示されるようにした。
Private Sub Image1_Click()
  Dim imgAddress As String
  
  imgAddress = "C:\VBA\mugi.jpg"
  Image1.Picture = LoadPicture(imgAddress)
End Sub

クリックすると画像(C:\VBA\mugi.jpg)が表示された。
image
表示成功! と思っていたが、後日、
その画像をここで使っていることを忘れて、他の場所に移動させてしまった。
そして、同じようにクリックすると、エラーメッセージが出てしまった。
エラーメッセージ
バグの場所は
バグ
画像ファイル(mugi.jpg)が見つからないので、エラー。
このエラーをなくすには、
Dir関数を使って、指定したファイルまたはフォルダがあるかどうかを確認する。
Dir関数は、一致するファイル、フォルダが見つかったとき、その名前を返す関数。
もし、見つからなかったときは、文字列「""」を返します。
Dir関数とIf Then Elseを使ってエラーが出ないようにしました。
Private Sub Image1_Click()
  Dim imgAddress As String
  
  imgAddress = "C:\VBA\mugi.jpg"
  If Dir(imgAddress) = "" Then
    Image1.Picture = LoadPicture("")
  Else
    Image1.Picture = LoadPicture(imgAddress)
  End If
End Sub

バグ
画像ファイルが見つかったとき、イメージを表示し、
見つからないときは、イメージなし。
エラーが出なくなりました。
2007年1月