フォームに画像を表示するにはどうするの?
動画でExcel フォームに画像を表示するにはどうするの?
フォームに画像を表示する、Imageコントロールの使い方
動画版「ユーザーフォーム講座」です。
今回はユーザーフォームに画像を表示するケースを考えていきます。
ユーザーフォームに画像を表示するといっても
ユーザーフォームの土台となるフォームに表示するのではなくて
イメージコントロールという画像専用のコントロールがあるので
それを使って表示するという内容です。
マクロ動画 フォームに画像を表示するにはどうするの?
フォームに画像を表示する
フォームに画像を表示するとフォームの印象はどのように変わるでしょうか?
基本的には同じユーザーフォームですが、画像があるとないとでは印象が違います。
では、フォームに画像を表示するためのImageコントロールはどのように配置して、どんなコードを書けばよいのかを紹介します。
ツールボックスからImageコントロールを選択して、Formの上で、左上にしたいポイントをクリックして、右下の位置でクリックするとImageコントロールが挿入されます。
サイズはドラッグして調整することができます。
画像が固定でいいのなら、Imageコントロールのプロパティから、Pictureを指定することができます。
Pictureプロパティの右にあるボタンをクリックして画像を指定します。
指定できる画像は、ビットマップ(*.bmp, *.dib)、GIFイメージ(*.gif)、JPEGイメージ(*.jpg)、メタファイル(*.wmf, *.emf)
アイコン(*.ico, *.cur)です。
フォームに画像が表示されました。Imageコントロールのサイズを調整しても、画像サイズは変更されません。
画像は予めサイズをフリーソフトなどを使って変更しておくと良いです。
UserForm_Initializeで起動時に画像を読み込む
Pictureプロパティに直接画像アドレスを入力するのでは、変更などが大変ですから、 UserForm_Initializeで画像を表示するようにコードを書くこともできます。
Private Sub UserForm_Initialize() Dim imgpath As String imgpath = ThisWorkbook.Path & "\img\sf_001.jpg" Image1.Picture = LoadPicture(imgpath) End Sub
画像のおさまりが悪い時は、予め画像のサイズを調整しておくか、 もしImageコントロールのサイズを変更できるなら、サイズを変更することで調節することもできます。
Imageコントロールのサイズを変更して、フォームを起動しました。
読書目録に画像を表示してみる
さて、もう少し実用的な画像表示の例を紹介しましょう。
こちらのフォームは、ユーザーフォーム基礎編の3回で使用した読書記録を作成するフォームです。
そのフォームに本の表紙画像を表示させてみましょう。
ユーザーフォームを起動し、画像名を入力します。この時拡張子は要りません。 コードの方で拡張子を追加するように書いています。表示ボタンで画像を表示します。
上記のコードが以下になります。画像があるフォルダの場所は、使用する環境で変更する必要があります。
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