บทที่ 7 คอนโทรล1

ในการเขียน VBA จำเป็นต้องทราบถึงคอนโทรลมาตรฐาน (Standard Toolbox Controls) ที่เป็นองค์ประกอบสำคัญของการพัฒนาโปรแกรม ในบทนี้จะได้ทำความรู้จักคอนโทรลพื้นฐานต่างๆ ที่นำมาสร้างเป็นส่วนประกอบบนฟอร์ม โดยคอนโทรลจะมีองค์ประกอบที่สำคัญ 3 อย่างคือ
1. Property คือคุณสมบัติของคอนโทรล เช่น ขนาดความกว้าง ความสูง สีพื้น ขนาดตัวอักษร เป็นต้น
2. Method คือ ที่คอนโทรลนั้นสามารถทำได้ เช่น การ Copy Cut Paste เป็นต้น
3. Event คือ เหตุการณ์ที่เกิดขึ้นกับคอนโทรล เพื่อสั่งให้โปรแกรมในคอนโทรลนั้นๆ ทำงาน เช่น การคลิก การดับเบิ้ลคลิก การกดปุ่ม Enter เป็นต้น


รูปที่ 7.1



1.Select Objects
ใช้สำหรับเลือกคอนโทรล ในกล่องเครื่องมือ Toolbox หรือใช้ในการปรับแต่งขนาดหรือเคลื่อนย้ายคอนโทรลที่วาดไว้บนฟอร์ม (form)


รูปที่ 7.2

ตัวอย่างที่ 1 การใช้งาน Select Objects เพื่อสร้าง Label1 บนฟอร์ม
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้

รูปที่ 7.3
5. คลิกเลือก Label1 ที่ ToolBox แล้วนำมาวาดบนฟอร์ม


รูปที่ 7.4
6. การนำ Label1 มาวาดบนฟอร์โดยการคลิกลงบนฟอร์ม และลากเมาส์ลงมาทางมุมขวาล่าง เพื่อให้ได้ขนาดที่ต้องการ

รูปที่ 7.5

รูปที่ 7.6
7. เมื่อได้ขนาดที่ต้องการแล้ว ให้ปล่อยเม้าส์จะได้ Label1 บนฟอร์ม และให้สังเกตุว่า Select Objects จะถูกเลือกโดยอัตโนมัติ เพื่อรอให้นำไปปรับแต่ง ตำแหน่ง หรือขนาดของคอนโทรล ให้เหมาะสมตามต้องการ จากรูปด้านล่างจะเป็นการใช้ Select Objects ปรับขนาดของ Label1 ที่กรอบด้านล่าง ให้มีขนาดกว้างขึ้น

รูปที่ 7.7

2.Label
คอนโทรล Label ใช้ในการทำป้ายชื่อหรือแสดงข้อความ ซึ่งการป้อนข้อความสามารถกระทำได้โดยตรงบนตัว control หรือที่พร็อพเพอร์ตี้ caption ก็ได้

รูปที่ 7.8
คุณสมบัติ (propertis) ที่สำคัญของ Label
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
AutoSize ใช้สำหรับกำหนดขนาดของ Label ให้มีขนาดพอดีกับข้อมูลโดยอัตโนมัติ
BackColor ใช้สำหรับกำหนดสีพื้น หลัง
BackStyle ใช้สำหรับกำหนดรูปแบบของพื้นหลังให้เป็นแบบทึบหรือโปร่งใส
BorderStyle ใช้สำหรับกำหนดรูปแบบของเส้นขอบ
Caption ใช้สำหรับกำหนดข้อความ
Enabled ใช้สำหรับกำหนดให้คอนโทรลสามารถใช้งานได้
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง Label
เหตุการณ์ (Event) ที่สำคัญของ Label
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการ ดับเบิ้ลคลิกที่คอนโทรล
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

3.TextBox
ใช้ในการใส่ข้อมูลทั้งตัวอักษรและตัวเลข ที่ผู้ใช้สามารถเปลี่ยนค่าได้

รูปที่ 7.9
คุณสมบัติ (properties) ที่สำคัญของ TextBox
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
BorderStyle ใช้สำหรับกำหนดรูปแบบของเส้นขอบ
Enabled ใช้สำหรับกำหนดให้คอนโทรลสามารถใช้งานได้
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Locked ใช้สำหรับกำหนดให้คอนโทรล ไม่สามารถใช้งานได้
MaxLength ใช้สำหรับกำหนดความยาวของข้อมูลตัวอักษรที่สามารถพิมพ์ได้
MultiLine ใช้สำหรับกำหนดให้ TextBox สามารถพิมพ์ได้หลายบรรทัด
PasswordChar ใช้สำหรับกำหนดตัวอักษรที่ต้องการให้แสดงขณะที่พิมพ์
TabIndex ใช้สำหรับกำหนดลำดับของ Control ที่ใช้ใน Form
Text ใช้สำหรับกำหนดข้อความใน TextBox
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง TextBox
เมธอดที่สำคัญของ TextBox
Copy เป็นคำสั่งคัดลอกข้อมูลจากคอนโทรล
Cut เป็นคำสั่งนำข้อมูลออกจากคอนโทรล
Paste เป็นคำสั่งถ่ายโอนข้อมูลมาไว้ที่คอนโทรล
เหตุการณ์ (Event) ที่สำคัญของ TextBox
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อข้อมูลของ TextBox มีการเปลี่ยนแปลง
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
KeyPress เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดปุ่มใด ๆ บนคีย์บอร์ด
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

