อาร์เรย์ Excel VBA: คืออะไร วิธีใช้ และประเภทของอาร์เรย์ใน VBA

อาร์เรย์ VBA คืออะไร

อาร์เรย์ถูกกำหนดให้เป็นตำแหน่งหน่วยความจำที่สามารถจัดเก็บได้มากกว่าหนึ่งค่า ค่าทั้งหมดต้องเป็นประเภทข้อมูลเดียวกัน สมมติว่าคุณต้องการจัดเก็บรายการเครื่องดื่มที่คุณชื่นชอบไว้ในตัวแปรเดียว คุณสามารถใช้อาร์เรย์ VBA เพื่อดำเนินการดังกล่าวได้

เมื่อใช้อาร์เรย์ คุณสามารถอ้างอิงถึงค่าที่เกี่ยวข้องด้วยชื่อเดียวกันได้ คุณสามารถใช้ดัชนีหรือตัวห้อยเพื่อแยกความแตกต่างได้ แต่ละค่าจะเรียกว่าองค์ประกอบของอาร์เรย์ Excel VBA โดยจะต่อเนื่องกันตั้งแต่ดัชนี 0 ถึงค่าดัชนีสูงสุด

บทช่วยสอนนี้ถือว่าคุณกำลังใช้งานอยู่ Microsoft Excel เวอร์ชัน 2013 ความรู้ยังคงนำไปใช้กับเวอร์ชันอื่น ๆ Microsoft เอ็กเซลอีกด้วย

ข้อดีของอาร์เรย์คืออะไร?

ต่อไปนี้เป็นประโยชน์บางประการที่ฟังก์ชันอาร์เรย์ VBA นำเสนอ

  1. จัดกลุ่มข้อมูลที่เกี่ยวข้องกับตรรกะเข้าด้วยกัน สมมติว่าคุณต้องการจัดเก็บรายชื่อนักเรียน คุณสามารถใช้ตัวแปรอาร์เรย์เดี่ยวที่มีตำแหน่งแยกสำหรับหมวดหมู่ของนักเรียน เช่น Kinder Garden ประถมศึกษา มัธยมศึกษา มัธยมปลาย ฯลฯ
  2. อาร์เรย์ทำให้ง่ายต่อการเขียนโค้ดที่สามารถบำรุงรักษาได้ สำหรับข้อมูลที่เกี่ยวข้องกันทางตรรกะเดียวกัน จะช่วยให้คุณสามารถกำหนดตัวแปรตัวเดียว แทนที่จะกำหนดตัวแปรมากกว่าหนึ่งตัว
  3. ประสิทธิภาพที่ดีขึ้น - เมื่อกำหนดอาร์เรย์แล้ว การเรียกค้น จัดเรียง และแก้ไขข้อมูลก็จะเร็วขึ้น

ประเภทของอาร์เรย์ใน VBA

VBA รองรับอาร์เรย์สองประเภทคือ

  • คงที่ – อาร์เรย์ประเภทนี้มีจำนวนองค์ประกอบที่กำหนดไว้ล่วงหน้าคงที่ซึ่งสามารถจัดเก็บได้ ไม่สามารถเปลี่ยนขนาดของชนิดข้อมูลของ Static Array ได้ สิ่งเหล่านี้มีประโยชน์เมื่อคุณต้องการทำงานกับเอนทิตีที่ทราบ เช่น จำนวนวันในหนึ่งสัปดาห์ เพศ ฯลฯตัวอย่างเช่น: Dim ArrayMonth(12) เป็นสตริง
  • พลวัต – อาร์เรย์ประเภทนี้ไม่มีจำนวนองค์ประกอบที่กำหนดไว้ล่วงหน้าคงที่ซึ่งสามารถจัดเก็บได้ สิ่งเหล่านี้มีประโยชน์เมื่อทำงานกับเอนทิตีที่คุณไม่สามารถกำหนดหมายเลขล่วงหน้าได้ตัวอย่างเช่น: Dim ArrayMonth() เป็นตัวแปร

