บางครั้งเราไม่สามารถประมาณขนาดของอาร์เรย์ได้เมื่อใช้งาน ดังนั้นจึงเป็นเรื่องง่ายที่จะนึกถึงอาร์เรย์แบบไดนามิก นั่นคือ การเปลี่ยนขนาดของอาร์เรย์แบบไดนามิกระหว่างการใช้งาน นี่เป็นเรื่องง่ายที่จะนำไปใช้ใน VB ลองใช้ตัวอย่างเฉพาะเพื่ออธิบาย:
การกำหนดอาร์เรย์แบบไดนามิกใน VB มักเกี่ยวข้องกับสองขั้นตอน:
(1) ใช้ Dim, Private หรือ Public เพื่อประกาศอาร์เรย์ที่ไม่มีตัวห้อยในเลเยอร์ฟอร์มหรือโมดูลมาตรฐาน (ไม่สามารถละเว้นวงเล็บได้)
(2) ใช้คำสั่ง ReDim เพื่อกำหนดอาร์เรย์ที่มีตัวห้อยในกระบวนการ
หน้าที่ของคำสั่ง ReDim คือการชี้ขนาดของอาร์เรย์อีกครั้ง จะจัดสรรพื้นที่เก็บข้อมูลเมื่อโปรแกรมรันคำสั่ง ReDim
รูปแบบ: ReDim(ชื่ออาร์เรย์)(ตัวห้อย)[As(type)]
ฟังก์ชั่น: เปลี่ยนขนาดและพื้นที่เก็บข้อมูลของอาร์เรย์แบบไดนามิก
แสดงให้เห็น:
(1) ตัวห้อยอาจเป็นค่าคงที่หรือตัวแปรที่มีค่าแน่นอน
(2) ความหมายของแต่ละพารามิเตอร์ในคำสั่งเหมือนกับคำสั่งที่ใช้ Dim เพื่อกำหนดอาร์เรย์
(3) คำสั่ง ReDim สามารถใช้กับอาร์เรย์แบบไดนามิกเท่านั้น โดยสามารถเปลี่ยนขนาดของแต่ละมิติได้ แต่เปลี่ยนจำนวนมิติไม่ได้
(4) เมื่อโปรแกรมถูกคอมไพล์ อาร์เรย์ทั้งหมดในคำสั่ง ReDim จะถูกประกาศเป็นอาร์เรย์แบบไดนามิก เมื่อโปรแกรมกำลังทำงานอยู่เมื่อมีการดำเนินการคำสั่ง ReDim ขอบเขตบนและล่างใหม่จะถูกกำหนดให้กับอาร์เรย์ใหม่ค่าขององค์ประกอบอาร์เรย์จะถูกเตรียมใช้งานค่าขององค์ประกอบตัวเลขทั้งหมดจะถูกตั้งค่าเป็น 0 และองค์ประกอบสตริงถูกตั้งค่าเป็นอักขระว่าง
(5) คำสั่ง ReDim สามารถกำหนดอาร์เรย์ในลักษณะเดียวกับคำสั่ง Dim ในโปรแกรมเดียวกัน คำสั่ง ReDim ยังสามารถใช้ได้หลายครั้งอีกด้วย ก่อนที่จะใช้คำสั่ง :ReDim เพื่อกำหนดอาร์เรย์ใหม่ คุณสามารถใช้คำสั่ง :Erase เพื่อลบอาร์เรย์เดิมได้
ตัวอย่าง:
Dimaa()AsLong' กำหนดอาร์เรย์แบบไดนามิก
Redimaa(10)'ปรับขนาดของอาร์เรย์แบบไดนามิก
หรี่ i เป็นจำนวนเต็ม
สำหรับ i=1 ถึง 10
เออ(ผม) = ผม
ต่อไป
Redim aa(5) 'ปรับขนาดอีกครั้ง
...ปฏิบัติการอื่นๆ