ใช้ VBA วางรูปภาพให้อยู่กึ่งกลาง cell
Posted: Thu Sep 14, 2023 5:13 pm
สามารถใช้ VBA วางรูปภาพให้อยู่กึ่งกลาง cell ได้หรือไม่ครับ
ในไฟล์จะต้องเรียกรูปภาพจากโฟล์เดอร์ "D:\test_ali\picture\"
Dim img_shape As Shape
Set img_shape = ActiveSheet.Shapes.AddPicture(Filename:=img_url, _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, _
Left:=c.Offset(row_offset, col_offset).Left + 2, _
Top:=c.Offset(row_offset, col_offset).Top + 2, _
Width:=-1, Height:=-1)
' MsgBox (img_shape.Width)
Dim max_long_edge As Integer
max_long_edge = 120
Dim scale_ratio As Double
If img_shape.Width > max_long_edge Then ' Or img_shape.Height > max_long_edge Then
scale_ratio = max_long_edge / img_shape.Width
img_shape.Width = Int(scale_ratio * img_shape.Width)
End If
If img_shape.Height > c.RowHeight Then
scale_ratio = c.RowHeight / img_shape.Height
img_shape.Height = Int(scale_ratio * img_shape.Height) - 4
End If
ในโค๊ดจะวางชิดด้านซ้าย-บน โดยปรับขนาดรูปตามขนาด cell (ตรงความต้องการแล้ว)
แต่ผมต้องการให้วางตรงกึ่งกลางแนวตั้ง และกึ่งกลางแนวนอน ซึ่งยังทำไม่ได้
รบกวนสมาชิกแนะนำด้วยครับ
ในไฟล์จะต้องเรียกรูปภาพจากโฟล์เดอร์ "D:\test_ali\picture\"
Dim img_shape As Shape
Set img_shape = ActiveSheet.Shapes.AddPicture(Filename:=img_url, _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, _
Left:=c.Offset(row_offset, col_offset).Left + 2, _
Top:=c.Offset(row_offset, col_offset).Top + 2, _
Width:=-1, Height:=-1)
' MsgBox (img_shape.Width)
Dim max_long_edge As Integer
max_long_edge = 120
Dim scale_ratio As Double
If img_shape.Width > max_long_edge Then ' Or img_shape.Height > max_long_edge Then
scale_ratio = max_long_edge / img_shape.Width
img_shape.Width = Int(scale_ratio * img_shape.Width)
End If
If img_shape.Height > c.RowHeight Then
scale_ratio = c.RowHeight / img_shape.Height
img_shape.Height = Int(scale_ratio * img_shape.Height) - 4
End If
ในโค๊ดจะวางชิดด้านซ้าย-บน โดยปรับขนาดรูปตามขนาด cell (ตรงความต้องการแล้ว)
แต่ผมต้องการให้วางตรงกึ่งกลางแนวตั้ง และกึ่งกลางแนวนอน ซึ่งยังทำไม่ได้
รบกวนสมาชิกแนะนำด้วยครับ