ตัวอย่างที่ 2 การสร้างฟอร์มที่ประกอบด้วยคอนโทรล Label และ TextBox
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. ใส่ Label1 เพื่อเป็นป้ายชื่อกำกับ หรือใส่คำอธิบาย โดยในกล่องเครื่องมือ Toolbox คลิกที่คอนโทรล Label แล้วนำไปวางบน Userform1
6. ใส่ Label2 เพื่อใช้แสดงค่าที่พิมพ์จาก Textbox1
7. ใส่ TextBox1 เพื่อป้อนค่าหรือพิมพ์ตัวอักษร
8. จะได้ Userform1 ที่ประกอบด้วยคอนโทรลต่างๆ ดังรูป

รูปที่ 7.10
9. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption LABEL AND TEXT
Height 197
Width 300
Label1 Caption Please type some text
Height 24
Width 240
Label2 Caption -
BorderStyle 1-fmBorderStyleSingle
Height 42
Width 240
TextBox1 Height 25
Width 240

10. เมื่อใส่ค่าพร็อพเพอร์ตี้ที่กำหนดแล้วจะได้ UserForm1ดังนี้


รูปที่ 7.11
11. ใส่โค๊ดคำสั่งใน TextBox1 โดยการดับเบิ้ลคลิกที่ TextBox1 หน้าต่างโค๊ดคำสั่งจะปรากฏขึ้นมา ให้พิมพ์คำสั่งดังนี้
Private Sub TextBox1_Change()
Label2 = TextBox1.Text
End Sub


รูปที่ 7.12
12. ทดสอบโปรแกรม โดยการกลับไปที่หน้าต่าง Worksheet แล้วสร้างปุ่ม Button1 ขึ้นมา (ถ้าไม่มีปุ่ม Button1 ให้คลิกขวาที่เมนู แล้วคลิกเลือก Forms) คลิกเม้าส์ซ้ายค้างแล้วลากเม้าส์ เพื่อวาดปุ่ม Button1


รูปที่ 7.13
13. จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
14. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub

รูปที่ 7.14
15. การแสดงผล ให้คลิกที่ปุ่ม Button1 เพื่อเรียก UserForm1 ขึ้นมา

รูปที่ 7.15
16. ทดลองพิมพ์อักษรใดๆ ลงไปใน TextBox1 จะเห็นว่า Label2 แสดงค่าตามที่พิมพ์ลงใน TextBox1 ขึ้นมาทันที

รูปที่ 7.16


4.ComboBox
คอนโทรล ComboBox เป็นคอนโทรลที่รวมเอาคุณลักษณะของ ListBox และ TextBox เอาไว้ด้วยกัน ซึ่งผู้ใช้สามารถเลือกข้อมูลจากรายการ หรือพิมพ์ค่าลงไปได้

รูปที่ 7.17
คุณสมบัติ (properties) ที่สำคัญของ ComboBox
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
ColumnCount ใช้ระบุจำนวนคอลัมป์ให้แสดงใน ComboBox หรือ ListBOx
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
List Rowsใช้สำหรับกำหนดแถวของข้อมูลที่แสดงในรายการ
Locked ใช้สำหรับกำหนดให้คอนโทรล ไม่สามารถใช้งานได้
RowSource ใช้สำหรับกำหนดแหล่งข้อมูล
Style ใช้สำหรับกำหนดรูปแบบของ ComboBox
TabIndex ใช้สำหรับกำหนดลำดับของ Control ที่ใช้ใน Form
Text ใช้สำหรับกำหนดข้อความใน ComboBox
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง ComboBox
เมธอดที่สำคัญของ ComboBox
AddItem เป็นคำสั่งสำหรับเพิ่มตัวเลือกเข้าไปใน ComboBox
Clear เป็นคำสั่งสำหรับลบข้อมูลทั้งหมดใน ComboBox
Copy เป็นคำสั่งคัดลอกข้อมูลจากคอนโทรล
Cut เป็นคำสั่งนำข้อมูลออกจากคอนโทรล
Paste เป็นคำสั่งถ่ายโอนข้อมูลมาไว้ที่คอนโทรล
RemoveItem เป็นคำสั่งสำหรับลบข้อมูลโดยระบุลำดับข้อมูลที่ต้องการลบ
เหตุการณ์ (Event) ที่สำคัญของ ComboBox
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดปุ่มเลื่อนตำแหน่งหรือ Click Mouse
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการ ดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
KeyPress เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดปุ่มใด ๆ บนคีย์บอร์ด
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

5.ListBox
คอนโทรล ListBox เป็นคอนโทรลที่ใช้เพื่อแสดงรายการข้อมูล ที่ผู้ใช้สามารถเลือกได้

