フォームに画像を表示するにはどうするの?

ユーザーフォーム講座 動画編 14回
フォームに画像を表示するにはどうするの?

動画でExcel フォームに画像を表示するにはどうするの?

フォームに画像を表示する、Imageコントロールの使い方

動画版「ユーザーフォーム講座」です。 今回はユーザーフォームに画像を表示するケースを考えていきます。
ユーザーフォームに画像を表示するといっても ユーザーフォームの土台となるフォームに表示するのではなくて イメージコントロールという画像専用のコントロールがあるので それを使って表示するという内容です。

マクロ動画 フォームに画像を表示するにはどうするの?

フォームに画像を表示する

フォームに画像を表示するとフォームの印象はどのように変わるでしょうか?
基本的には同じユーザーフォームですが、画像があるとないとでは印象が違います。

NAMAE1

では、フォームに画像を表示するためのImageコントロールはどのように配置して、どんなコードを書けばよいのかを紹介します。

NAMAE2

ツールボックスからImageコントロールを選択して、Formの上で、左上にしたいポイントをクリックして、右下の位置でクリックするとImageコントロールが挿入されます。
サイズはドラッグして調整することができます。

NAMAE3

画像が固定でいいのなら、Imageコントロールのプロパティから、Pictureを指定することができます。

NAMAE4

Pictureプロパティの右にあるボタンをクリックして画像を指定します。
指定できる画像は、ビットマップ(*.bmp, *.dib)、GIFイメージ(*.gif)、JPEGイメージ(*.jpg)、メタファイル(*.wmf, *.emf) アイコン(*.ico, *.cur)です。

NAMAE5

フォームに画像が表示されました。Imageコントロールのサイズを調整しても、画像サイズは変更されません。
画像は予めサイズをフリーソフトなどを使って変更しておくと良いです。

NAMAE6

UserForm_Initializeで起動時に画像を読み込む

Pictureプロパティに直接画像アドレスを入力するのでは、変更などが大変ですから、 UserForm_Initializeで画像を表示するようにコードを書くこともできます。

NAMAE7
Private Sub UserForm_Initialize()
     Dim imgpath As String
     imgpath = ThisWorkbook.Path & "\img\sf_001.jpg"
     Image1.Picture = LoadPicture(imgpath)
 End Sub

画像のおさまりが悪い時は、予め画像のサイズを調整しておくか、 もしImageコントロールのサイズを変更できるなら、サイズを変更することで調節することもできます。

NAMAE8

Imageコントロールのサイズを変更して、フォームを起動しました。

NAMAE9

読書目録に画像を表示してみる

さて、もう少し実用的な画像表示の例を紹介しましょう。
こちらのフォームは、ユーザーフォーム基礎編の3回で使用した読書記録を作成するフォームです。
そのフォームに本の表紙画像を表示させてみましょう。

NAMAE10

ユーザーフォームを起動し、画像名を入力します。この時拡張子は要りません。 コードの方で拡張子を追加するように書いています。表示ボタンで画像を表示します。

NAMAE11

上記のコードが以下になります。画像があるフォルダの場所は、使用する環境で変更する必要があります。

NAMAE12
     Private Sub btn_show_Click()
     If Not txt_imagename.Text = "" Then
      Dim imgname As String
      imgname = ThisWorkbook.Path & "\img\re\" & _
      txt_imagename.Text & ".jpg"
      Image1.Picture = LoadPicture(imgname)
   End If
  End Sub