อาร์เรย์ Excel VBA: คืออะไร วิธีใช้ และประเภทของอาร์เรย์ใน VBA
อาร์เรย์ VBA คืออะไร
อาร์เรย์ถูกกำหนดให้เป็นตำแหน่งหน่วยความจำที่สามารถจัดเก็บได้มากกว่าหนึ่งค่า ค่าทั้งหมดต้องเป็นประเภทข้อมูลเดียวกัน สมมติว่าคุณต้องการจัดเก็บรายการเครื่องดื่มที่คุณชื่นชอบไว้ในตัวแปรเดียว คุณสามารถใช้อาร์เรย์ VBA เพื่อดำเนินการดังกล่าวได้
เมื่อใช้อาร์เรย์ คุณสามารถอ้างอิงถึงค่าที่เกี่ยวข้องด้วยชื่อเดียวกันได้ คุณสามารถใช้ดัชนีหรือตัวห้อยเพื่อแยกความแตกต่างได้ แต่ละค่าจะเรียกว่าองค์ประกอบของอาร์เรย์ Excel VBA โดยจะต่อเนื่องกันตั้งแต่ดัชนี 0 ถึงค่าดัชนีสูงสุด
บทช่วยสอนนี้ถือว่าคุณกำลังใช้งานอยู่ Microsoft Excel เวอร์ชัน 2013 ความรู้ยังคงนำไปใช้กับเวอร์ชันอื่น ๆ Microsoft เอ็กเซลอีกด้วย
ข้อดีของอาร์เรย์คืออะไร?
ต่อไปนี้เป็นประโยชน์บางประการที่ฟังก์ชันอาร์เรย์ VBA นำเสนอ
- จัดกลุ่มข้อมูลที่เกี่ยวข้องกับตรรกะเข้าด้วยกัน สมมติว่าคุณต้องการจัดเก็บรายชื่อนักเรียน คุณสามารถใช้ตัวแปรอาร์เรย์เดี่ยวที่มีตำแหน่งแยกสำหรับหมวดหมู่ของนักเรียน เช่น Kinder Garden ประถมศึกษา มัธยมศึกษา มัธยมปลาย ฯลฯ
- อาร์เรย์ทำให้ง่ายต่อการเขียนโค้ดที่สามารถบำรุงรักษาได้ สำหรับข้อมูลที่เกี่ยวข้องกันทางตรรกะเดียวกัน จะช่วยให้คุณสามารถกำหนดตัวแปรตัวเดียว แทนที่จะกำหนดตัวแปรมากกว่าหนึ่งตัว
- ประสิทธิภาพที่ดีขึ้น - เมื่อกำหนดอาร์เรย์แล้ว การเรียกค้น จัดเรียง และแก้ไขข้อมูลก็จะเร็วขึ้น
ประเภทของอาร์เรย์ใน VBA
VBA รองรับอาร์เรย์สองประเภทคือ
- คงที่ – อาร์เรย์ประเภทนี้มีจำนวนองค์ประกอบที่กำหนดไว้ล่วงหน้าคงที่ซึ่งสามารถจัดเก็บได้ ไม่สามารถเปลี่ยนขนาดของชนิดข้อมูลของ Static Array ได้ สิ่งเหล่านี้มีประโยชน์เมื่อคุณต้องการทำงานกับเอนทิตีที่ทราบ เช่น จำนวนวันในหนึ่งสัปดาห์ เพศ ฯลฯตัวอย่างเช่น: Dim ArrayMonth(12) เป็นสตริง
- พลวัต – อาร์เรย์ประเภทนี้ไม่มีจำนวนองค์ประกอบที่กำหนดไว้ล่วงหน้าคงที่ซึ่งสามารถจัดเก็บได้ สิ่งเหล่านี้มีประโยชน์เมื่อทำงานกับเอนทิตีที่คุณไม่สามารถกำหนดหมายเลขล่วงหน้าได้ตัวอย่างเช่น: Dim ArrayMonth() เป็นตัวแปร
ไวยากรณ์ในการประกาศอาร์เรย์
อาร์เรย์แบบคงที่
ไวยากรณ์สำหรับการประกาศ คงที่ อาร์เรย์เป็นดังนี้:
Dim arrayName (n) as datatype
ที่นี่
รหัส | การกระทำ |
---|---|
ประเภทข้อมูล Dim arrayName (n) |
|
ไดนามิกอาร์เรย์
ไวยากรณ์สำหรับการประกาศ ไดนามิค อาร์เรย์เป็นดังนี้:
Dim arrayName() as datatype ReDim arrayName(4)
ที่นี่
รหัส | การกระทำ |
---|---|
ประเภทข้อมูล Dim arrayName () |
|
ReDim ชื่ออาร์เรย์(4) |
|
ขนาดอาร์เรย์
อาร์เรย์สามารถเป็นหนึ่งมิติ สองมิติ หรือหลายมิติ
- มิติหนึ่ง: ในมิตินี้ อาร์เรย์ใช้เพียงดัชนีเดียวเท่านั้น เช่น จำนวนคนในแต่ละวัย
- สองมิติ: ในมิตินี้ อาร์เรย์ใช้ดัชนี 2 รายการ เช่น จำนวนนักเรียนในแต่ละชั้นเรียน โดยจะต้องมีจำนวนชั้นเรียนและจำนวนนักเรียนในแต่ละชั้นเรียน
- หลายมิติ: ในมิตินี้ อาร์เรย์ใช้ดัชนีมากกว่าสองดัชนี เช่น อุณหภูมิในเวลากลางวัน ( 30, 40, 20).
วิธีใช้อาร์เรย์ใน Excel VBA
เราจะสร้างแอปพลิเคชันง่ายๆ แอปพลิเคชันนี้จะเพิ่มข้อมูลจากตัวแปรอาร์เรย์ลงในแผ่นงาน Excel ในตัวอย่างอาร์เรย์ VBA นี้ เราจะทำสิ่งต่อไปนี้
- สร้างใหม่ Microsoft เวิร์กบุ๊ก Excel และบันทึกเป็นเวิร์กบุ๊กที่เปิดใช้งานแมโคร Excel (*.xlsm)
- เพิ่มปุ่มคำสั่งลงในสมุดงาน
- ตั้งค่าคุณสมบัติชื่อและคำอธิบายของปุ่มคำสั่ง
- การเขียนโปรแกรม VBA ที่เติมแผ่นงาน Excel
ให้ทำแบบฝึกหัดนี้ทีละขั้นตอน
ขั้นตอนที่ 1 - สร้างสมุดงานใหม่
- จุดเปิด Microsoft Excel
- บันทึกเวิร์กบุ๊กใหม่เป็น VBA Arrays.xlsm
ขั้นตอนที่ 2 - เพิ่มปุ่มคำสั่ง
หมายเหตุ ส่วนนี้จะถือว่าคุณคุ้นเคยกับกระบวนการสร้างอินเทอร์เฟซใน Excel หากคุณไม่คุ้นเคย อ่านบทช่วยสอน การควบคุมฟอร์ม VBA Excel และการควบคุม ActiveX- มันจะแสดงวิธีสร้างอินเทอร์เฟซ
- เพิ่มปุ่มคำสั่งลงในแผ่นงาน
- ตั้งค่าคุณสมบัติชื่อเป็นcmdLoadBeverages
- ตั้งค่าคุณสมบัติคำอธิบายภาพเป็นโหลดเครื่องดื่ม
GUI ของคุณควรเป็นดังนี้
ขั้นตอนที่ 3 – บันทึกไฟล์
- คลิกที่ปุ่มบันทึกเป็น
- เลือกสมุดงานที่เปิดใช้งานแมโคร Excel (*.xlsm) ดังที่แสดงในภาพด้านล่าง
ขั้นตอนที่ 4 – เขียนโค้ด
ตอนนี้เราจะเขียนโค้ดสำหรับแอปพลิเคชันของเรา
- คลิกขวาที่ปุ่ม Load Beverages และเลือกรหัสมุมมอง
- เพิ่มโค้ดต่อไปนี้ลงในเหตุการณ์คลิกของ cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
ที่นี่
รหัส | การกระทำ |
---|---|
เครื่องดื่มติ่มซำ (1 ถึง 4) เป็นสตริง |
|
เครื่องดื่ม(1) = “เป๊ปซี่” |
|
Sheet1.Cells(1, 1).Value = “เครื่องดื่มโปรดของฉัน” |
|
Sheet1.เซลล์(2, 1).ค่า = เครื่องดื่ม(1) |
|
การทดสอบแอปพลิเคชันของเรา
เลือกแท็บนักพัฒนาซอฟต์แวร์และตรวจสอบให้แน่ใจว่าปุ่มโหมดการออกแบบเป็น "ปิด" ตัวบ่งชี้คือจะมีพื้นหลังสีขาวและไม่ใช่พื้นหลังที่มีสี (เขียว) (ดูภาพด้านล่าง)
คลิกที่ปุ่มโหลดเครื่องดื่ม
คุณจะได้รับผลลัพธ์ดังต่อไปนี้
ดาวน์โหลด Excel ที่มีโค้ดด้านบน
สรุป
- อาร์เรย์เป็นตัวแปรที่สามารถจัดเก็บค่าได้มากกว่าหนึ่งค่า
- เอ็กเซล VBA รองรับอาร์เรย์แบบคงที่และไดนามิก
- อาร์เรย์ทำให้ง่ายต่อการเขียนโค้ดที่สามารถบำรุงรักษาได้ เมื่อเทียบกับการประกาศตัวแปรจำนวนมากสำหรับข้อมูลที่เกี่ยวข้องกันทางตรรกะ