รูปที่ 7.18
คุณสมบัติ (properties) ที่สำคัญของ ListBox
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
ColumnCount ใช้ระบุจำนวนคอลัมป์ให้แสดงใน ComboBox หรือ ListBOx
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
ListStyle ใช้สำหรับกำหนดรูปแบบของ ListBox
Locked ใช้สำหรับกำหนดให้คอนโทรล ไม่สามารถใช้งานได้
RowSource ใช้สำหรับกำหนดแหล่งข้อมูล
TabIndex ใช้สำหรับกำหนดลำดับของ Control ที่ใช้ใน Form
Text ใช้สำหรับกำหนดข้อความใน ListBox
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง ListBox
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
เมธอดที่สำคัญของ ListBox
AddItem เป็นคำสั่งสำหรับเพิ่มตัวเลือกเข้าไปใน ListBox
Clear เป็นคำสั่งสำหรับลบข้อมูลทั้งหมดใน ListBox
RemoveItem เป็นคำสั่งสำหรับลบข้อมูลโดยระบุลำดับข้อมูลที่ต้องการลบ
เหตุการณ์ (Event) ที่สำคัญของ ListBox
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกเม้าส์ที่คอนทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการดับเบิ้ลคลิกเม้าส์ที่คอนทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

ตัวอย่างที่ 3 การสร้างฟอร์มที่ประกอบด้วยคอนโทรล ListBox และ ComboBox
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. ใส่ Label1 เพื่อใช้แสดงค่าเมื่อมีการเลือกข้อมูลจาก ListBox1 หรือ ComboBox1
6. ใส่ ListBox1 เพื่อแสดงค่าจากตารางข้อมูล
7. ใส่ ComboBox1 เพื่อแสดงค่าจากตารางข้อมูล
8. จะได้ Userform1 ที่ประกอบด้วยคอนโทรลต่างๆ ดังรูป

รูปที่ 7.19
9. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption ListBox and ComboBox
Height 195
Left 0
Top 0
Width 380
Label1 Caption ชื่อพนักงาน
Height 24
Width 108
Label2 Caption -
Height 24
Width 198
ListBox1 Caption -
BorderStyle 0-fmBorderStyleNone
Height 89
Width 150
RowSource sheet1!a:a
ComboBox1 Caption -
BorderStyle 0-fmBorderStyleNone
Height 24
Width 150
RowSource sheet1!a:a

10. เมื่อใส่ค่าคุณสมบัติ (property) ที่กำหนดแล้วจะได้ UserForm1 ดังนี้

รูปที่ 7.20
11. ใส่โค๊ดคำสั่งใน ListBox1 โดยการดับเบิ้ลคลิกที่ ListBox1 หน้าต่างโค๊ดคำสั่งจะปรากฏขึ้นมา ให้พิมพ์คำสั่งดังนี้
Private Sub ListBox1_Click()
Label2.Caption = ListBox1.Value
End Sub
12. ใส่โค๊ดคำสั่งใน ComboBox1 โดยการดับเบิ้ลคลิกที่ ComboBox1 หน้าต่างโค๊ดคำสั่งจะปรากฏขึ้นมา ให้พิมพ์คำสั่งดังนี้
Private Sub ComboBox1_Change()
Label2.Caption = ComboBox1.Value
End Sub

รูปที่ 7.21
13. ทดสอบโปรแกรม โดยการกลับไปที่หน้าต่าง Worksheet แล้วพิมพ์ชื่อพนักงานในคอลัมน์ A เพื่อสร้างเป็นฐานข้อมูลใช้ทดสอบโปรแกรม
14. สร้างปุ่ม Button1 ขึ้นมา (ถ้าไม่มีปุ่ม Button ให้คลิกขวาที่เมนู แล้วคลิกเลือก Forms) คลิกเม้าส์ซ้ายค้างแล้วลากเม้าส์ เพื่อวาดปุ่ม Button1
15. จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
16. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub

รูปที่ 7.22
17. ทดสอบโปรแกรม โดยคลิกที่ปุ่ม Button1 เพื่อเรียก UserForm1 ขึ้นมา

รูปที่ 7.23

18. ทดลองคลิกเลือกชื่อพนักงานใน ListBox1 จะเห็นว่า Label2 แสดงค่าตามที่คลิกในคอนโทรล เช่น คลิก NAME7 ใน ListBox1 ทำให้ Label2 แสดงชื่อพนักงาน NAME7 ขึ้นมา

รูปที่ 7.24
19. ทดลองคลิกเลือกชื่อพนักงานใน ComboBox1 จะเห็นว่า Label2 แสดงค่าตามที่คลิกในคอนโทรล เช่น คลิก NAME9 ใน ComboBox1 ทำให้ Label2 แสดงชื่อพนักงาน NAME9 ขึ้นมา

รูปที่ 7.25

6.CheckBox
คอนโทรล CheckBox เป็นคอนโทรล ใช้สร้างปุ่มตัวเลือกแบบเฉพาะเจาะจง หรือเลือกได้หลายรายการ

รูปที่ 7.26

คุณสมบัติ (properties) ที่สำคัญของ CheckBox
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
Alignment ใช้สำหรับกำหนดตำแหน่งของข้อมูลบน CheckBox
BackColor ใช้สำหรับกำหนดสีพื้น
Caption ใช้สำหรับกำหนดข้อความ
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
TabIndex ใช้สำหรับกำหนดลำดับของ Control ที่ใช้ใน Form
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง CheckBox
เหตุการณ์ (Event) ที่สำคัญของ CheckBox
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการ ดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

7.OptionButton
คอนโทรล OptionButton เป็นคอนโทรลที่ใช้สร้างปุ่มตัวเลือกแบบเฉพาะเจาะจง เพียงรายการเดียว

รูปที่ 7.27