ไวยากรณ์ในการประกาศอาร์เรย์

อาร์เรย์แบบคงที่

ไวยากรณ์สำหรับการประกาศ คงที่ อาร์เรย์เป็นดังนี้:

Dim arrayName (n) as datatype

ที่นี่

รหัส การกระทำ
ประเภทข้อมูล Dim arrayName (n)
  1. ประกาศตัวแปรอาร์เรย์ชื่อ arrayName โดยมีขนาด n และมีประเภทข้อมูล Size หมายถึงจำนวนองค์ประกอบที่อาร์เรย์สามารถจัดเก็บได้

ไดนามิกอาร์เรย์

ไวยากรณ์สำหรับการประกาศ ไดนามิค อาร์เรย์เป็นดังนี้:

Dim arrayName() as datatype
ReDim arrayName(4)

ที่นี่

รหัส การกระทำ
ประเภทข้อมูล Dim arrayName ()
  1. ประกาศตัวแปรอาร์เรย์ที่เรียกว่า arrayName โดยไม่ระบุจำนวนองค์ประกอบ
ReDim ชื่ออาร์เรย์(4)
  1. มันระบุขนาดอาร์เรย์หลังจากกำหนดอาร์เรย์แล้ว

ขนาดอาร์เรย์

อาร์เรย์สามารถเป็นหนึ่งมิติ สองมิติ หรือหลายมิติ

  • มิติหนึ่ง: ในมิตินี้ อาร์เรย์ใช้เพียงดัชนีเดียวเท่านั้น เช่น จำนวนคนในแต่ละวัย
  • สองมิติ: ในมิตินี้ อาร์เรย์ใช้ดัชนี 2 รายการ เช่น จำนวนนักเรียนในแต่ละชั้นเรียน โดยจะต้องมีจำนวนชั้นเรียนและจำนวนนักเรียนในแต่ละชั้นเรียน
  • หลายมิติ: ในมิตินี้ อาร์เรย์ใช้ดัชนีมากกว่าสองดัชนี เช่น อุณหภูมิในเวลากลางวัน ( 30, 40, 20).

วิธีใช้อาร์เรย์ใน Excel VBA

เราจะสร้างแอปพลิเคชันง่ายๆ แอปพลิเคชันนี้จะเพิ่มข้อมูลจากตัวแปรอาร์เรย์ลงในแผ่นงาน Excel ในตัวอย่างอาร์เรย์ VBA นี้ เราจะทำสิ่งต่อไปนี้

  • สร้างใหม่ Microsoft เวิร์กบุ๊ก Excel และบันทึกเป็นเวิร์กบุ๊กที่เปิดใช้งานแมโคร Excel (*.xlsm)
  • เพิ่มปุ่มคำสั่งลงในสมุดงาน
  • ตั้งค่าคุณสมบัติชื่อและคำอธิบายของปุ่มคำสั่ง
  • การเขียนโปรแกรม VBA ที่เติมแผ่นงาน Excel

ให้ทำแบบฝึกหัดนี้ทีละขั้นตอน

ขั้นตอนที่ 1 - สร้างสมุดงานใหม่

  1. จุดเปิด Microsoft Excel
  2. บันทึกเวิร์กบุ๊กใหม่เป็น VBA Arrays.xlsm

ขั้นตอนที่ 2 - เพิ่มปุ่มคำสั่ง

หมายเหตุ ส่วนนี้จะถือว่าคุณคุ้นเคยกับกระบวนการสร้างอินเทอร์เฟซใน Excel หากคุณไม่คุ้นเคย อ่านบทช่วยสอน การควบคุมฟอร์ม VBA Excel และการควบคุม ActiveX- มันจะแสดงวิธีสร้างอินเทอร์เฟซ

  1. เพิ่มปุ่มคำสั่งลงในแผ่นงาน

