Page 1 of 2
เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 05, 2018 12:58 pm
by diamondbom
รบกวนสอบถามหน่อยครับ คือว่าผมต้องการที่จะเปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button (Select Picture)
โดยให้ปรากฏ และเลือรูปภาพจากหน้าต่าง Insert Picture (คล้ายๆกันกับ Insert Picture ของ Excel ) แต่ผมยังไม่รู้ว่าจะเริ่มยังไง
หนังสือที่มีก็ไม่มีตัวอย่าง รบกวนขอคำแนะนำในการเขียน Code ด้วยครับ
ขอบคุณครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 05, 2018 1:33 pm
by logic
ลองบันทึกมาโครดูน่าจะได้โค้ดมาปรับใช้ได้ครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 05, 2018 3:52 pm
by diamondbom
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveSheet.Shapes.Range(Array("Image1")).Select
End Sub
มาโครมีโค้ดเท่านี้ผมไปต่อไม่ถูกรบกวนแนะนำด้วยครับ อยากได้โปรแกรมประมาณว่าเราสามารถเลือกรูปต่าง Insert Picture (คล้ายๆกันกับ Insert Picture ของ Excel )
ขอบคุณครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 05, 2018 4:38 pm
by logic
อ่านแล้วงงครับ
ปกติกำหนดพื้นหลังให้กับภาพอย่างไรก็บันทึกมาโครแบบนั้น
ผมลองทำดูได้ตามนี้ครับ
Code: Select all
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveSheet.Shapes.Range(Array("Rectangle 1")).Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.PresetTextured msoTexturePapyrus
.TextureTile = msoTrue
.TextureOffsetX = 0
.TextureOffsetY = 0
.TextureHorizontalScale = 1
.TextureVerticalScale = 1
.TextureAlignment = msoTextureTopLeft
End With
With Selection.ShapeRange.Fill
.Visible = msoTrue
.UserPicture "C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg"
.TextureTile = msoFalse
End With
End Sub
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 11, 2018 8:10 am
by diamondbom
สวัสดีครับ ตอนนี้ผมแก้ไขโค้ดได้แล้วครับแต่ติดปัญหานิดหน่อยอยากจะรบกวนสอบถามครับ
-กรณีใช้ Commandbutton เปิด UserForm เพื่อเลือกและเปลี่ยนภาพพื้นหลังของ Image กดบันทึกแล้วถาพสามารถเปลียนได้ทันที
-กรณีใช้ Image เปิด UserForm เพื่อเลือกและเปลี่ยนภาพพื้นหลังของ Imageของตัวมันเองกดบันทึกแล้วถาพไม่สามารถเปลียนได้ทันที
ต้องกดออกจาก UserForm ก่อนภาพจึงจะเปลี่ยนให้ พอจะมีวิธีทำให้ภาพเปลี่ยนทันทีใหมครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 11, 2018 8:23 am
by diamondbom
โปรแกรมครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 11, 2018 5:06 pm
by diamondbom
รบกวนสอบถามเพิ่มเติมครับ การใช้งาน Image กินพื้นที่หน่วยความจำเยอะมาก นี่คือเรื่อปรกติใช่ป่าวครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 11, 2018 9:09 pm
by snasui
diamondbom wrote:โปรแกรมครับ
ปรับ Code เป็นด้านล่างครับ
Code: Select all
Private Sub Image1_Click()
UserForm1.Show vbModeless
End Sub
diamondbom wrote:รบกวนสอบถามเพิ่มเติมครับ การใช้งาน Image กินพื้นที่หน่วยความจำเยอะมาก นี่คือเรื่อปรกติใช่ป่าวครับ
เป็นเรื่องปกติครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 11, 2018 9:53 pm
by diamondbom
ขอบคุณครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 12, 2018 5:42 pm
by diamondbom
รบกวนสอบถามเพิ่อมเติมหน่อครับ เนื่องจาก Image มีการใช้พื้นที่เยอะมึงเปลี่ยนมาใช้รูปภาพแทน
อยากสอบถามเกี่ยวกับการใช้โค้ดใช้ภาพอยู่กึ่งกลางเซลที่เรา Merge ไว้น่ะครับ
(กึ่งกลางเหมือนกับกรณีที่เราใช้ Image ใน Mode Zoom)
ขอบคุณครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 12, 2018 5:43 pm
by diamondbom
โปรแกรมครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Sat Jan 13, 2018 12:50 pm
by diamondbom
diamondbom wrote: Fri Jan 12, 2018 5:42 pm
รบกวนสอบถามเพิ่อมเติมหน่อครับ เนื่องจาก Image มีการใช้พื้นที่เยอะจึงเปลี่ยนมาใช้รูปภาพแทน
อยากสอบถามเกี่ยวกับการใช้โค้ดใช้ภาพอยู่กึ่งกลางเซลที่เรา Merge ไว้น่ะครับ
(กึ่งกลางเหมือนกับกรณีที่เราใช้ Image ใน Mode Zoom)
ขอบคุณครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Sat Jan 13, 2018 1:12 pm
by snasui
diamondbom wrote: Fri Jan 12, 2018 5:42 pm
เนื่องจาก Image มีการใช้พื้นที่เยอะมึงเปลี่ยนมาใช้รูปภาพแทน
Image กับรูปภาพคือ Object ชนิดเดียวกันครับ แต่หากเป็น ActiveX Control หรือ Form Control กับ Image จึงจะเป็นคนละ Object ในการเขียน Code ให้เป็นมาตรฐานเราควรใช้ Control แบบใดแบบหนึ่งแทน Image เนื่องจากสร้างมาเพื่อการนี้โดยเฉพาะ ยกเว้นจะเขียนแบบต้องการให้สวยงามเป็นหลักครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Mon Jan 15, 2018 7:19 am
by diamondbom
ขอบคุณครับอาจารย์ ในที่นี้ผมต้องการให้ commandbutton เป็นตัว control และออกแบบให้รูปภาพเป็น object แสดงผลบนเซลในรูปแบบกึ่งกลางเซล(เซลที่ Merge เอาไว้เป็นแนวยาว)ประมาณแสดงรูปเป็น header ของ Report รบกวนอาจารยญ์ช่วยชี้แนะด้วยครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Mon Jan 15, 2018 3:05 pm
by snasui
ตัวอย่างการปรับ Code ครับ
Code: Select all
Dim r As Range, imgIcon As Object
Set r = Range("a5")
'Other code...
Set imgIcon = ActiveSheet.Pictures.Insert(UserForm1.AddPic.Caption)
With imgIcon
.Left = (r.Left + (r.MergeArea.Width - .Width)) / 2
.Height = r.MergeArea.Height
End With
ในโอกาสถัดไปให้แนบไฟล์โปรแกรมที่ได้ลองปรับมาเองแล้วด้วยจะได้ช่วยตอบต่อไปจากนั้นครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 25, 2018 8:24 am
by diamondbom
สวัสดีครับอาจารย์ จากโปรแกรมในไฟล์แนบผมรบกวนขอสอบถามเพิ่มเติมครับ
1.เมื่อมีการเปลี่ยนรูปตำแหน่งก็จะเปลี่ยนไปไม่อยู่กึ่งกลางเซลล์ที่ Merge ไว้เหมือนเคย ผมควรแก้ไขอย่างไรครับ
2.เมื่อมีการปรับ column width และ row height รูปภาพไม่ปรับขนาดตาม รบกวนขอคำแนะนำด้วยครับอาจารย์
ขอบคุณครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 25, 2018 5:58 pm
by snasui
Code ทีแนบมาไม่ตรงกับที่ผมแจ้งไปครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 25, 2018 6:31 pm
by diamondbom
ตรง /2 ใช่ป่าวครับอาจารย์ ผมใช้แล้วภาพไม่อยู่กึ่งกลางน่ะครับผมเลยลองปรับโค้ดดู
ในไฟล์แนปโค้ดตรงครับอาจารย์แต่ภาพจะอยู่ชิดซ้ายนิดหน่อยครับ
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Thu Jan 25, 2018 10:46 pm
by snasui
diamondbom wrote: Thu Jan 25, 2018 6:31 pm
ตรง /2 ใช่ป่าวครับอาจารย์ ผมใช้แล้วภาพไม่อยู่กึ่งกลางน่ะครับผมเลยลองปรับโค้ดดู
ปรับให้สลับบรรทัดกันใหม่ตามด้านล่างครับ
Code: Select all
Set imgIcon = ActiveSheet.Pictures.Insert(UserForm1.AddPic.Caption)
With imgIcon
.Height = r.MergeArea.Height
.Left = (r.Left + (r.MergeArea.Width - .Width)) / 2
End With
Re: เปลี่ยนพื้นหลังของ Image ด้วยคำสั้งจาก Command button
Posted: Fri Jan 26, 2018 7:59 am
by diamondbom
ได้แล้วครับอาจารย์ เมื่อมีการเพิ่มภาพจะอยู่ตรงกลางพอดีแล้วครับ
รบกวนขอสอบถามอาจารย์เพิ่มเติมครับกรณีมีการปรับ column width และ row height รูปภาพไม่ปรับขนาดตาม
เราสามารถตั้งค่าให้รูปภาพปรับขนาดตามเซลล์ไดใหมครับ รบกวนขอคำแนะนำด้วยครับอาจารย์
ขอบคุณครับ