教えて!ExcelVBA!

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

【ExcelVBA フォーム&コントロール】[ファイルを開く]ダイアログボックスで指定した画像ファイルをイメージに表示する方法を教えて!

構文

構文は以下の通りです。

Private Sub CommandButton1_Click()
    Dim myFilePath As String
    ' ファイルを選択するダイアログボックスを表示
    myFilePath = Application.GetOpenFilename()
    ' ファイルが選択された場合
    If myFilePath <> "False" Then
        Image1.Picture = LoadPicture(myFilePath)
    End If
End Sub

解説

上記の構文では、Application.GetOpenFilenameメソッドを使用して、画像ファイルを選択できるダイアログボックスを表示しています。また、選択した画像ファイルのファイルパスを変数:myFilePathに代入しています。変数:myFilePathにファイルパス(文字列)がセットされた場合は、LoadPicture関数を使用してイメージに画像を設定します。イメージに画像ファイルを設定するにはPictureプロパティを使用します。

使い方

具体的な使い方を紹介します。

Private Sub CommandButton1_Click()
    Dim myFilePath  As String
    ' ファイルを選択するダイアログボックスを表示
    myFilePath  = Application.GetOpenFilename("画像ファイル (*.jpg; *.jpeg; *.png), *.jpg; *.jpeg; *.png")
    ' ファイルが選択された場合
    If myFilePath  <> "False" Then
        ' Imageコントロールに画像を表示
        Me.Image1.Picture = LoadPicture(myFilePath )
    End If
End Sub

この例では、ボタンがクリックされたときに、ダイアログボックスで選択された画像ファイル(ここではjpg、jpeg、png)をフォーム内のImageコントロールに表示します。

プログラミング例

以下に、プログラミング例を紹介します。

1.画像のサイズ変更

Private Sub CommandButton1_Click()
    Dim myFilePath As String
    ' ファイルを選択するダイアログボックスを表示
    myFilePath = Application.GetOpenFilename("画像ファイル (*.jpg; *.jpeg; *.png), *.jpg; *.jpeg; *.png")
    ' ファイルが選択された場合
    If myFilePath <> "False" Then
        ' Imageコントロールに画像を表示
        Me.Image1.Picture = LoadPicture(myFilePath)
        ' 画像の幅と高さを変更(例: 幅を200に、高さを150に)
        Me.Image1.Width = 200
        Me.Image1.Height = 150
    End If
End Sub

2.画像の位置移動

Private Sub CommandButton1_Click()
    Dim myFilePath As String
    ' ファイルを選択するダイアログボックスを表示
    myFilePath = Application.GetOpenFilename("画像ファイル (*.jpg; *.jpeg; *.png), *.jpg; *.jpeg; *.png")
    ' ファイルが選択された場合
    If myFilePath <> "False" Then
        ' Imageコントロールに画像を表示
        Me.Image1.Picture = LoadPicture(myFilePath)
        ' 画像の位置を変更(例: 左上隅から10ポイント右下に移動)
        Me.Image1.Left = Me.Image1.Left + 10
        Me.Image1.Top = Me.Image1.Top + 10
    End If
End Sub

まとめ

イメージに画像ファイルを設定するにはPictureプロパティを使用し、LoadPicture関数を使用して設定する点がポイントです。是非活用してください。