ExcelVBA Pictureで画像を操作する作業を自動化で作業効率をあげる

 

Excelのシート上で、画像を挿入・操作・加工する作業を自動化します。これにより、レポートや資料に必要な画像の管理が簡単になり、作業効率が向上します。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA 画像を挿入・操作・加工する作業を自動化するシーン

以下のようなシーンで利用で表示します。

1.レポート作成
シート内にロゴやグラフ画像を一括で挿入する。

2.大量データの可視化
複数の画像を一括で配置し、サイズや位置を整える。

3.資料の自動更新
外部画像をリンクして定期的に更新する。

Excel VBA 画像を挿入・操作・加工する作業を自動化|使い方とポイント

使い方

1.画像を挿入する
VBAコードで指定したファイルパスから画像を挿入します。

2.画像を操作する
サイズ変更、位置調整、名前変更などの操作が可能です。

3.画像を削除する
指定した画像を削除して更新や修正ができます。

ポイント

1.ファイルパスの確認
挿入する画像のパスが正しいことを確認してください。

2.画像サイズ
挿入後の画像サイズが大きすぎると、シートが見づらくなる可能性があります。

3.既存画像との重複
同じ位置に画像が重複しないよう注意しましょう。

4.パフォーマンス
大量の画像操作は処理速度に影響する可能性があります。

 

Excel VBA  画像を挿入・操作・加工する作業を自動化のサンプルコード

画像を指定位置に挿入

Option Explicit

Sub InsertImage()
    Dim ws As Worksheet
    Dim imgPath As String
    Dim img As Shape

    ' 挿入先のシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ' 画像のパスを指定
    imgPath = "C:\Users\User\Desktop\新しいフォルダー\Sample.png"
    
    ' 画像を挿入
    Set img = ws.Shapes.AddPicture(Filename:=imgPath, _
                                   LinkToFile:=msoFalse, _
                                   SaveWithDocument:=msoTrue, _
                                   Left:=100, Top:=50, Width:=200, Height:=150)
    MsgBox "画像を挿入しました!"
End Sub

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

画像のサイズと位置を調整

Option Explicit

Sub AdjustImage()
    Dim ws As Worksheet
    Dim img As Shape

    ' シートと画像を指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set img = ws.Shapes("Picture 1") ' 挿入した画像の名前を指定

    ' サイズと位置を変更
    With img
        .LockAspectRatio = msoTrue ' アスペクト比を固定
        .Width = 300              ' 幅を設定
        .Top = 100                ' 上からの位置
        .Left = 200               ' 左からの位置
    End With
    
    MsgBox "画像のサイズと位置を変更しました!"
End Sub

画像を削除

Option Explicit

Sub DeleteImage()
    Dim ws As Worksheet
    Dim img As Shape

    ' シートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' 画像を検索して削除
    For Each img In ws.Shapes
        If img.Type = msoPicture Then
            img.Delete
        End If
    Next img
    
    MsgBox "画像を削除しました!"
End Sub

複数画像を一括挿入

Option Explicit

Sub InsertMultipleImages()
    Dim ws As Worksheet
    Dim imgPath As String
    Dim i As Integer
    
    ' シートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' 画像のパス(例: フォルダー内の複数画像)
    imgPath = "C:\Users\User\Desktop\新しいフォルダー\" ' フォルダーを指定
    
    ' 画像を連続挿入
    For i = 1 To 2
        ws.Shapes.AddPicture Filename:=imgPath & i & ".png", _
                             LinkToFile:=msoFalse, _
                             SaveWithDocument:=msoTrue, _
                             Left:=50, Top:=i * 150, Width:=200, Height:=150
    Next i
    
    MsgBox "画像を一括挿入しました!"
End Sub

画像ペイント操作をExcelVBAで自動化することで、資料やレポートの効率的な作成が可能になります。画像の挿入、操作、削除の基本を学ぶことで、実務での応用範囲が広がります。

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問