คุณสมบัติ (properties) ที่สำคัญของ OptionButton
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
Alignment ใช้สำหรับกำหนดตำแหน่งของข้อมูลบน OptionButton
BackColor ใช้สำหรับกำหนดสีพื้น
Caption ใช้สำหรับกำหนดข้อความ
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
TabIndex ใช้สำหรับกำหนดลำดับของ Control ที่ใช้ใน Form
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง OptionButton
เหตุการณ์ (Event) ที่สำคัญของ OptionButton
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการ ดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

8.ToggleButton
คอนโทรล ToggleButton เป็นคอนโทรลที่ใช้สร้างปุ่มตัวเลือก ที่ใช้กับข้อมูลประเภท Boolean เช่น on/off, True/False

รูปที่ 7.28

คุณสมบัติ (properties) ที่สำคัญของ ToggleButton
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
Caption ใช้สำหรับกำหนดข้อความ
Enabled ใช้สำหรับกำหนดให้คอนโทรลสามารถใช้งานได้
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
TabIndex ใช้สำหรับกำหนดลำดับของคอนโทรลที่ใช้ใน Form
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เหตุการณ์ (Event) ที่สำคัญของ ToggleButton
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการ ดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล



9.Frame
คอนโทรล Frame เป็นคอนโทรลที่ใช้สร้างกรอบ หรือสร้างกลุ่มของคอนโทรล ช่วยให้องค์ประกอบต่างๆ ที่อยู่บนฟอร์มมีความเป็นระเบียบเรียบร้อย

รูปที่ 7.29

คุณสมบัติ (property) ที่สำคัญของ Frame
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
BorderStyle ใช้สำหรับกำหนดรูปแบบของเส้นขอบ
Caption ใช้สำหรับกำหนดข้อความ
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง Frame
เมธอดที่สำคัญของ Frame
Copy เป็นคำสั่งคัดลอกข้อมูลจากคอนโทรล
Cut เป็นคำสั่งนำข้อมูลออกจากคอนโทรล
Paste เป็นคำสั่งถ่ายโอนข้อมูลมาไว้ที่คอนโทรล
เหตุการณ์ (Event) ที่สำคัญของ Frame
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน Frame
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน Frame

10.CommandButton
คอนโทรล CommandButton เป็นคอนโทรลสำหรับสร้างปุ่มคำสั่งบนฟอร์ม เพื่อใช้กำหนดรหัสคำสั่ง และสั่งให้โปรแกรมทำงาน

รูปที่ 7.30

คุณสมบัติ (properties) ที่สำคัญของ CommandButton
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
Caption ใช้สำหรับกำหนดข้อความ
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
Locked ใช้สำหรับกำหนดให้คอนโทรล ไม่สามารถใช้งานได้
Picture ใช้สำหรับกำหนดรูปภาพบน CommandButton
Style ใช้สำหรับกำหนดรูปแบบของปุ่มให้สามารถใช้งาน Graphic ได้หรือไม่
TabIndex ใช้สำหรับกำหนดลำดับของ Control ที่ใช้ใน Form
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง CommandButton

เหตุการณ์ (Event) ที่สำคัญของ CommandButton
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดปุ่ม
Dblclick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการกดดับเบิ้ลคลิกที่ปุ่ม
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

ตัวอย่างที่ 4 การสร้าง CheckBox OptionButton ToggleButton Frame และ CommandButton
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. ใส่ Label1 เพื่อแสดงป้ายชื่อ “Name of material”
6. ใส่ TextBox1 เพื่อพิมพ์ชื่อของ วัสดุ
7. ใส่ Frame1 เพื่อจัดกลุ่มของปุ่ม CheckButton
8. ใส่ Frame2 เพื่อจัดกลุ่มของปุ่ม OptionButton
9. ใส่ปุ่ม ToggleButton1 และปุ่ม CommandButton1
10. จะได้ Userform1 ที่ประกอบด้วยคอนโทรลต่างๆ ดังรูป


รูปที่ 7.31

11. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 205
Width 376
Label1 Caption Name of material
Height 24
Width 120
TextBox1 Caption -
Height 25
Width 120
Frame1 Caption Type of Material
Height 120
Width 120
Frame2 Caption Use for
Height 120
Width 120
OptionButton1 Caption Metal
Height 18
Width 102
OptionButton2 Caption Plastic
Height 18
Width 102
OptionButton3 Caption Wood
Height 18
Width 102
OptionButton4 Caption Paper
Height 18
Width 102
CheckBox1 Caption For production
Height 18
Width 102
CheckBox2 Caption For assembly
Height 18
Width 102
CheckBox3 Caption For packing
Height 18
Width 102
CheckBox4 Caption Other
Height 18
Width 102
ToggleButton1 Caption Lock
Height 30
Width 84
CommandButton1 Caption New
Height 30
Width 84
CommandButton2 Caption Record
Height 30
Width 84

12. เมื่อใส่ค่าคุณสมบัติ (property) ที่กำหนดแล้วจะได้ UserForm1 ดังนี้

รูปที่ 7.32
13. ใส่โค๊ดคำสั่งใน ToggleButton1 ดังนี้
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
TextBox1.Enabled = False
Frame1.Enabled = False
Frame2.Enabled = False
CommandButton1.Enabled = False
CommandButton2.Enabled = False
ToggleButton1.Caption = "Unlock"
Else
TextBox1.Enabled = True
Frame1.Enabled = True
Frame2.Enabled = True
CommandButton1.Enabled = True
CommandButton2.Enabled = True
ToggleButton1.Caption = "Lock"
End If
End Sub

