
エクセルシートの左上にロゴ画像を入れることになった…。
毎回画像を挿入するのはめんどうだから、マクロでササっとできない?

なるほど…。
では今回は、「エクセルに写真(画像)を挿入するボタンの作り方」を
VBAマクロ歴3年の私が、できるだけわかりやすく解説いたします。
エクセルに写真を挿入するボタンの作り方【VBAマクロ】
手順は以下のとおりです。
- マクロの作成
- ボタンの作成・マクロの登録
ではまずマクロを作成しましょう。
マクロの作成
マクロのVBAコードをお見せします。
解説は後ほど行います。
全コード
Sub 特定の写真を挿入()
Dim ws As Worksheet
Dim imgPath As String
Set ws = ActiveSheet
imgPath = "C:\Utatane\utatane.jpg"
Set img = ws.Pictures.Insert(imgPath)
End Sub
実行見本

解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
プロシージャの作成
Sub 特定の写真を挿入()
End Sub
プロシージャなどマクロ作成の基礎は下記記事にて解説しております。
変数の宣言
Dim ws As Worksheet
Dim imgPath As String
上記コードにて、以降使用する変数の宣言をしています。
変数や宣言については、下記記事をご参考ください。
挿入するシートを選択
Set ws = ActiveSheet
上記コードにて、画像を挿入するシートを選択しております。
今回はアクティブシート(ActiveSheet)を選択しておりますが、特定のシートに挿入させたい場合は、下記の通り変更してください。
Set ws = ThisWorkbook.Sheets("Sheet1") 'Sheet1を選択
写真(画像)ファイルを指定
imgPath = "C:\Utatane\utatane.jpg"
上記コードにて、挿入する画像ファイルを指定しています。
右辺にファイルパス(フォルダパス\ファイル名)を指定してください。
今回は、「Cドライブ」の「Utatane」というフォルダ内にある「utatane.jpg」というファイルを指定しています。
写真(画像)の挿入
Set img = ws.Pictures.Insert(imgPath)
上記コードにて、(コード6行目で指定した)画像を挿入しています。
これでマクロは完成です。
マクロが作成できたら、次はボタンの作成に移りましょう。
ボタンの作成・マクロの登録
ではボタンを作成しましょう。
手順は以下のとおりです。
- エクセル画面に移行する
- 「開発」→「挿入」から「フォームコントロールボタン」を選択
- 設置したいセル周辺をクリック
- 「マクロの登録」画面で作成したマクロを選択
詳しくは下記記事で解説しております。ご参考ください。
ボタンの作成とマクロの登録ができたら、ボタンを押して正常に実行されるか確認してみましょう。
さて、「毎回同じ画像ではなく、違う画像を挿入したい」ということもあるかと思います。
そんなときのために、「ボタンを押したら画像を選択するためのフォルダが開く」というマクロがあったら便利ですよね?
次項でコードを紹介いたします。
画像を挿入するためにフォルダを開くマクロ
Sub 画像挿入フォルダを開く()
Dim ws As Worksheet
Dim pic As Picture
Dim filePath As String
Set ws = ActiveSheet
filePath = Application.GetOpenFilename("画像ファイル,*.jpg;*.png;*.bmp")
If filePath = "False" Then Exit Sub
Set pic = ws.Pictures.Insert(filePath)
End Sub

8~11行目をピックアップして解説いたします。
filePath = Application.GetOpenFilename("画像ファイル,*.jpg;*.png;*.bmp")
If filePath = "False" Then Exit Sub
Set pic = ws.Pictures.Insert(filePath)
- 8行目:画像挿入フォルダを開く(エクセルの「挿入→画像」と同じ)
- 9行目:画像挿入をキャンセルした場合、マクロを終了
- 11行目:選択された画像を挿入
8行目で開くフォルダですが、前回開いたフォルダが選択されます。

最初はドキュメントやピクチャが選択されていますので、任意のフォルダに移動し、挿入したい画像を選択してください。
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
VBAマクロを使って、写真(画像)を挿入するボタンの作り方を解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!