EXCEL VBA エクセルシートに写真(画像)を挿入する・写真(画像)を表示・写真(画像)を削除(Picture)

 

 

EXCEL VBA エクセルシートに写真(画像)を挿入する・写真(画像)を表示・写真(画像)を削除(Picture)

 

 

 ●はじめに

社内でマニュアル作成や工事写真などEXCELシートに写真を挿入する事があると思いますが、ここでは、その写真(画像)をエクセルシートにVBAプログラムを利用して挿入する方法を説明いたします。特に写真を複数挿入する場合などは、手動で挿入するよりも、VBAプログラムを利用して写真(画像)を挿入する方が、簡単に挿入する事が出来ます。それでは、サンプルプログラムを交えて順番に説明いたします。

 

 

 ●書式の説明 【Pictures.Insert メソッド

● ワークシートオブジェクト.Pictures.Insert(画像ファイルのフルパス)

●『使用例①』
ActiveSheet.Pictures.Insert(FileName)
 FileName = 画像ファイルのフルパスを指定

※詳しくは、サンプルプログラム①を参照

●『使用例②』

With Sheets(ワークシート名).Pictures.Insert(写真のプルパス)
    .Top = Range(セル番号).Top ‘画像の上位置
    .Left = Range(セル番号).Left ‘画像の左位置
    .Width = Range(セル番号).Width ‘画像の幅位置
    .Height = Range(セル番号).Height ‘画像の高さ位置
End With

※詳しくは、サンプルプログラム②を参照

 

 

●書式の説明 【Pictures.Insert メソッド】の注意点 (画像が表示されない原因・理由・対応方法)

下記【Pictures.Insert メソッド】を利用したサンプルプログラムが①~④までありますが、【Pictures.Insert メソッド】の注意点を説明いたします。

※【Pictures.Insert メソッド】を利用すると次のメッセージが表示される場合があります。『リンクされたイメージを表示できません。ファイルが移動または削除されたか、名前が変更された可能性があります。リンクに正しいファイルう名と場所が指定されていることを確認してください。』とのエラーメッセージが表示が表示される場合があります。詳細は下記を参照して下さい。

【原因・理由】
Pictures.Insert メソッドは、ワークシートに画像(写真)を挿入する事ができますが、ワークシートに挿入と共に、裏で画像のリンク先が登録されます。このリンク先が画像に登録されている状態は、リンク先の画像が別の場所へ移動したり、ファイルが削除されたり、ファイル名が変更するとエラーメッセージが表示されます。


【対応方法】
●図の通りに、Pictures.Insertメゾットで画像(写真)を挿入した場合は、必ず、挿入した画像を切り取り⇒貼り付けをする事で、不具合を解消する事ができます。なお、下記のサンプルプログラムは、全て不具合が発生しない様に、プログラムを作成しています。

 

 

 

 

写真(画像)ファイルをエクセルシートに挿入(画像を貼り付け)

 

 ●プログラム説明 サンプル① Pictures.Insert メソッド

下記のサンプルプログラムは、ワークシートに写真(画像)を挿入するサンプルプログラムですが、フルパスで指定した写真(画像)ファイル(1枚)をワークシートに挿入します。

●プログラム実行条件
ワークシート名を「Sheet1」

 

 

●実行前~実行後 ※プログラム実行後、フルパスで指定した”C:\DATA\写真01.png”から写真を取り込みワークシート「Sheet1」のセル「B2」を写真の左上を基準に挿入しました。
(画面クリックして拡大)

 

 

 

 

指定た画像ファイルを表示位置と大きさ(高さ・幅)を指定して挿入(表示)します。(サイズ調整)

 

●プログラム説明 サンプル② Pictures.Insert メソッド

下記のサンプルプログラムは、サンプルプログラム①同様に、ワークシートに写真(画像)を挿入するサンプルプログラムですが、今回は、ワークシート(Sheet1)のセルB2(サイズ)に収まる様に写真ファイル(1枚)を挿入して、大きさを調整してセル(B2)に挿入します。

●プログラム実行条件(下記のプログラムの実行するためには、必須条件です。)
ワークシート名を「Sheet1」

 

 

 ●実行前~実行後 ※プログラム実行後、指定した写真(”C:\DATA\写真02.png”)から写真をセル(B2)に挿入して、写真のサイズもセル(B2)に収まる様に大きさを調整して挿入されました。
※上記のプログラムは、1つの写真を挿入するプログラムです。下記の実行結果では、別の2種類の写真(縦長写真・横長写真)の結果も含まれています。
(画面クリックして拡大)

 

 

 

指定したフォルダーとファイル名から画像ファイルを連続で取り込む(画像まとめて貼り付け)

 

●プログラム説明 サンプル③ Pictures.Insert メソッド

下記のサンプルプログラムは、指定したフォルダーとファイル名から画像ファイルを連続で取り込むサンプルプログラムです。指定したフォルダー内に、同じような画像ファイルがあるので、このファイルを連続に指定したシートとセル番号へ挿入します。なお、画像ファイルを取り込む際は、挿入するセル(B列)サイズに合わせて画像を挿入します。

●プログラム実行条件(下記のプログラムの実行するためには、必須条件です。)
・ワークシート名を「Sheet1」
・画像のファイル名を「photo01~05」番号は1ずつの連番にする

 

 

  ●実行前~実行後 ※プログラム実行後、指定したフォルダー内の画像ファイルから連続にB列に挿入する事が出来ました。
(画面クリックして拡大)

 

 

 

 

ダイアログボックスが表示して、挿入したい画像ファイルを複数選択してシートに一括挿入(表示)する(画像を選択して貼り付け)

 

●プログラム説明 サンプル④ Pictures.Insert メソッド】 (画像ファイルを複数選択)
下記のサンプルプログラムは、ダイアログボックスが表示されて、画像ファイルを選択して、EXCELシートに画像(写真)ファイルを挿入するサンプルプログラムです。選択した画像ファイルは、シート「Sheet1」のセルB2以降に、複数選択したファイル数に応じて順番に表示されます。
なお、画像ファイルを取り込む際は、セルサイズ(B列)に合わせて挿入されます。

 

 

 

  ●実行前~実行後 ※プログラム実行後、ダイアログボックスが表示されて、画像ファイルを選択します。選択したファイルがシート「Sheet1」の(B列)に選択した画像ファイル分、挿入されました。(画像ファイルを3つ選択したので、シートに画像が3つ表示されました。)
(画面クリックして拡大)

 

 

 

 

アクティブシート内の画像(写真)を全て削除します。

 

●プログラム説明 サンプル⑤  (シート全ての画像を削除)
下記のサンプルプログラムは、アクティブシート内の画像を全て削除するサンプルプログラムです。EXCELシートに複数の画像や写真などが表示されてる場合、一度で全ての画像を削除する事が出来ます。

 

 

 ●実行前~実行後 ※プログラム実行後、アクティブシート上にある全ての画像(写真)がシート上から削除されました。
(画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。