教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAで[ファイルを開く]ダイアログボックスにて指定した画像ファイルをフォーム内イメージに表示する方法

構文

構文は以下の通りです。

Dim 変数名 As String
変数名 = Application.GetOpenFilename()
If 変数名 <> "False" Then
    イメージ名.Picture = LoadPicture(変数名)
End If

解説

Application.GetOpenFilenameは、「ファイルを開く」ダイアログボックスを表示し、ユーザーが選択したファイルのパスを取得します。フィルターを指定して、画像ファイル(JPEG, PNGなど)のみを表示することができます。If 変数名 <> "False" Thenは、ユーザーがキャンセルを押した場合、GetOpenFilenameは"False"を返すため、ファイルが選択されたかどうかを確認します。イメージ名.Picture = LoadPicture(変数名)は、フォーム内のイメージコントロールに画像を表示します。LoadPicture関数は指定したファイルを読み込みます。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub 画像表示ボタン_Click()
    Dim ファイルパス As String
    ' ファイルを開くダイアログを表示して、選択したファイルのパスを取得
    ファイルパス = Application.GetOpenFilename()
    ' ファイルが選択された場合
    If ファイルパス <> "False" Then
        ' 選択した画像をイメージコントロールに表示
        画像イメージ.Picture = LoadPicture(ファイルパス)
    Else
        ' 画像が選択されなかった場合の処理
        MsgBox "ファイルが選択されませんでした。"
    End If
End Sub

上記のプログラムは、Application.GetOpenFilenameでファイル選択ダイアログを表示し、選択された画像のパスを取得します。LoadPictureは、選択された画像ファイルを読み込み、フォームのイメージコントロールに表示します。

まとめ

Application.GetOpenFilenameを使ってファイルを選び、LoadPictureでそのファイルをフォームに表示するという手順を説明しました。