วันเสาร์ที่ 23 สิงหาคม พ.ศ. 2557

ใส่สี ควบคุมขนาดตัวอักษรผ่าน Scrollbar โดยใช้ vba

ใส่สี ควบคุมขนาดตัวอักษรผ่าน Scrollbar โดยใช้ vba ใน Excel นอกจากเราจะสามารถใส่สี เลือกขนาด Font แบบปกติธรรมดาโดยการเลือกในส่วนของ Font ... thumbnail 1 summary

ใส่สี ควบคุมขนาดตัวอักษรผ่าน Scrollbar โดยใช้ vba

ใน Excel นอกจากเราจะสามารถใส่สี เลือกขนาด Font แบบปกติธรรมดาโดยการเลือกในส่วนของ Font ที่อยู่ในแท็บ home แล้วเรายังสามารถใส่สีผ่านการเขียนโค้ดด้วย vba ได้อีกด้วย โดยเราจะสร้างฟอร์มขึ้นมา 1 ฟอร์ม พร้อมกับใส่ control scrollbar เข้าไปบนฟอร์ม เมื่อมีการเลื่อนที่แถบ scrollbar ก็จะให้ใส่สีที่ userform รวมถึงกำหนดสีให้กับข้อความที่อยู่ในเซลล์บน Excel อีกด้วย

โดยเราจะใช้ control scrollbar ที่อยู่บน toolbox ที่อยู่บนหน้าต่างออกแบบ vba ตัวอย่างนี้นอกจากจะใส่สีแล้ว เรายังนำ scrollbar มาเพิ่มขนาดของ font ที่อยู่ใน cell ของ excel ด้วย โดยสั่งงานผ่าน scrollbar ที่อยู่บน userform1

โดยให้เราทำตามขั้นตอนต่อไปนี้เพื่อบรรลุวัตถุประสงค์ของตัวอย่างนี้


1. เปิด Excel ขึ้นมา
(open excel)

2. พิมพ์ที่เซลล์ a1 ว่า “566” หรือ ข้อความอื่นๆตามที่เราต้องการ
(type “566” on cell a1 or type any value as you want)

3. กด alt+f11 เพื่อไปยัง vba

(press alt+f11 to design program by vba)

4. เพิ่ม userform1 เข้ามาใน project
(add 1 userform1)

5. เพิ่ม scrollbar มา 4 ตัว ใส่บน userform1

(add 4 scrollbars on userform1)




6. กำหนดค่า min=0, max = 255 สำหรับ scrollbar 1 ถึง 3 ส่วน scrollbar 4 ให้กำหนด min=8, max =100
(assign min=0, max=255 for scrollbar 1 to 3, and scrollbar 4 assign min=8, max =100)

7. เพิ่ม label 8 ตัว โดยที่ ตัวที่ 1 ถึง ตัวที่ 4 ให้วางไว้ด้านบน scrollbar แต่ละตัว ส่วน ตัวที่ 5 ถึง 8 วางไว้ใต้ scrollbar แต่ละตัว

label ตัวแรก กำหนด caption เป็น Red แล้วใส่สีแดงให้ตัวหนังสือด้วย

label ตัวที่สอง กำหนด caption เป็น green แล้วใส่สีเขียวให้ตัวหนังสือด้วย

label ตัวที่สาม กำหนด caption เป็น blue แล้วใส่สีน้ำเงินให้ตัวหนังสือด้วย

label ตัวที่สี่ กำหนด caption เป็น Font size แล้วใส่สีชมพูให้ตัวหนังสือด้วย

ส่วน label ตัวที่ 5 ถึง 8 ไม่ต้องใส่ caption (ข้อความกำกับ) แต่ให้กำหนดค่า borderstyle เป็น 1- frmborderstylesingle ด้วย

8. คลิกขวาบน userform1 แล้วเลือก view code และใส่โค้ดเหล่านี้ลงไป

Private Sub ScrollBar1_Change() 'red

Me.BackColor = RGB(ScrollBar1.Value, ScrollBar2.Value, ScrollBar3.Value)

Label5.Caption = ScrollBar1.Value & " %"

Range("a1").Characters.Font.Color = Me.BackColor



End Sub



Private Sub ScrollBar2_Change() 'green

Me.BackColor = RGB(ScrollBar1.Value, ScrollBar2.Value, ScrollBar3.Value)

Label6.Caption = ScrollBar2.Value & " %"

Range("a1").Characters.Font.Color = Me.BackColor

End Sub



Private Sub ScrollBar3_Change() 'blue

Me.BackColor = RGB(ScrollBar1.Value, ScrollBar2.Value, ScrollBar3.Value)

Label7.Caption = ScrollBar3.Value & " %"

Range("a1").Characters.Font.Color = Me.BackColor

End Sub



Private Sub ScrollBar4_Change()

Range("a1").Characters.Font.Size = ScrollBar4.Value

Label8.Caption = ScrollBar4.Value

End Sub จากนั้นกด F5 เพื่อสั่งรันโปรแกรม แล้วลองใช้งานโปรแกรมดู โดยให้ลองเลื่อน scrollbar ดู เราจะเห็นว่า มีการผสมสีเกิดขึ้น สีของพื้นหลังของฟอร์มก็จะเปลี่ยนไป และ สีตัวอักษรที่เซลล์ A1 ก็จะเปลี่ยนไปด้วย ... ถ้าหากเลื่อน scrollbar ตัวที่ 4 ก็จะเป็นการเพิ่มขนาดตัวอักษรให้กับข้อความที่อยู่ในเซลล์ A1 ด้วย