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

 

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

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

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

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

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

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

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

使い方

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

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

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

ポイント

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

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

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

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

 

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

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

画像を指定位置に挿入

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

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

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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。