14. ใส่โค๊ดคำสั่งใน CommandButton1 ดังนี้
Private Sub CommandButton1_Click()
TextBox1.Value = ""
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
CommandButton2.Enabled = True
CommandButton2.Caption = "Record"
End Sub

15. ใส่โค๊ดคำสั่งใน CommandButton2 ดังนี้
Private Sub CommandButton2_Click()
Dim Material_Type As String
Dim a, b, c, d As String
Dim i As Integer
i = 0
Do
i = i + 1
Loop Until Cells(i, 1) = ""
If OptionButton1.Value = True Then Material_Type = "Metal"
If OptionButton2.Value = True Then Material_Type = "Plastic"
If OptionButton3.Value = True Then Material_Type = "Wood"
If OptionButton4.Value = True Then Material_Type = "Paper"
If CheckBox1.Value = True Then a = "Production, "
If CheckBox2.Value = True Then b = "Assembly, "
If CheckBox3.Value = True Then c = "Packing, "
If CheckBox4.Value = True Then d = "Other "
Cells(i, 1) = TextBox1.Text
Cells(i, 2) = Material_Type
Cells(i, 3) = (a) & (b) & (c) & (d)
CommandButton2.Caption = "Recorded"
CommandButton2.Enabled = False
End Sub
16. ทดสอบโปรแกรม โดยการสร้างปุ่ม Button1 เพื่อเรียกโปรแกรม ขึ้นมา จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
17. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub
18. ทดลองกดปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมาทดสอบ

รูปที่ 7.33
19. ทดลองใช้โปรแกรม พิมพ์ชื่อวัสดุลงใน TextBox1
เลือกชนิดของวัสดุ ซึ่งจะสามารถเลือกได้ค่าเดียว
เลือกประเภทการใช้ ซึ่งสามารถเลือกได้หลายประเภท
เมื่อต้องการใส่ค่าใหม่ให้กดปุ่ม New แล้วใส่ค่าที่ต้องการ
กดปุ่ม Record เพื่อทำการบันทึกลงในตารางเอ็กเซลล์
ปุ่ม Lock สร้างขึ้นเพื่อล็อคคอนโทรลต่างๆ ไม่ให้ทำงานได้ หรืออาจมีวัตถุประสงค์เพื่อป้องการการแก้ไขข้อมูล

รูปที่ 7.34
รูปที่ 7.35


11.TabStrip
คอนโทรล TabStrip เป็นคอนโทรลที่ใช้กำหนดพื้นที่แสดงหรือจัดการข้อมูลหลายชุดข้อมูลที่มีองค์ประกอบร่วมกันของคอนโทรลที่เหมือนกัน


รูปที่ 7.36

คุณสมบัติ (properties) ที่สำคัญของ TabStrip
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Style ใช้สำหรับแสดงรูปแบบของ TabStrip
Value ใช้กำหนดหมายเลขของ TabStrip แต่ละอัน
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เหตุการณ์ (Event) ที่สำคัญของ TabStrip
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกเมาส์ที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการดับเบิ้ลคลิกเมาส์ที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล
ตัวอย่างที่ 5 การสร้าง TabStrip เพื่อแสดงจำนวนพนักงานแยกตามแผนก
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. นำ TabStrip1 มาวาดลงบนฟอร์ม


รูปที่ 7.37
6. ทำการเพิ่ม Tab3 โดยการคลิกซ้ายที่ Tab1 หรือ Tab2 แล้วคลิกขวาอีกครั้ง จะมีเมนูขึ้นมา ให้เลือก New Page ก็จะได้ Tab3 เพิ่มขึ้นมาอีก 1 อัน

รูปที่ 7.38
7. ทำการเปลี่ยนชื่อ Tab1, Tab2, Tab3 ด้วยการคลิกซ้ายที่ Tab ที่ต้องการเปลี่ยนชื่อ และคลิกขวาอีกครั้ง ก็จะมีเมนูขึ้นมาให้คลิกเลือก Rename จะมีไดอะล็อกขึ้นมา ให้พิมพ์ชื่อลงในช่อง Caption เช่น Tab1 เปลี่ยนชื่อเป็น “HR” แล้วกดปุ่ม OK

รูปที่ 7.39
รูปที่ 7.40
8. ใส่ Label1 กำหนด Caption เป็น “จำนวนพนักงาน”
9. ใส่ Label2 ไม่ต้องใส่ Caption ให้ปล่อยว่างเอาไว้ เพื่อแสดงจำนวนพนักงานที่โปรแกรมคำนวนได้
10. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 148
Width 293
TabStrip1 Height 102
Width 264
Label1 Caption จำนวนพนักงาน
Height 24
Width 126
Label2 Caption -
Height 24
Width 66
จะได้ฟอร์มมีลักษณะดังรูป

