למשל, הפקודה Sheets, היא למעשה Collection של אובייקטים, ולא אובייקט יסודי. השימוש בפקודה זו פונה לאוסף מוכן וקיים כבר בתוכנה שמאגד את כל האובייקטים של הגיליונות בחוברת העבודה. השם שניתן לאוסף זה הוא Sheets. כדי להתייחס לאובייקט (גיליון) מסוים מתוך האוסף, ניתן לפנות אליו באופנים הבאים:
Sheets("Sheet3") – פנייה לשם הגיליון. מכאן ניתן ללמוד שלכל אובייקט באוסף ניתן לתת שם.
Sheets(3) – פנייה לפריט השלישי באוסף הגיליונות. מכאן ניתן ללמוד שהאובייקטים המצויים באוסף מאורגנים בצורה כרונולוגית ומקבלים גם את המספר הכרונולוגי שלהם באוסף.
בהתאם, גם הפקודה Range היא למעשה אוסף מוכן של כל האובייקטים מסוג תאים, Charts הוא אוסף מוכן של כל התרשימים וקיימים עוד אוספים מוכנים נוספים.
יצירת אוספים מותאמים אישית
ניתן לבנות אוספים חדשים ומותאמים אישית של אובייקטים, ואף ליצור אובייקטים חדשים בעלי תכונות חדשות. כפי שניתן ללמוד מכללי התחביר הבסיסיים של VBA (ר' עמ' 22), התכונות הבסיסיות של כל אובייקט הן מאפיינים או שיטות. את האובייקטים החדשים הללו ניתן לאסוף ב-Collection מותאם אישית.
למשל, Collection של רכבים והתכונות שלהם: האוסף יקרא Cars וכל אובייקט בתוכו יהיה מסוג Car. לאובייקטים מסוג זה יש מאפיינים ושיטות משלהם:
X = Cars(1).Model שורת קוד זו תכניס אל תוך המשתנה X את ההגדרה של מאפיין Model של האובייקט הראשון באוסף Cars. כלומר, לכל אובייקט מסוג Car יש מספר מאפיינים, אשר אחד מהם הוא שם המודל של הרכב.
Debug.Print Cars(3).Paint הפקודה Debug מאפשרת לבדוק הצהרות לצורך ניפוי באגים בקוד. אחת האפשרויות לעשות זאת היא באמצעות הדפסה ((Print של תוצאת ההצהרה אל תוך חלונית התצוגה Immediate Window. את חלונית זו ניתן להציג דרך בחירתה בתפריט View. שורת קוד הזו תציג את הביטוי המשויך למאפיין של צבע הרכב השלישי באוסף.
Range("A1").Value = Cars(6).ManYear שורת קוד זו תזין לערך התא 6A את שנת הייצור של האובייקט השישי באוסף.
ליצירת Collection חדש יש להכריז עליו בתחילת הקוד באופן הבא:
Dim {Collection's Name} As New Collection
להוספת פריטים לתוך האוסף יש להשתמש בפקודה Add. שם הפריט יהיה בין גרשיים כפולים. כאמור, בנוסף לשם, כל אחד מהפריטים שיתווספו יקבל מספר סידורי כרונולוגי באוסף. לדוגמה:
ניתן לראות בדוגמה גם פקודות נפוצות נוספות:
- Remove – להסרת פריט מהאוסף. אחריה יש לציין את מספר הפריט הרצוי להסרה.
- Count – לספירט כמות הפריטים באוסף.
- Before \ After – למיקום פריטים חדשים במקום רצוי בסדר הכרונולוגי של הפריטים
הפריטים באוסף זה הם אינם אובייקטים מפותחים של ממש, עם מאפיינים ושיטות ייחודיים להם. בהתאם, כמות הפעולות שניתן לבצע על אוסף פריטים זה היא מצומצמת. אודות יצירת אובייקטים מותאמים אישית של ממש (בשונה מפריטים באוסף) והגדרת המאפיינים הייחודיים שלהם בפרק הבא Class Module.