Вставка картинки в Excel при помощи VBA
Всем доброго дня. Пишу скрипт для CATIA, который формирует табличку в Ecxel. В нем хочу вставлять картинку в ячейку. При помощи этого кода у меня получилось это сделать:
With xlApp.ActiveSheet.Pictures.Insert(LogoPath)
.Left = xlApp.ActiveSheet.Range("B1").Left
.Top = xlApp.ActiveSheet.Range("B1").Top
.Placement = 3
.PrintObject = True
End With
Но данный код вставляет картинку ссылкой. И если сохранить файл Excel и отправить кому-то, то она не откроется. Поэтому я попробовал данный код:
Call xlApp.ActiveSheet.Shapes.AddPicture(LogoPath, msoCFalse, msoCTrue, 100, 100, 100, 100)
Но ничего не вставляется.
Ответы (1 шт):
Автор решения: vikttur
→ Ссылка
На VBA так:
Sub InsertPictures()
Dim sPath As String, sName As String
Dim r As Range, oPic As Object
sPath = "C:\pictures\" ' путь к каталогу '
sName = "new.png" ' имя картинки '
Set r = Cells(1, 1) ' диапазон вставки '
On Error Resume Next ' обход ошибки, если картинки нет '
Set oPic = ActiveSheet.Shapes.AddPicture(sPath & sName, 0, 1, r.Left + 2, r.Top + 2, r.Width - 4, r.Height - 4) ' вот она, красавица '
Set r = Nothing: Set oPic = Nothing ' чистим память '
End Sub
Или с выносом параметров (вместо строки Set oPic...):
With ActiveSheet.Shapes.AddPicture(sPath & sName, 0, 1, 0, 0, 0, 0)
.Left = r.Left + 2
.Top = r.Top + 2
.Width = r.Width - 4
.Height = r.Height - 4
End With