画像ファイルをExcelに張り付ける

件名の件をする場合、複数のやり方があるみたいなので共有です。どちらもケースバイケースなので、仕様に合わせて使い分けるのかなと思いました。

こんな画像ファイルを、

f:id:sutefu7:20190927140201p:plain

指定のセル位置(の左上位置を基準)に張り付けます。

f:id:sutefu7:20190927140251p:plain

VBA

Private Sub CommandButton1_Click()
    
    Call Test1
    
End Sub

Private Sub Test1()
    
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Sheet1")
    
    Dim picFile As String
    picFile = "C:\~\test.png"
    
    ' AddPicture の場合、挿入画像の幅と高さを調べないといけない(表示サイズを変更していい場合は、気にしないのだが)
    sht.Activate
    Call sht.Shapes.AddPicture(picFile, msoFalse, msoTrue, sht.Range("B7").Left, sht.Range("B7").Top, 100, 100)
    
    
    Set sht = Nothing
    
End Sub

Private Sub Test2()
    
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Sheet1")
    
    Dim picFile As String
    picFile = "C:\~\test.png"
    
    ' Insert を使って、任意のセル位置(の左上の位置)に、そのままのサイズで貼り付け
    sht.Activate
    With ActiveSheet.Pictures.Insert(Filename:=picFile)
        .Top = sht.Range("B7").Top
        .Left = sht.Range("B7").Left
    End With
    
    
    Set sht = Nothing
    
End Sub