😀 ในการใช้งาน VBA จำเป็นต้องศึกษา Loop Structure ที่สำคัญเรื่องหนึ่งสำหรับการเข้าถึงสมาชิกของ Object หรือตัวแปร คือ For…Next และ For Each…Next และเมื่อเข้าถึงไปยังสมาชิกแต่ละตัวแล้วเราสามารถจะเขียน
คำสั่งใด ๆ ได้ตามต้องการ
ในการ Loop ไปยังค่าของตัวเลขนั้น เราสามารถกำหนด Step ได้ด้วย เช่นให้ Loop ไปครั้งละ 10, 20, 100 ฯลฯ สามารถ Loop ได้ทั้งจากน้อยไปหามากและจากมากไปหาน้อยแล้วแต่ความต้องการ
ส่วนการ Loop ไปยัง Object แต่ละตัวจาก Objects ทั้งหมดจะช่วยให้เราเข้าถึง Object เป็นรายตัวเพื่อจะดำเนินการใด ๆ เช่น เปลี่ยนค่า ลบ คัดลอกไปยังปลายทาง ฯลฯ ซึ่งจะช่วยให้เราทำงานในปริมาณมก ๆ ได้โดยสะดวกรวดเร็ว
🧑💻 ตัวอย่างการ Code แสดงการ Loop ด้วย For…Next และ For Each…Next
'Normal forward loop Sub ForNextLoop() Dim i As Integer For i = 1 To 10 Sheets(1).Range("a" & i) = i Next i End Sub 'Loop with step down Sub ForNextLoopStepDown() Dim i As Integer For i = 50 To 1 Step -2 Sheets(1).Range("a" & i) = i Next i End Sub 'Loop with step up Sub ForNextLoopStepUp() Dim i As Integer For i = 1 To 100 Step 4 Sheets(1).Range("a" & i) = i Next i End Sub 'Loop each cell in used range of sheet 1 'and compare value with 0, if less than 0 'assign vallue of cell to 0 Sub ForEachNext() Dim a As Range For Each a In Sheets(1).UsedRange If a < 0 Then a.Value = 0 End If Next a End Sub
📹 Video แสดงตัวอย่างการใช้ For…Next (ต่อ)
🧭 Timeline หัวข้อหลัก
- 00:00:13 แนะนำวัตถุประสงค์: ใช้ For…Next เพื่อควบคุมการทำงานซ้ำ
- 00:00:45 อธิบายโครงสร้างพื้นฐานของ For…Next
- 00:01:30 สาธิตการวนรอบตัวเลขจาก 1 ถึง 10
- 00:02:15 ใช้ตัวแปรนับรอบ เช่น i เพื่อควบคุมการทำงาน
- 00:03:00 แสดงผลลัพธ์ใน Immediate Window และเซลล์
- 00:04:20 ประยุกต์ใช้ For…Next กับการกรอกข้อมูลในช่วงเซลล์
- 00:06:00 ใช้เงื่อนไขร่วมกับ For…Next เพื่อกรองข้อมูล
- 00:08:10 สาธิตการวนผ่านแถวในชีต Excel เพื่อตรวจสอบค่า
- 00:10:30 ใช้ For…Next ซ้อนกัน (Nested Loop) เพื่อควบคุมหลายมิติ
- 00:13:00 อธิบายข้อควรระวัง เช่น การกำหนดค่าตัวแปรและการหลุดจากลูป
- 00:15:00 ทดสอบการเปลี่ยนค่าข้อมูลและดูผลลัพธ์ที่เปลี่ยนตาม
- 00:17:30 สรุป: For…Next เป็นโครงสร้างวนรอบที่ทรงพลังและยืดหยุ่น
📹Video แสดงตัวอย่างการใช้ For Each…Next
🧭 Timeline หัวข้อหลัก
- 🧭 Timeline หัวข้อหลัก
- 00:00:13 แนะนำวัตถุประสงค์: ใช้ For Each…Next เพื่อวนผ่านสมาชิกของ Object
- 00:00:40 อธิบายความแตกต่างระหว่าง For…Next และ For Each…Next
- 00:01:10 สาธิตการวนผ่านเซลล์ใน UsedRange ของชีต
- 00:01:25 ตรวจสอบค่าของเซลล์แต่ละตัว เช่น ถ้าน้อยกว่า 0 ให้เปลี่ยนเป็น 0
- 00:02:10 ใช้ตัวแปรประเภท Range เพื่อเข้าถึงเซลล์แต่ละตัว
- 00:02:45 แสดงผลลัพธ์หลังการปรับค่าในเซลล์
- 00:03:20 ยกตัวอย่างการใช้ For Each กับ Object ประเภทอื่น เช่น Worksheets
- 00:04:10 ประยุกต์ใช้กับงานจริง เช่น การล้างข้อมูลหรือจัดรูปแบบ
- 00:05:00 ทดสอบการเปลี่ยนข้อมูลและดูผลลัพธ์ที่เปลี่ยนตาม
- 00:06:10 สรุป: For Each…Next เป็นโครงสร้างที่ช่วยให้การเข้าถึง Object เป็นรายตัวได้อย่างสะดวกและแม่นยำ
🔗 Link ที่เกี่ยวข้อง
สามารถดาวน์โหลดไฟล์ตัวอย่างได้จาก Link นี้ครับ Example File
กรณีมีปัญหาการใช้งาน Excel และ VBA สามารถสอบถามได้ที่ snasui.com
Pingback: VBA Excel Do...Loop - Excel Tips and Tricks by Santipong Nasui