ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
บทที่ 7 การสร้างกล่องรับข้อความ และ User Form
อ.สุรินทร์ทิพ ศักดิ์ภูวดล สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร
2
แบบฝึกหัด 7.1 ปฏิบัติตามขั้นตอนต่อไปนี้เพื่อให้โปรแกรมสร้างคำสั่งให้อัตโนมัติ
1. Click Mouse ที่cell A1 2. Click ปุ่ม Record Macro 3. ตั้งชื่อ Macro “InputData” > OK 4. Click ยกเลิกปุ่ม Relative reference (ถ้าปุ่มนี้ไม่ถูกเลือกให้ข้ามไป) 5. Click Mouse ที่ B10 6. กด End > กด ลูกศรเลื่อนขึ้น 7. เลือก Relative Reference (กำหนดการไปแบบ Relative ) 8. กดลูกศรลง 1 ครั้ง 9. Stop Recording 10. สร้างปุ่มให้ Macro เลือก Macro ชื่อ InputData
3
จากนั้นให้เขียนโปรแกรมเพิ่มดังนี้
Sub InputData() Range("B10").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.Value = Inputbox("please Enter Name", "Input Info.") ActiveCell.Offset(0, 1).Select ActiveCell.Value = Inputbox("please Enter Address", "Input Info.") ActiveCell.Value = Inputbox("please Wnter Salary", "Input Info.") End Sub
4
จากโปรแกรมจะได้ Input Box ที่สามารถทำงานได้ดังภาพ
5
คำสั่ง IsDate (ค่าที่ต้องการเช็ค) IsNumeric (ค่าที่ต้องการเช็ค)
ActiveCell.Offset(0, 1).NumberFormat = "#,##0"
6
แบบฝึกหัด 7.2 ให้นิสิตศึกษาคำสั่งต่อไปนี้ คำสั่ง การตรวจสอบว่าเป็นข้อมูลวันที่หรือไม่และให้แสดง Message Box Sub TestDate() Range("B2").Select Mydate = InputBox("Please Enter Date") If Mydate <> "" And IsDate(Mydate) Then ActiveCell.Value = Mydate Else MsgBox "Invalid Date Format" ActiveCell.Value = "" Call TestDate ‘’’ การเขียนโปรแกรมลักษณะนี้ต้องระวัง เนื่องจากโปรแกรมจะไม่หยุดทำงาน ‘’’’หากข้อมูลที่ใส่ยังไม่ถูกต้อง End If End Sub
7
คำสั่งตรวจสอบว่าเป็นตัวเลขหรือไม่
Sub TestNumeric() Range("B6").Select MyNum = InputBox("Please Enter Numeric") If MyNum <> "" And IsNumeric(MyNum) Then ActiveCell.Value = MyNum Else MsgBox "Invalid Numeric Format" ActiveCell.Value = "" Call TestNumeric End If End Sub
8
แบบฝึกหัด 7.3 การหาส่วนลดของหนังสือ ให้นิสิต Copy คำสั่งลงใน Program อ่านค่า และแปรความหมายของแต่ละบรรทัดส่งอาจารย์ Sub calculateNetAmount() Range("E3").Select MyDiscount = InputBox("Enter discount rate", "Discount rate", 0.1) Do While Not IsEmpty(ActiveCell.Value) ActiveCell.Offset(0, 1).Value = ActiveCell.Value * (1 - MyDiscount) ActiveCell.Offset(0, 1).NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Loop End Sub
9
ผลลัพธ์จากคำสั่ง
10
Format ตัวเลข ตัวเลข #,#00.00 #,###.## #,##0.00 1 01.00 1. 1.00 55
55.00 55. 299 299.00 299. 2,500.56
11
คำสั่ง Insert Sheet Sub Insertworksheet()
nameSheet = InputBox("ป้อนชื่อ Sheet", "กำหนดชื่อ Sheet") If nameSheet <> "" Then ActiveWorkbook.Sheets.Add ActiveSheet.Name = nameSheet End If End Sub
12
หลังจาก Run คำสั่งจะมี Message Box ขึ้นมาให้ใส่ชื่อ Sheet ใหม่
หลังจากนั้นจะได้ผลลัพธ์ดังภาพถัดไป
13
การทำงานที่ระบุ Worksheet
รูปแบบคำสั่งหาผลรวมจากบทเรียนที่ผ่านมา ActiveCell.Formula = "=Sum(" & cellrange & ")" ActiveCell.Offset(0, 1).Formula = "=Sum(" & DataRange & ")" ActiveCell.Offset(0, 1).Value = "=Sum(" & DataRange & ")“ หรืออาจหาผลรวมได้จาก Result = WorksheetFunction.Sum(Worksheets(“Sheet1").Range("C3:C5"))
14
การคำนวณข้าม Sheet
15
สร้างข้อมูลดังตาราง
16
ให้ Copy คำสั่งต่อไปนี้
Sub SumAmount() Dim result As Double Result = WorksheetFunction.Sum(Worksheets(“ข้อมูลรายการสินค้าในร้าน").Range("C3:C5")) Worksheets(“ผลรวม").Range("A1").Value = “ผลรวมยอดขายสินค้าทั้งหมดคือ" Worksheets(“ผลรวม").Range("B1").Value = result Worksheets(“ผลรวม").Range("C1").Value = “บาท" End Sub
17
จะได้ผลลัพธ์ดังนี้
18
จากนั้นให้นิสิตศึกษาความแตกต่างระหว่าง
การเขียนคำสั่งใน Sheet1 การเขียนคำสั่ง Module
19
การสร้าง User Form
20
การใช้ Text box ActiveCell.Value = txtDate.Text
ActiveCell.Offset(0, 1) = txtName.Text ActiveCell.Offset(0, 2).Value = txtSurName.Text ActiveCell.Offset(0, 3).Value = txtAddress.Text ActiveCell.Offset(0, 4).Value = Lstdepartment.Value ActiveCell.Offset(0, 5).Value = txtSalary.Text ActiveCell.Offset(0, 6).Value = CboCountry.Text
21
การ Add Combo box Private Sub AddCountry() CboCountry.AddItem "China"
CboCountry.AddItem "Japan" CboCountry.AddItem "Korea" CboCountry.AddItem "Taiwan" CboCountry.AddItem "Thailand" CboCountry.Text = CboCountry.List(0) ''' ข้อมูลลำดับแรกที่แสดงใน Combo Box คือ List (0) End Sub
22
การแสดงค่าจาก Combo Box
ActiveCell.Offset(0, 6).Value = CboCountry.Text
23
การ Add List Box Private Sub AddDepartment()
Lstdepartment.AddItem "Accounting" Lstdepartment.AddItem "IT" Lstdepartment.AddItem "Marketing" Lstdepartment.AddItem "Human Resource" Lstdepartment.ListIndex = 0 End Sub
24
การแสดงค่าจาก List Box
ActiveCell.Offset(0, 4).Value = Lstdepartment.Value
25
การแสดงค่าจาก Option Button
If optMale.Value = True Then ActiveCell.Offset(0, 7).Value = “พนักงานชาย" End If
26
การแสดงค่าจาก Check Box
If chk01.Value = True Then ActiveCell.Offset(0, 8).Value = “ท่องเที่ยว" End If
27
การบ้าน
28
1. สร้าง Form ชื่อ frmEmployee
29
2. Insert Module Sub showForm() frmEmployee.show End Sub
30
3. ปุ่มบันทึกข้อมูลพนักงานเรียก Procedure Showform
31
การทำงานของปุ่ม Close
Private Sub CmdClose_Click() Unload Me End Sub
32
การทำงานของปุ่มบันทึกข้อมูล
ให้นำข้อมูลที่บันทึกจากหน้าจอลงสู่ Excel
33
หนังสืออ้างอิง เรียนลัด VBA บน Excel, วิศัลย์ พัวรุ่งโรจน์
Excel VBA Programming, วิชา ศิริธรรมจักร์ และสุรเชษฐ์ วงศ์ชัยพรพงษ์
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.