Page 1 of 1
เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Thu Sep 28, 2017 9:50 pm
by mynumnum
ูขอความอนุเคราะห์ท่านผู้รู้
ผมเคยเปลี่ยนขนาดรูปภาพใน Excel ด้วยโค้ดนี้
แต่พอนำมาใช้กับ Word ผมทำการเปลี่ยนโค้ดจาก ActiveSheet เป็น ActiveDocument แล้ว
แต่มันก็ยังไม่สามารถทำงานได้และไม่แจ้งข้อความ ใดๆ เลย
ต้องแก้ไขอย่างไรครับ
Sub Macro1()
Dim s As Shape
For Each s In ActiveDocument.Shapes
s.Select
'กำหนดความสูง ด้านละ 1.5 นิ้ว
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 108#
Selection.ShapeRange.Width = 108#
Next s
End Sub
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Thu Sep 28, 2017 11:47 pm
by snasui
การโพสต์ Code ควรโพสต์ให้แสดงเป็น Code ดูตัวอย่างในกฎข้อ 5 ด้านบนประกอบครับ
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Dim i As Integer
For i = 1 To ActiveDocument.InlineShapes.Count
With ActiveDocument.InlineShapes(i)
.LockAspectRatio = msoFalse
.Height = 108
.Width = 108
End With
Next i
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Fri Sep 29, 2017 12:22 am
by mynumnum
ขออภัยอาจารย์ที่ทำให้เคืองเรื่อง กฏข้อ 5
เอาไปทดลองใช้แล้วได้ผลครับ
ขอขอบพระคุณอาจารย์เป็นอย่างสูงครับ
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Fri Sep 29, 2017 6:29 am
by snasui
mynumnum wrote:ขออภัยอาจารย์ที่ทำให้เคืองเรื่อง กฏข้อ 5
เอาไปทดลองใช้แล้วได้ผลครับ
ขอขอบพระคุณอาจารย์เป็นอย่างสูงครับ
ขอบคุณที่แจ้งผลและยินดีที่ช่วยได้ครับ
ผมไม่ได้ขุ่นเคืองแต่อย่างใด จำเป็นต้องแจ้งให้ทราบตามหน้าที่เพื่อให้เป็นไปตามกฎของบอร์ดครับ
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Sat Oct 07, 2017 3:16 pm
by mynumnum
ถ้ามันเป็นรูปภาพที่กรุ๊ปรวมกับข้อความแล้ว ActiveDocument.InlineShapes.Count หาไม่เจอครับ
หาคำแนะนำในเว็บเป็นภาษาอังกฤษอ่านแล้วไม่เข้าใจ ครับ
ช่วยต่อยอดให้อีกนิดนะครับ
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Sat Oct 07, 2017 3:38 pm
by snasui
แนบไฟล์ล่าสุดมาใหม่ ชี้ให้เห็นว่าเดิมเป็นอย่างไร ต้องให้ให้แสดงเป็นอย่างไร เขียน Code ไว้แล้วอย่างไร ติดขัดที่บรรทัดใด
ในการปรับ Code จะต้องพยายามปรับปรุงมาก่อนเท่าที่ทำได้ ได้เท่าไรก็เท่านั้น ติดแล้วค่อยถามกันครับ
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Sat Oct 07, 2017 4:49 pm
by mynumnum
Code: Select all
Dim i As Integer
MsgBox ActiveDocument.InlineShapes.Count
For i = 1 To ActiveDocument.InlineShapes.Count
With ActiveDocument.InlineShapes(i)
.LockAspectRatio = msoFalse
.Height = 108
.Width = 108
End With
Next i
จากโค้ดด้านบนสามารถเปลี่ยนขนาดรูปภาพได้ตามต้องการ
แต่ถ้ามันเป็นรูปภาพที่กรุ๊ปรวมกับข้อความแล้ว ActiveDocument.InlineShapes.Count (บรรทัดที่ 2) หารูปไม่เจอเลยสักรูปครับ
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Sun Oct 08, 2017 7:12 am
by snasui
ใช้ For each Next เข้ามาช่วยได้ครับ
เช่น
Code: Select all
For Each Obj in ActiveDocument.Shapes
'Other code
Next Obj
Re: เปลี่ยนขนาดรูปภาพด้วย VBA
Posted: Sun Oct 08, 2017 8:35 am
by mynumnum
ขอบคุณครับอาจารย์
วันหน้าจะมาขอความอนุเคราะห์ใหม่นะครับ