ทำ Checkbox ขนาดใหญ่ใน Excel
ในบางครั้งเมื่อเราต้องการทำฟอร์มเอกสารให้คนอื่นกรอก ก็มักจะมีตัว Checkbox
เพื่อให้คลิ๊กเลือกในรายการที่เรากำหนดไว้
โดยจะเพิ่มจากตัว ActiveX control ที่มีอยู่แล้วใน Excel แต่ปัญหาคือเจ้าตัว
checkbox นี้มันปรับขนาดไม่ได้ พอเราปรับขนาดหน้าจอเล็กลง เจ้าตัว checkbox
นี่ก็จะเล็กลงตาม
ทำให้ความไฮโซของแบบฟอร์มลดลงไป
Zoom 100% |
Zoom 70% ขนาดเล็กลง |
วันนี้ก็จะแนะทำวิธีประยุกต์ทำตัว Checkbox ที่สามารถปรับขนาดได้ขึ้นมา
มาดูกันเลย
ก่อนอื่นก็ให้ทำการแทรกสัญลักษณ์ ที่เป็นลักษณะกล่องมีเครื่องหมายถูก
กับเครื่องหมายกล่องว่าง ๆ ลงไปใน Excel โดยอาจจะใช้พื้นที่ว่างนอกแบบฟอร์มที่จะทำก็ได้
ในบทความนี้ใช้ Y1 และ Y2 นะครับ
ในบทความนี้ใช้ Y1 และ Y2 นะครับ
จากนั้นให้ทำการ Copy ไปวางใน Cell ข้าง ๆ
โดยให้วางเท่ากับจำนวน checkbox ที่ต้องการจะสร้างนะครับ
ให้ทำการ Copy cell ที่เราได้ทำไว้ แล้วเลือก Paste Special
> Linked picture
เราก็จะได้ตัว Checkbox มาแล้ว ให้ทำการปรับขนาดได้ตามชอบใจ จากนั้นให้ Copy
ให้ครบทุกอัน
สังเกตุขนาดต่างกันชัดเจน |
จากนั้นให้คลิ๊กที่ “View code” แล้วให้ทำการแทรก
Module เข้าไป
เลือก View Code |
แทรก Module เข้าไป |
ให้วาง Code นี้ไปใน Module
Sub CheckBoxStatus(ByRef indexVal As
Integer)
If
Range("X" & indexVal).Value = Range("Y1").Value Then
Range("X" & indexVal).Value =
Range("Y2").Value
Else
Range("X" & indexVal).Value =
Range("Y1").Value
End
If
End Sub
|
Code นี้คือโปรแกรมย่อยในการเปลี่ยนสถานะของตัว Checkbox นะครับ
จากนั้นให้มาทำ โปรแกรมย่อยของ Checkbox แต่ละตัวกัน
Sub Ch1st()
Call CheckBoxStatus(1)
End Sub
Sub Ch2st()
Call CheckBoxStatus(2)
End Sub
Sub Ch3st()
Call CheckBoxStatus(3)
End Sub
Sub Ch4st()
Call CheckBoxStatus(4)
End Sub
Sub Ch5st()
Call CheckBoxStatus(5)
End Sub
|
โดยตัวเลขที่อยู่ในวงเล็บคือ เลขของแถว ที่เราทำ checkbox ไว้ก่อนหน้านี้นะครับ
จากนั้นให้กลับมาที่ checkbox ที่เป็นรูปภาพกัน ให้คลิ๊กขวาแล้วเลือก “Assign
macro” แล้วเลือก Macro ที่เราทำไว้ให้ตรงกัน นะครับ โดยสังเกตุที่
Formula bar
จากรูปจะ Link ไปยัง Cell X1 นะครับ
เราก็เลือก Macro ที่ชื่อ Ch1st
ตอนนี้ก็จะได้ Checkbox ที่สามารถปรับขนาดได้ตามต้องการแล้วนะครับ และเมื่อคลิ๊กที่ Checkbox ก็จะมีเครื่องหมายถูก แสดงขึ้นมาครับ
ก็ลองเอาไปประยุกต์ใช้กันดูครับ
ตัวอย่าง Video ครับ
งงตรงขั้นตอนมาทำโปรแกรมย่อยครับ
ตอบลบถ้ามีเวลา จะทำเป็นแบบคลิปเพิ่มให้นะครับ
ลบตอนนี้ทำออกมาได้แล้วค่ะ แต่ว่าเวลาที่เราติ๊กเลือกมันไม่เป็นเครื่องหมายถูกค่ะ มันแปลงเป็น font ที่ใช้แทน ที่มีลักษณะเป็น þ ขอคำแนะนำหน่อยค่ะ
ลบเปลี่ยน Font เป็น "Wingdings" ครับ
ลบจากตัวอย่างในบทความให้เปลี่ยนในคอลัมน์ "X" ครับ
มันต้องทำทุกชีสเลยอะครับ พอก๊อปชีสไป มันก็ใช้ไม่ได้อะครับ
ตอบลบวิธีการที่ใช้ตอนนี้เป็นการประยุกต์เอา VBA มาช่วยครับ
ลบกรณีคัดลอกไป Sheet อื่น จะทำให้ชื่อ และตัวอ้างอิงเปลี่ยน
ทำให้ต้องแก้ไขการ Assign macro ในแต่ละตัวอีกที
ยังไงหากผมเจอวิธีแก้ไขปัญหาตรงนี้ จะนำมาเสนอให้อีกทีนะครับ