【Excel VBA】ボタンを押したら画像を表示する方法


はじめに

「ボタンをクリックしたら目当ての画像が表示される」
 そんなことができたら役に立つと思いませんか?
 例えば
 ・名前(アイテムコード)はわかるけど、形が分からないから目当てのものが見つけられない。
 ・どんな形状か伝えたいけど説明が難しい
 ・仕事にまだ慣れていないけど早いうちに部品の形状を覚えたい。
等々の問題を解決させるために役立てるかと思います。


こちらの記事での完成図は
A2セルに文字を入力
コマンドボタンをクリック
保存している”A2セル”.jpgがイメージに表示される。

というものになります。


手順①:画像を準備する

まず、表示したい画像ファイルをパソコンに保存しておきます。
どの様な場で使用するかによってファイルの保存名は変わると思いますので
好きなようにカスタマイズしてください。
一般的にはアイテムコード(5桁)で管理されている場合が多いかと思います。

仮でデスクトップにサンプルフォルダを作成し
中に”10001″、”10002″という名前のjpgファイルを保存します。
保存先のパスが分からないという方は作成されたフォルダを開き、
下の画像の赤枠辺りをクリックすると\\で囲まれた名称が表示されます。
それがフォルダのパスです。

ひとまずこれで準備が完了しました。


手順②:画像を表示させる為のスペース、ボタンを設置する。

Excelを開く。(マクロを使うために事前に拡張子を.xlsmにしておくとよいです。)
 開発タブ → [挿入] → [ActiveXコントロール] → [イメージ] を選択しシート内に設置。
 同様の流れで、ActiveXコントロールの[コマンドボタン]を選択肢し設置。
 設置場所はお好きなところで大丈夫です!

手順③:VBAコードを記述してみよう。

先程設置したコマンドボタンをダブルクリックすると下の画像の様に出てきます。
これはコマンドボタンをクリックしたら中のコードが走る状態になっています。
今回はこの中に下記のコードを入れてあげることで、必要な画像を表示させられる
ようにしていきましょう!
以下にコードがありますので記述してみてください。

Private Sub CommandButton1_Click()

    Dim imgPath As String
    Dim fileName As String
    Dim folderPath As String
    
    '画像があるフォルダ
    folderPath = "C:\test\images\"  '←画像を保存しているフォルダ名を選択
    
    'セルA2の値 + .jpg
    fileName = Range("A2").Value & ".jpg"
    
    'imgPathにフルパスが入るようにする。
    imgPath = folderPath & fileName
    
    'ファイルチェック
    If Dir(imgPath) = "" Then
        MsgBox "画像が見つかりません:" & vbCrLf & imgPath
        Exit Sub
    End If
    
    '画像を表示
    Image1.Picture = LoadPicture(imgPath)

End Sub

✅ ポイント解説

ポイント説明
Dir(imgPath)ファイルの存在確認
LoadPicture画像を読み込む関数
Image1ActiveX イメージコントロール名


✅ フォルダパスを変数にすると便利

フォルダパスは変数に入れておくことで可読性編集のしやすさが格段に向上します。
他のことでも応用できますのでフォルダパスを扱う際には是非使ってみてください。


🎯 動作例

セルA2画像ファイル名表示
1000110001.jpg表示される
1000210002.jpg表示される
9999999999.jpg が無い「画像が見つかりません」

この様な感じになります、では実際に画像を表示させてみましょう。

A2セルに10001と入力し、コマンドボタンをクリックして画像をドン!

・・・。
めちゃくちゃちっちゃい当ブログのアイコンが出てきてしまいましたね(汗
そう、イメージサイズの調整を行わないとこの様に枠に合わないサイズの画像が召喚されてしまいます。

これを解消するためにコードを追加することも可能ですが
Image1のオプションから調整することもできます!


画像サイズを調整する。

では早速画像のサイズ調整へと移りましょう。
まず、開発タブのデザインモードを押下します。
これを選択した状態でないとイメージを移動させたり編集することができません。

デザインモードの状態でイメージを右クリックし、プロパティを選択すると
プロパティ画面が表示されます。

そしたらプロパティ画面にある
Picture Size Mode 0-fmPicture Size Mode Clip を押し
1-fmPictureSizeMode tretch に変更します。


すると見てもらったら分かる通り画像が ギュンッ と拡大されます。
雑に準備したせいでものすごい荒い画像ですが一旦目的は達成ですね・・・。

イメージのサイズを変更すればそれに合わせて画像も拡大縮小されるので
この機能は覚えておくと便利かもしれませんね!


終わり


今回は基礎的な画像の表示を記事にさせていただきました。

これを見て更にいい使い方を閃いてくださる方がいたら幸いです。
アイテムコードで物を管理されている会社はたくさんあるとおもいます。

最初の方でも書かせてもらっていますが
新卒や中途入社で現場のことがわからない状態の方には特に有用なものではないかと思います。
是非ご活用ください。

アイテムコードを打ち込んで画像を表示させることで
アイテムコードと商品(部品)を一致させることが通常よりも早くできるので
最近作ったばかりですが新卒、中途で入ったばかりの方に指導する際に重宝してます。

次回はここからもう一つ応用チックな記事の作成を予定しております。
また見ていただけると嬉しいです。

コメント

タイトルとURLをコピーしました