รูปที่ 7.41
11. ใส่โค๊ดคำสั่งใน TabStrip1 ด้วยการดับเบิ้ลคลิกที่ TabStrip1 หน้าต่างคำสั่งจะปรากฏขึ้นมา แล้วให้พิมพ์คำสั่งดังนี้
Private Sub TabStrip1_Change()
Dim i As Integer
Dim HR, PC, QC As Integer
Dim value As Integer
value = TabStrip1.value
i = 1
Do While Cells(i, 1) <> ""
If Cells(i, 1) = "HR" Then HR = HR + 1
If Cells(i, 1) = "PC" Then PC = PC + 1
If Cells(i, 1) = "QC" Then QC = QC + 1
i = i + 1
Loop
If value = 0 Then Label2.Caption = HR
If value = 1 Then Label2.Caption = PC
If value = 2 Then Label2.Caption = QC
End Sub
12. ทดสอบโปรแกรม โดยการสร้างข้อมูลที่ Sheet1 โดยคอลัมน์ A เป็นชื่อแผนก HR, PC, QC ส่วนคอลัมน์ B เป็นชื่อพนักงาน
13. สร้างปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมา จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
14. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub
15. ทดลองกดปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมาทดสอบ แล้วทดลองคลิกที่ Tab ต่างๆ ที่สร้างไว้ จะแสดงจำนวนพนักงาน แต่ละแผนกที่ Label2

รูปที่ 7.42
12.MultiPage
คอนโทรล MultiPage เป็นคอนโทรลสำหรับนำเสนอข้อมูลหลายหน้าจอเป็นชุดเดียว

รูปที่ 7.43
คุณสมบัติ (properties) ที่สำคัญของ MultiPage
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
Enabled ใช้สำหรับกำหนดให้คอนโทรลสามารถใช้งานได้
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เหตุการณ์ (Event) ที่สำคัญของ MultiPage
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกเมาส์ที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการดับเบิ้ลคลิกเมาส์ที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล


ตัวอย่างที่ 6 การสร้าง Multipage
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. นำ Multipage1 มาวาดลงบนฟอร์ม
6. คลิกที่ Page1 เพื่อใส่ Label1 ทำเป็นป้ายชื่อ “พิมพ์ชื่อพนักงาน” ใส่ TextBox1 เพื่อรับค่าพิมพ์ชื่อพนักงาน ใส่ปุ่ม CommandButton1 เพื่อสั่งให้โปรแกรมบันทึกข้อมูลลงในตารางเอ็กเซลล์

รูปที่ 7.44
7. คลิกที่ Page2 เพื่อใส่ ComboBox1 เพื่อแสดงรายชื่อพนักงานทั้งหมด เพื่อทำการเลือก
8. ที่ Page2 ให้ใส่ Label2 เพื่อแสดงชื่อเมื่อคลิกเลือกชื่อพนักงานจาก ComboBox1

รูปที่ 7.45
9. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 173
Width 264
Page1 name Page1
Caption Page1
Label1 Caption พิมพ์ชื่อพนักงาน
Height 24
Width 102
TextBox1 Caption -
Height 24
Width 102
CommandButton1 Caption บันทึก
Height 24
Width 102
Page2 name Page2
Caption Page2
Label2 Caption -
Height 24
Width 150
Style 1-fmBorderStyleSingle
ComboBox1 Height 24
Width 150
ListRows 4
RowSource Sheet1!a:a

จะได้ฟอร์มมีลักษณะดังรูป

รูปที่ 7.46
10. ใส่โค๊ดคำสั่งใน CommandButton1 ด้วยการดับเบิ้ลคลิกที่ CommandButton1 หน้าต่างคำสั่งจะปรากฏขึ้นมา แล้วให้พิมพ์คำสั่งดังนี้
Private Sub CommandButton1_Click()
Dim i As Integer
i = 0
Do
i = i + 1
Loop Until Cells(i, 1) = ""
Cells(i, 1) = TextBox1.Text
TextBox1.Text = ""
End Sub

11. ใส่โค๊ดคำสั่งใน ComboBox1 ด้วยการดับเบิ้ลคลิกที่ ComboBox1 หน้าต่างคำสั่งจะปรากฏขึ้นมา แล้วให้พิมพ์คำสั่งดังนี้
Private Sub ComboBox1_Change()
Label2.Caption = ComboBox1.Value
End Sub
12. ทดสอบโปรแกรม โดยการสร้างปุ่ม Button1 ที่ Sheet1 เพื่อเรียกโปรแกรมขึ้นมา.จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
13. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub
14. ทดลองกดปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมาทดสอบ แล้วพิมพ์ชื่อพนักงานลงใน TextBox1 เช่น NAME6 แล้วกดปุ่ม บันทึก เพื่อบันทึกข้อมูลลงในตารางเอ็กเซลล์

รูปที่ 7.47
15. คลิกเลือก Page2 เพื่อดูข้อมูลใน ComboBox1 จะมีชื่อ NAME6 เพิ่มเข้ามาแล้ว ลองคลิกที่ NAME6 ใน ComboBox1 ชื่อ NAME6 จะถูกแสดงใน Label2

รูปที่ 7.48


13.ScrollBar
คอนโทรล ScrollBar ใช้สำหรับสร้างแถบเลื่อน เพื่อแสดงข้อมูล รายการต่างๆ

รูปที่ 7.49

คุณสมบัติ (properties) ที่สำคัญของ ScrollBar
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
LargeChange ใช้ระบุจำนวนการเคลื่อนที่เมื่อผู้ใช้คลิกในแถบของ ScrollBar
Max ใช้สำหรับกำหนดค่าสูงสุดของ ScrollBar
Min ใช้สำหรับกำหนดค่าต่ำสุดของ ScrollBar
SmallChange ใช้ระบุจำนวนการเคลื่อนที่เมื่อคลิกที่ลูกศรของ ScrollBar
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เหตุการณ์ (Event) ที่สำคัญของ ScrollBar
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง

