返回列表 上一主題 發帖

插入圖片時,等比例放大或縮小

插入圖片時,等比例放大或縮小

請教插入圖片儲存格範圍時,如何等比例的在儲存格範圍內放大或縮小
以下程式碼為圖片大小符合儲存格,應如何修改呢?

    i = ThisWorkbook.Path & "\" & NewRef & ".jpg"
    X = Dir(ThisWorkbook.Path & "\" & NewRef & ".jpg")
       If X <> "" Then
          Set rngs = Range(Cells(61, 2), Cells(61, 19))
          ActiveSheet.Shapes.AddPicture i, True, True, rngs.Left, rngs.Top, rngs.Width, rngs.Height
       Else
      End If

謝謝~~

回復 25# 准提部林


    剛剛試一下,把With ActiveSheet.Shapes("圖片 1")改成With ActiveSheet.Shapes.AddPicture(i, False, True, rngs.Left, rngs.Top, True, True)
    就可以了耶~~
    感謝准大,太感謝了~~

TOP

回復 25# 准提部林

    With ActiveSheet.Shapes("圖片 1")
    或設定為With ActiveSheet.Shapes(i)
    我在前面設定了
     i = ThisWorkbook.Path & "\" & NewRef & ".jpg"
   
    都會出現"找不到指定名稱的項目。

TOP

本帖最後由 准提部林 於 2020-10-12 15:19 編輯

回復 24# takeshilin88

試了如圖:


Sub test()
Dim rngs As Range
Set rngs = [B61:S61]
With ActiveSheet.Shapes("圖片 1")
      .LockAspectRatio = True
      If .Width >= .Height Then .Width = rngs.Width - 4
      If .Height >= .Width Then .Height = rngs.Height - 4
      If .Width > rngs.Width - 4 Then .Width = rngs.Width - 4
      If .Height > rngs.Height - 4 Then .Height = rngs.Height - 4
      .Left = rngs.Left + (rngs.Width - .Width) / 2
      .Top = rngs.Top + (rngs.Height - .Height) / 2
End With
End Sub

'===============

TOP

回復  准提部林


    准大您好,
    因需要圖片放到儲存格範圍後能做到如下:
    1.圖片在儲存格範 ...
takeshilin88 發表於 2020-10-12 13:10


   抱歉,更正一下檔案~~


1091012-QUO.rar (48.04 KB)

TOP

回復 22# 准提部林


    准大您好,
    因需要圖片放到儲存格範圍後能做到如下:
    1.圖片在儲存格範圍內「等比例」的放大or縮小,也就是接近儲存格範圍的大小(但不超出儲存格範圍)
    2.圖片在儲存格範圍內上下左右置中
    依照您的建議還是無法達成需求,已附上檔案,謝謝~~

1091012-QUO.rar (23.15 KB)

TOP

回復 20# takeshilin88


或者, 原圖比存放位置小, 變成要"放大":
Set rngs = Range(Cells(61, 2), Cells(61, 19))
With ActiveSheet.Shapes.AddPicture(i, False, True, rngs.Left, rngs.Top, True, True)
     .LockAspectRatio = msoFalse
     .Width = rngs.Width - 4
     .Height = rngs.Height - 4
     .Left = rngs.Left + (rngs.Width - .Width) / 2
     .Top = rngs.Top + (rngs.Height - .Height) / 2
End With

TOP

回復 20# takeshilin88


.LockAspectRatio = msoTrue

.shaperange.LockAspectRatio = msoTrue


再不行的話, 要有檔案才能了解問題何在

TOP

回復 19# 准提部林


    似乎沒什麼變化....

TOP

回復 18# takeshilin88


.LockAspectRatio = True

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題