ช่วยปรับโค๊ดด้านล่างให้สามารถอัพโหลดรูปภาพได้ให้พอดีกับขนาด เซลล์ที่กำหนด
Posted: Wed Aug 07, 2024 4:35 pm
รบกวนอาจารย์
ช่วยปรับโค๊ดด้านล่างให้สามารถอัพโหลดรูปภาพ
แล้วมาลงตารางรูปตามที่กำหนดไว้ ปรับให้กึ่งกลางมีขนาด พอดี
และเว้น ช่องไว้ใส่ข้อความ
ผมลองปรับโค๊ดแล้ว มันมีขนาดไมเท่ากันครับ
ช่วยปรับโค๊ดด้านล่างให้สามารถอัพโหลดรูปภาพ
แล้วมาลงตารางรูปตามที่กำหนดไว้ ปรับให้กึ่งกลางมีขนาด พอดี
และเว้น ช่องไว้ใส่ข้อความ
ผมลองปรับโค๊ดแล้ว มันมีขนาดไมเท่ากันครับ
Code: Select all
Sub InsertPictures()
Dim ws As Worksheet
Dim Pic As Picture
Dim PicPath As String
Dim cell As Range
Dim r As Long
Dim c As Long
Dim PicWidth As Double
Dim PicHeight As Double
Dim TargetRange As Range
Dim RowHeight As Double
Dim ColumnWidth As Double
Set ws = ThisWorkbook.Sheets("Sheet1")
Set TargetRange = ws.Range("A2:B2,A4:B4,A6:B6,A8:B8,A10:B10") '
For Each cell In TargetRange.Cells
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Select Picture"
.Filters.Clear
.Filters.Add "Images", "*.jpg; *.jpeg; *.png; *.bmp; *.gif"
If .Show = -1 Then
PicPath = .SelectedItems(1)
Else
Exit Sub
End If
End With
Set Pic = ws.Pictures.Insert(PicPath)
RowHeight = cell.Height
ColumnWidth = cell.Width
PicWidth = Pic.Width
PicHeight = Pic.Height
If PicWidth / ColumnWidth > PicHeight / RowHeight Then
Pic.Width = ColumnWidth - 10
Pic.Height = Pic.Height * ((ColumnWidth - 10) / PicWidth)
Else
Pic.Height = RowHeight - 20
Pic.Width = Pic.Width * ((RowHeight - 20) / PicHeight)
End If
Pic.Top = cell.Top + 5
Pic.Left = cell.Left + 5
With ws.Shapes.AddTextbox(msoTextOrientationHorizontal, Pic.Left, Pic.Top + Pic.Height + 5, Pic.Width, 15)
.TextFrame.Characters.Text = "Your Text Here"
.TextFrame.HorizontalAlignment = xlHAlignCenter
.Line.Visible = msoFalse
End With
Next cell
End Sub