Я вижу, что на него уже ответили, но смотрите мой пост здесь .
По сути, вместо использования метода Worksheet.Pictures.Insert (который MSDN рекомендует не использовать напрямую и который возвращает необработанный COM-объект), вместо этого попробуйте метод Worksheet.Shapes.AddPicture.
Dim range As Microsoft.Office.Interop.Excel.Range
Dim pic as Microsoft.Office.Interop.Excel.Shape
Dim filePath as String
range = ...
filePath = ...
pic = range.Worksheet.Shapes.AddPicture(filePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, range.Left, range.Top, 300, 300)
Это не так просто, потому что вы должны указать точное положение и размеры, но в остальном довольно круто!