ตัวอย่างที่ 7
การสร้าง ScrollBar
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. นำ TextBox1 และ ScrollBar1 มาวาดลงบนฟอร์ม
6. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้
คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 140
Width 240
TextBox1 Caption -
Font size 14
Height 45
Width 198
ScrollBar1 Height 18
Max 30
Min 1
Value 14
Width 198

รูปที่ 7.50
7. ใส่โค๊ดคำสั่งใน ScrollBar1 ด้วยการดับเบิ้ลคลิกที่ ScrollBar1 หน้าต่างคำสั่งจะปรากฏขึ้นมา แล้วให้พิมพ์คำสั่งดังนี้
Private Sub ScrollBar1_Change()
TextBox1.Font.Size = ScrollBar1.Value
End Sub
8. ทดสอบโปรแกรม โดยการสร้างปุ่ม Button1 ที่ Sheet1 เพื่อเรียกโปรแกรมขึ้นมา.จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
9. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub
10. ทดลองกดปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมาทดสอบ แล้วพิมพ์อักษรลงใน TextBox1 แล้วลองเลื่อน ScrollBar1 เพื่อดูการเปลี่ยนแปลงของตัวอักษรใน TextBox1 จะเห็นว่าอักษรมีขนาดเพิ่มขึ้นเมื่อเลื่อน ScrollBar1 ไปทางขวา และตัวอักษรจะมีขนาดเล็กลงเมื่อเลื่อน ScrollBar1 ไปทางซ้าย


รูปที่ 7.51
 
14.SpinButton
คอนโทรล SpinButton เป็นคอนโทรลที่สามารถใช้ร่วมกับคอนโทรลอื่นๆ เพื่อควบคุมการเพิ่มหรือลดจำนวนตัวเลข SpinButton มีลักษณะใกล้เคียงกับ ScrollBar ต่างกันที่ SpinButton ไม่มีแถบแสดงสถานะของระดับค่าตัวเลข จะมีแค่เพียงลูกศรสามเหลี่ยมเท่านั้น

รูปที่ 7.52

คุณสมบัติ (properties) ที่สำคัญของ SpinButton
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Max ใช้สำหรับกำหนดค่าสูงสุดของ SpinButton
Min ใช้สำหรับกำหนดค่าต่ำสุดของ SpinButton
SmallChange ใช้ระบุจำนวนของการเคลื่อนที่เมื่อผู้ใช้คลิกที่ลูกศร
Value ใช้สำหรับระบุสถานะหรือกำหนดข้อมูลให้กับคอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เหตุการณ์ (Event) ที่สำคัญของ SpinButton
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง


ตัวอย่างที่ 8 การสร้าง SpinButton
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. นำ TextBox1 และ SpinButton1 มาวาดลงบนฟอร์ม
6. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้

คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 140
Width 240
TextBox1 Caption -
Font size 14
Height 45
Width 198
SpinButton1 Height 42
Max 30
Min 1
Value 14
Width 18

รูปที่ 7.53
7. ใส่โค๊ดคำสั่งใน SpinButton1 ด้วยการดับเบิ้ลคลิกที่ SpinButton1 หน้าต่างคำสั่งจะปรากฏขึ้นมา แล้วให้พิมพ์คำสั่งดังนี้
Private Sub SpinButton1_Change()
TextBox1.Font.Size = SpinButton1.Value
End Sub
8. ทดสอบโปรแกรม โดยการสร้างปุ่ม Button1 ที่ Sheet1 เพื่อเรียกโปรแกรมขึ้นมา จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
9. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub
10. ทดลองกดปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมาทดสอบ แล้วพิมพ์ชื่ออักษรลงใน TextBox1 แล้วลองกดปุ่มสามเหลี่ยมที่ SpinButton1 เพื่อดูการเปลี่ยนแปลงของตัวอักษรใน TextBox1 จะเห็นว่าอักษรมีขนาดเพิ่มขึ้นเมื่อกดลูกศรขึ้น และตัวอักษรจะมีขนาดเล็กลงเมื่อกดลูกศรลง

รูปที่ 7.54
15.Image
คอนโทรล Image เป็นคอนโทรลใช้แสดงรูปภาพชนิด bitmap, icon, or metafile ให้แสดงบนฟอร์ม

รูปที่ 7.55

คุณสมบัติ (propertis) ที่สำคัญของ Image
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้นหลัง
BorderStyle ใช้สำหรับกำหนดรูปแบบของเส้นขอบ
Picture ใช้สำหรับกำหนดรูปภาพบน Image
PictureTilling ใช้สำหรับขยาย หรือกระจายภาพให้เต็มพื้นที่คอนโทรล
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เหตุการณ์ (Event) ที่สำคัญของ Image
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกเมาส์ที่คอนโทรล
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการดับเบิ้ลคลิกเมาส์ที่คอนโทรล
MouseDown เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ลงผ่าน คอนโทรล
MouseUp เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการเคลื่อนเมาส์ขึ้นผ่าน คอนโทรล

ตัวอย่างที่ 9 การสร้างคอนโทรล Image
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. นำคอนโทรล Image1 และCommandButton1 มาวาดลงบนฟอร์ม
6. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้

คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 164
Width 290
Image1 BackColor &80000009&
BorderStyle 1-fmBorderStylSingle
Height 60
Width 276
PictureTiling False
CommandButton1 Caption Picture Tiling

