Я экспортирую данные из базы данных Access в отчет Excel, а частью того, что должно быть включено в отчет, являются изображения, соответствующие данным. Изображения сохраняются в общем файле и вставлены в файл Excel, как так:Вставьте изображение в Excel и сохраните пропорции без превышения размеров с помощью VBA
Dim P As Object
Dim xlApp As Excel.Application
Dim WB As Workbook
Set xlApp = New Excel.Application
With xlApp
.Visible = False
.DisplayAlerts = False
End With
Set WB = xlApp.Workbooks.Open(FilePath, , True)
Set P = xlApp.Sheets(1).Pictures.Insert(PicPath) 'Insert picture
With P
With .ShapeRange
.LockAspectRatio = msoFalse
.Width = 375
.Height = 260
End With
.Left = xlApp.Sheets(1).cells(y, x).Left
.Top = xlApp.Sheets(1).cells(y, x).Top
.Placement = 1
.PrintObject = True
End With
WB.SaveAs FileName:= NewName, CreateBackup:=False
WB.Close SaveChanges:=True
xlApp.DisplayAlerts = True
xlApp.Application.Quit
Проблема, которую я имею, что я не могу показаться, чтобы быть в состоянии сохранить соотношение сторон фотографии и сделать что в то же время они не превышают границ пространства, которое они должны вписывать в форму Excel. На снимках также есть все скриншоты, поэтому существует большая вариативность в их форме и размере.
В основном то, что я хочу сделать что-то к эффекту захвата угол изображения и расширяет его, пока он не коснется либо левый или нижний край диапазона он должен быть помещен в.
Это будет максимизировать размер изображения для пространства, не искажая его.
настраиваете вы это ложь нарочно? '.LockAspectRatio = msoFalse' – nhee