画像(図)をシートに挿入する/Shapes.Add メソッド

ExcelVBAを使用して、ワークシートに画像(図)を画像として挿入する方法です。

目次

画像を挿入する/基本

引数は全て必須です。

オブジェクトブラウザーより
Filename As String, LinkToFile As MsoTriState, SaveWithDocument As MsoTriState, Left As Single, Top As Single, Width As Single, Height As Single
説明
  1. Filename/String
    挿入するファイル名(保存先のパスを含む)
  2. LinkToFile/MsoTriState
    True:もとのファイルとリンクする、False:画像として挿入
  3. SaveWithDocument/MsoTriState
    True:リンクされた画像を挿入先のエクセルファイルと一緒に保存、False:リンク情報のみ保存 
  4. Left/Singl
    画像の左端位置
  5. Top/Single
    画像の上端位置
  6. Width/Single
    画像の幅指定
  7. Height/Single
    画像の高さ指定

アクティブなワークシートのセルA1に画像を挿入する例です。

Sub sample1()
ActiveSheet.Shapes.AddPicture _
            Filename:="F:\sample\青森.png", _
            LinkToFile:=False, _
            SaveWithDocument:=True, _
            Left:=Range("A1").Left, _
            Top:=Range("A1").Top, _
            Width:=450, _
            Height:=280
End Sub

画像の挿入とサイズ変更

挿入元の画像サイズを保つ場合の例です。

Sub sample2()
    Const fName As String = "F:\sample\青森.png"
    Dim shp As Shape
    Set shp = ActiveSheet.Shapes.AddPicture( _
                                Filename:=fName, _
                                LinkToFile:=False, _
                                SaveWithDocument:=True, _
                                Left:=Range("A1").Left, _
                                Top:=Range("A1").Top, _
                                Width:=350, _
                                Height:=280)
              With shp
                .ScaleHeight 1, msoTrue
                .ScaleWidth 1, msoTrue
              End With
End Sub

12~15行目で元のサイズに戻します。80%にしたい場合は「1」を「0.8」にします。

参考

フォルダ内にある複数の画像を挿入する場合は次を参考にするとできます。

目次