この記事では、フォーム上にあるListboxに表示された画像ファイル名をクリックしてその画像を表示させる方法についてご説明します。
【動画】フォーム上にあるListboxに表示された画像ファイル名をクリックしてその画像を表示させる実際の動き
本題に入る前に、まずは次の動画をご覧ください。
Listboxをクリックすると、選択した行の画像ファイルのフルパスを元に、Imageコントロールに画像が表示されます。
Excelファイルのフォームの例
今回は以下のExcelファイルのフォームを用意しました。
画像を表示させるImageコントロールと、画像ファイルのフルパスが表示されたListboxがフォーム上に設置されています。
Listboxに表示された画像ファイルのフルパスのセルを選択するとImageコントロールにその画像が表示されます。
マクロ作成の流れ
コードの例
Option Explicit Private Sub listbox1_Click() 'listboxから選択された画像ファイルのフルパスをLoadPictureの引数に指定して実行し、Imageコントロールに画像を表示させる Image1.Picture = LoadPicture(listbox1.List(listbox1.ListIndex, 1)) End Sub
コードの説明
以上のコードは、listboxから選択された画像ファイルのフルパスをLoadPictureの引数に指定して実行し、Imageコントロールに画像を表示させる処理のコードです。
今回用意したlistboxには2列目に画像ファイルのフルパスを出力させています。
listboxには2列目の値を取得するには、Listプロパティの2つの引数に1を指定します。(0は1列目になります)
Listプロパティの1つ目の引数は行位置を指定します。0なら1行目、1なら2行目になります。
ListBox1.List(ListBox1.ListIndex, 1)は、選択された行の2列目の値を返すので、選択した画像ファイルのフルパスを取得することができます。
選択した画像ファイルのフルパスを取得することができるので、LoadPictureメソッドに選択した画像ファイルのフルパスが選択されます。
LoadPictureメソッドが実行されると、ImageコントロールのPictureプロパティに設定されてImageコントロールに画像が表示されます。
動作確認
マクロ実行前
画像を表示させる前の状態です。
マクロ実行後
Imageコントロールに画像が表示されました。
【注意】参照設定が必要です
一つ注意点があるのですが、先ほどのコードを動かすには参照設定が必要です。
参照設定の一覧(下の画像を参考)から次の項目(ライブラリ)にチェックを付けて「OK」ボタンをクリックします。
- OLE Automation(stdole2.tlb)
なぜ必要かというと、LoadPictureメソッドを実行するのに「OLE Automation」を参照するからです。
この参照設定をしないと下の画像のエラーが出ますので必ず行う必要があります。
LoadPictureメソッドを使ってImageコントロールに画像を表示させたいときは「OLE Automation」の参照設定を忘れないようにしましょう。
最後に
この記事では、フォーム上にあるListboxに表示された画像ファイル名をクリックしてその画像を表示させる方法についてご説明しました。
フォーム上にあるListboxに表示された画像ファイル名をクリックしてその画像を表示させたいときには本記事を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。