לשם כך ה-VBA מאפשר לנו להשתמש במשתנים, Variables. משתנה הוא מיכל אחסון זמני של מידע, שניתן להשתמש ולשב אותו בקוד באופנים רבים. האחסון הוא זמני, כי עם סיום ריצת הקוד תוכנו מתרוקן.
למשל, ניתן לשלב במהלך רצף הפקודות את שורת הקוד:
Mish – ביטוי המבטא את המשתנה. VBA יודע להתייחס לביטוי הזה כמשתנה כיוון שהוא ביטוי חדש, המופיע ללא הקשר של אובייקט, מאפיין או שיטה. שורת הקוד שבדוגמה מציבה בתוכו ערך שהוא תוצאת החישוב של המכפלה בין הערך שבתא הפעיל בגיליון והמספר 5.
כללים לשם המשתנה:
- רצוי שיהיה טקסטואלי.
- רצוי שיהיה קצר וברור.
- אסורים תווים מיוחדים, כולל רווחים, למעט קו תחתון (_).
- לא יכול להיות זהה לפקודה שכבר קיימת בתוכנה, מובנית או מאקרו שהתווסף.
הכרזה על משתנים
סוגי נתונים שונים, כמו מספר, טקסט, טווח תאים ועוד, תופסים נפחים שונים בזיכרון ולכן משפיעים באופן שונה על מהירות ריצת הקוד. למשל, משתנה-על, אשר נדרש להכיל את כל סוגי הנתונים, תופס הרבה יותר מקום בזיכרון מאשר משתנה מסוג בוליאני, שמכיל את הערכים True או False בלבד.
לכן, רצוי ומומלץ מאוד להכריז על סוג המשנים בתחילת הקוד, אחרת כל המשתנים יוגדרו כמשתני-על, שהם הגדולים ביותר בנפחם, ומכבידים על זמן ריצת הקוד. ההכרזה מודיעה להמשך הקוד באילו משתנים יש להשתמש ומה הנפח שיש להקצות להם בזיכרון. הכרזה זו מסייעת גם לניהול קוד רב משתנים, כדי למנוע מצב שבו יוזנו נתונים מסוגים לא נכונים, ע"י התראת שגיאה.
הכרזה על משתנים בתחילת הקוד מתבצעת לפי המבנה הבא:
- Dim (מהמילה Dimension, ממדים) – לפתיחת ההכרזה על משתנה.
- שם המשתנה – Mish בדוגמה הנוכחית.
- סוג המשתנה – String: לנתונים מסוג מחרוזות טקסטואליות.
ישנם סוגים רבים של משתנים. להלן מספר סוגים עיקריים:
Variant – משתנה-על. יכול להכיל כל ערך ותופס מקום רב בזיכרון. לא חובה להכריז על משתנה Variant. משתנה שלא הוכרז יקבע אוטומטית מסוג Variant.
String – לאחסנת מחרוזות תווים.
Date – לאחסנת תאריכים.
Byte – לאחסנת מספרים בלבד 0 עד 255.
Integer – לאחסנת מספרים בלבד בין 32,768- עד 32,768.
Long – לאחסנת מספרים בלבד בין 2,147,483,648- עד 2,147,483,648.
Range – לאחסנת טווחים.
ניתן להגדיר חובת הכרזת משתנים בכל קוד בו הם מופיעים:
- תפריט Tools בעורך ה-VBA.
- Options.
- יש לסמן את תיבת הבחירה Require Variable Declaration בלשונית Editor.
בדוגמה הבאה, הקוד מאחסן את ערך המע"מ מתוך מחיר נתון, אל תוך משתנה:
השורה הראשונה פוקדת, שהערך בתא מתחת לתא הפעיל, יהיה הטקסט "Total Bill".
השורה השנייה פוקדת, שבתוך המשתנה Total_Price יוצב הערך של התא הפעיל.
השורה השלישית פוקדת, שבתוך המשתנה Vat_Prod יוצב הערך שהוא תוצאת המכפלה בין הערך שבתא 1A והערך של המשתנה Total_Price (שבו כאמור הוצב הערך שבתא הפעיל, לפי שורת הקוד הקודמת).
לפי הקוד שבדוגמה, צפייה בתוצאת ההרצה בגיליון שבתוכנה לא תציג שום שינוי, למעט הביטוי Total Bill מתחת לתא הפעיל, כיוון שכל תוצאות החישוב ממוקמות בתוך משתנים, שהם אחסונים זמניים של ה-VBA.
כדי לגשת לאיזור האחסון, להציג את המשתנים ולעקוב אחר המידע שמאוחסן ומתחלף בתוך המשתנים ניתן להשתמש בחלונית Locals.
חלונית Locals
חלונית Locals מציגה את האחסונים הזמניים ואת המידע המתחלף בתוכם במהלך ריצת הקוד. כדי להציג את חלונית Locals יש לבחור אותה מתוך תפריט View. החלונית תופיע בתחתית ממשק העורך:
אחסון המשתנים הוא זמני, כאמור, ומתרוקן מיד עם סיום ריצת הקוד. לכן, כדי לצפות במידע המוצב ומתחלף בתוך המשתנים בזמן אמת, יש להריץ את הקוד במצב של צעד אחר צעד (Step Into או מקש F8).