snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yoguzaa
Member
Posts: 87 Joined: Mon Jan 09, 2012 4:48 pm
#1
Post
by yoguzaa » Mon Jul 09, 2012 2:37 pm
รบกวนอาจารย์ครับ พอดีไปหาวิธีการใช้งานใน Help ใน VBA Excel มาครับ
อาจารย์อธิบาย คำสั่งเหล่านี้ให้ฟังหน่อยครับ
เป็นการใส่รูปลงใน commandbutton ใช่รึเปล่าครับ
Code: Select all
Sub ChangeButtonImage()
Dim picPicture As IPictureDisp
Dim picMask As IPictureDisp
Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp")
Set picMask = stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp")
'Reference the first button on the first command bar
'using a With...End With block.
With Application.CommandBars.FindControl(msoControlButton)
'Change the button image.
.Picture = picPicture
'Use the second image to define the area of the
'button that should be transparent.
.Mask = picMask
End With
End Sub
และ
Code: Select all
Sub GetButtonImageAndMask()
Dim picPicture As IPictureDisp
Dim picMask As IPictureDisp
With Application.CommandBars.FindControl(msoControlButton)
'Get the button image and mask of this CommandBarButton object.
Set picPicture = .Picture
Set picMask = .Mask
End With
'Save the button image and mask in a folder.
stdole.SavePicture picPicture, "c:\image.bmp"
stdole.SavePicture picMask, "c:\mask.bmp"
End Sub
ผมก็อปปี้มาทั้งโค้ดเลยครับ รบกวนอาจารย์หน่อยนะครับ
ใช้คำว่า"ไม่รู้"เพื่อที่จะได้"รู้"
ไม่ใช่ใช้เพื่อ"ปฏิเสธความรับผิดชอบ"
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Mon Jul 09, 2012 4:57 pm
มี Link ให้ดูไหมครับ หรือจับภาพ Help มาให้ดูด้วยก็ดีครับ
yoguzaa
Member
Posts: 87 Joined: Mon Jan 09, 2012 4:48 pm
#3
Post
by yoguzaa » Mon Jul 09, 2012 5:16 pm
ไฟล์ภาพ จับภาพจากHelp ครับ
Attachments
VBA_Excel_Help1.png (120.54 KiB) Viewed 167 times
VBA_Excel_Help2.png (118.42 KiB) Viewed 167 times
ใช้คำว่า"ไม่รู้"เพื่อที่จะได้"รู้"
ไม่ใช่ใช้เพื่อ"ปฏิเสธความรับผิดชอบ"
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Mon Jul 09, 2012 6:35 pm
เป็นการกำหนดภาพให้กับ CommandButton ถูกแล้วครับ ซึ่งต้องกำหนดภาพให้กับ 2 Properties คือ
.Picture กับ
.Mark ซึ่งปกติต้องกำหนดภาพให้กับ .Picture ก่อนแล้วค่อยกำหนดภาพให้
.Mark โดย
.Mark จะเป็นตัวกำหนดว่าส่วนไหนของ CommandButton ที่เป็นภาพนั้นมีความโปร่งใส
Code แรกเป็นการนำภาพที่เก็บไว้แล้วมากำหนดให้กับ CommandButton ส่วน Code ที่สองเป็นการ Save ภาพกลับไปเก็บไว้ในเครื่องตาม Path ที่กำหนด
แต่ละ Code ทำงานอย่างไรอ่านจาก Comment ใน Code ได้เลยครับ
yoguzaa
Member
Posts: 87 Joined: Mon Jan 09, 2012 4:48 pm
#5
Post
by yoguzaa » Mon Jul 09, 2012 7:09 pm
ที่ถามนี่ จะนำไปเป็นแนวทางที่จะเอาไปประยุกต์ใช้ในงานของตัวเองครับ
ถ้าสมมติว่าผมเปลี่ยนตัวคอนโทรลเป็น image ซึ่งบรรจุมันอยู่ใน userform แทน commandbutton
จะได้รึเปล่าครับ
แล้วตัดproperty mask ออกไป
เพื่อจะให้คอนโทรลนั้นแสดงรูปออกมาเมื่อใช้คำสั่ง
คล้ายๆกับใส่รูปในคอมเม้นท์นั่นแหละครับ
เพียงแต่ไม่อยากให้ผู้ใช้งานไปยุ่งเกี่ยวกับแผ่นงาน
ซึ่งจะซ่อนเอาไว้ครับ
ถ้าเปลี่ยนตัวobjectได้ จะลองเขียนโค้ดมาให้อาจารย์ดูครับ
พิมพ์ซะยาวอยากทราบว่า
ผมเปลี่ยนตัวคอนโทรลเป็น image ซึ่งบรรจุมันอยู่ใน userform แทน commandbutton
จะได้รึเปล่าครับ
ใช้คำว่า"ไม่รู้"เพื่อที่จะได้"รู้"
ไม่ใช่ใช้เพื่อ"ปฏิเสธความรับผิดชอบ"
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Mon Jul 09, 2012 7:19 pm
คำว่า Control จะเป็น CommandButton หรือ Image หรือ TextBox หรือ Label หรือ ฯลฯ มันก็เป็น Control ทั้งนั้นครับ การเปลี่ยนเป็น Image ก็คือเปลี่ยน Properties ของมันเพื่อให้เห็นด้วยตาหรือมีสภาพเป็นอย่างนั้นอย่างนี้ หากยังมีสภาพเป็น Control และสนองตอบต่อ Event เช่นการ Click การเปลี่ยนค่า การ Load การลากเมาส์ผ่าน ฯลฯ ก็ย่อมจะใช้ได้เสมอหากต้องการประมวลผลหรือใช้งานใด ๆ จาก Event ที่เกิดขึ้นนั้นต่อไปครับ
yoguzaa
Member
Posts: 87 Joined: Mon Jan 09, 2012 4:48 pm
#7
Post
by yoguzaa » Mon Jul 09, 2012 8:09 pm
ขอบคุณครับท่านอาจารย์
จะลองเขียนโค้ดคำสั่งดูนะครับ
หากติดปัญหา หรือ สำเร็จ ประการใด
จะสอบถาม และ นำเสนอ ผลงาน ให้อาจารย์ชมครับ
ใช้คำว่า"ไม่รู้"เพื่อที่จะได้"รู้"
ไม่ใช่ใช้เพื่อ"ปฏิเสธความรับผิดชอบ"