เมื่อใส่ค่าต่างๆ แล้วจะได้ฟอร์มดังรูป

รูปที่ 7.56
ทดสอบโปรแกรม โดยกดปุ่ม Picture Tiling

รูปที่ 7.57


16.RefEdit
คอนโทรล RefEdit เป็นคอนโทรลสำหรับแสดงตำแหน่ง หรือการอ้างอิงช่วงของเซลล์ที่เราเลือกในชีทเอ็กเซลล์

รูปที่ 7.58

คุณสมบัติ (properties) ที่สำคัญของ RefEdit
Name ใช้สำหรับกำหนดชื่อของคอนโทรล
BackColor ใช้สำหรับกำหนดสีพื้น
BorderStyle ใช้สำหรับกำหนดรูปแบบของเส้นขอบ
Enabled ใช้สำหรับกำหนดให้คอนโทรลสามารถใช้งานได้
Font ใช้สำหรับกำหนดรูปแบบตัวอักษร
ForeColor ใช้สำหรับกำหนดสีตัวอักษร
Visible ใช้สำหรับกำหนดให้ซ่อนหรือแสดง
เมธอดที่สำคัญของ RefEdit
Copy เป็นคำสั่งคัดลอกข้อมูลจากคอนโทรล
Cut เป็นคำสั่งนำข้อมูลออกจากคอนโทรล
Paste เป็นคำสั่งถ่ายโอนข้อมูลมาไว้ที่คอนโทรล
เหตุการณ์ (Event) ที่สำคัญของ RefEdit
BeforeDragOver เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกลากวาง (drag and drop)
Click เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการคลิกเมาส์
Change เป็นเหตุการณ์ที่เกิดขึ้นเมื่อค่าคุณสมบัติ value มีการเปลี่ยนแปลง
DblClick เป็นเหตุการณ์ที่เกิดขึ้นเมื่อมีการ ดับเบิ้ลคลิกที่คอนโทรล
Enter เป็นเหตุการณืที่เกิดขึ้นเมื่อมีการกดปุ่ม Enter

ตัวอย่างที่ 10 การสร้างคอนโทรล RefEdit
1. เปิดโปรแกรมเอ็กเซลล์
2. เปิดหน้าต่าง Visual Basic Editor โดยที่เมนูบาร์คลิก Tools>Macro> Visual Basic Editor
3. เมื่อหน้าจอ Visual Basic Editor ปรากฏขึ้น ให้คลิกเลือก Insert > UserForm
4. UserForm1 จะปรากฏขึ้น ให้ปรับขนาดตามต้องการโดยการคลิกลากส่วนขอบของ UserForm1 หรืออาจกำหนดขนาดในหน้าต่างพร็อพเพอร์ตี้ก็ได้
5. นำคอนโทรล RefEdit, TextBox1 และCommandButton1 มาวาดลงบนฟอร์ม
6. กำหนดค่าคุณสมบัติ (property) ให้แต่ละคอนโทรลดังนี้

คอนโทรล พร็อพเพอร์ตี้ ค่าที่กำหนด
UserForm1 Caption UserForm1
Height 140
Width 240
RefEdit1 BackColor &H80000005&
Height 36
Width 246
TextBox1 Caption -
Font size 20
Height 36
Width 126
CommandButton1 Caption SUM
Font size 20
Height 36
Width 114


รูปที่ 7.59
7. ใส่โค๊ดคำสั่งใน CommandButton1 ด้วยการดับเบิ้ลคลิกที่ CommandButton1 หน้าต่างคำสั่งจะปรากฏขึ้นมา แล้วให้พิมพ์คำสั่งดังนี้
Private Sub CommandButton1_Click()
TextBox1.Text = Application.WorksheetFunction.Sum(Range(RefEdit1.Text))
End Sub
8. ทดสอบโปรแกรม โดยการสร้างปุ่ม Button1 ที่ Sheet1 เพื่อเรียกโปรแกรมขึ้นมา จากนั้นวินโดว์ Assign macro จะเปิดขึ้นมา ให้คลิกเลือกปุ่ม New
9. เมื่อหน้าต่าง Visual Basic Editor เปิดขึ้น ให้พิมพ์คำสั่งดังนี้
Sub Button1_Click()
UserForm1.Show
End Sub
10. ทดลองกดปุ่ม Button1 เพื่อเรียกโปรแกรมขึ้นมาทดสอบ แล้วคลิกที่ปุ่ม RefEdit1 แล้วเลือกพื้นที่ ที่ต้องการคำนวนหาค่าผลรวม สังเกตุที่คอนโทรล RefEdit1 จะแสดงการอ้างอิงพื้นที่ ที่ได้เลือกเอาไว้ (การเลือกพื้นที่การคำนวนสามารถทำการเลือกได้หลายช่วงข้อมูล โดยให้กดปุ่มCtrl ค้างเอาไว้ ในขณะเลือกพื้นที่ต่างๆ จากนั้นให้คลิกที่ปุ่ม CommandButton1 เพื่อทำการคำนวนค่าผลรวมของช่วงข้อมูลที่ได้เลือกไว้

รูปที่ 7.60
จากตัวอย่างทำการเลือกพื้นที่ Sheet1!$A$1:$D$1,Sheet1!$H$2:$I$2,Sheet1!$I$8:$I$10
=1+1+1+1+2+2+8+9+10 = 35