ใช้อาร์เรย์ใน Excel VBA

  1. ตั้งค่าคุณสมบัติชื่อเป็นcmdLoadBeverages
  2. ตั้งค่าคุณสมบัติคำอธิบายภาพเป็นโหลดเครื่องดื่ม

GUI ของคุณควรเป็นดังนี้

ใช้อาร์เรย์ใน Excel VBA

ขั้นตอนที่ 3 – บันทึกไฟล์

  1. คลิกที่ปุ่มบันทึกเป็น
  2. เลือกสมุดงานที่เปิดใช้งานแมโคร Excel (*.xlsm) ดังที่แสดงในภาพด้านล่าง

ใช้อาร์เรย์ใน Excel VBA

ขั้นตอนที่ 4 – เขียนโค้ด

ตอนนี้เราจะเขียนโค้ดสำหรับแอปพลิเคชันของเรา

  1. คลิกขวาที่ปุ่ม Load Beverages และเลือกรหัสมุมมอง
  2. เพิ่มโค้ดต่อไปนี้ลงในเหตุการณ์คลิกของ 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) เป็นสตริง
  • ประกาศตัวแปรอาร์เรย์ชื่อ Drinks ดัชนีอาร์เรย์แรกคือ 1 และดัชนีอาร์เรย์สุดท้ายคือ 4
เครื่องดื่ม(1) = “เป๊ปซี่”
  • กำหนดค่า Pepsi ให้กับองค์ประกอบอาร์เรย์แรก รหัสที่คล้ายกันอื่น ๆ ทำเช่นเดียวกันกับองค์ประกอบอื่น ๆ ในอาร์เรย์
Sheet1.Cells(1, 1).Value = “เครื่องดื่มโปรดของฉัน”
  • เขียนค่า My Favorite Beverages ในเซลล์ที่อยู่ A1 Sheet1 อ้างอิงถึงชีต และ Cells(1,1) อ้างอิงถึงแถวหมายเลข 1 และคอลัมน์ 1 (B)
Sheet1.เซลล์(2, 1).ค่า = เครื่องดื่ม(1)
  • เขียนค่าขององค์ประกอบอาร์เรย์ที่มีดัชนี 1 ไปยังแถวหมายเลข 1 ของคอลัมน์ XNUMX

การทดสอบแอปพลิเคชันของเรา

เลือกแท็บนักพัฒนาซอฟต์แวร์และตรวจสอบให้แน่ใจว่าปุ่มโหมดการออกแบบเป็น "ปิด" ตัวบ่งชี้คือจะมีพื้นหลังสีขาวและไม่ใช่พื้นหลังที่มีสี (เขียว) (ดูภาพด้านล่าง)

ทดสอบแอปพลิเคชันใน Excel VBA

คลิกที่ปุ่มโหลดเครื่องดื่ม

คุณจะได้รับผลลัพธ์ดังต่อไปนี้

ทดสอบแอปพลิเคชันใน Excel VBA

ดาวน์โหลด Excel ที่มีโค้ดด้านบน

ดาวน์โหลดโค้ด Excel ข้างต้น

สรุป

  1. อาร์เรย์เป็นตัวแปรที่สามารถจัดเก็บค่าได้มากกว่าหนึ่งค่า
  2. เอ็กเซล VBA รองรับอาร์เรย์แบบคงที่และไดนามิก
  3. อาร์เรย์ทำให้ง่ายต่อการเขียนโค้ดที่สามารถบำรุงรักษาได้ เมื่อเทียบกับการประกาศตัวแปรจำนวนมากสำหรับข้อมูลที่เกี่ยวข้องกันทางตรรกะ

จดหมายข่าว Guru99 รายวัน

เริ่มต้นวันใหม่ของคุณด้วยข่าวสาร AI ล่าสุดและสำคัญที่สุดที่ส่งมอบทันที