הצהרת סוג VBA (דוגמה) | כיצד להכריז על משתנים עם סוג VBA?

סוג הוא משפט ב- VBA המשמש להגדרת משתנים הדומים לפונקציית DIM, הוא משמש ברמה המוגדרת על ידי המשתמש, כאשר יש לנו אחד או יותר ערכים במשתנה, ישנן שתי שמות עבור הצהרת סוג שהיא ציבורית או פרטית אולם אלה הם אופציונליים לשימוש, אך שם המשתנה ושם האלמנט נדרשים.

מהי הצהרת סוג ב- Excel VBA?

הצהרת סוג VBA משמשת להגדרת משתנים תחת שם קבוצה יחיד אחד עם סוגי נתונים שונים המוקצים לכל משתנה. זה עוזר לנו לקבץ משתנים מרובים תחת אובייקט יחיד כדי להשתמש בהם בשם הסוג המוגדר.

על ידי הכרזת הצהרת Type אנו יכולים להימנע משימוש במודולי Class ב- VBA. אין צורך במודולי מחרוזת מכיוון שניתן להטמיע אותם במודולים קיימים אשר יכולים לחסוך לנו מקום.

באחד המאמרים הקודמים, דנו ב- "VBA ENUM" כדי לקבץ את כל המשתנים תחת שם הקבוצה היחידה.

לדוגמא, אם יש לך שם קבוצה בשם "מוביילים" יש לנו חברי קבוצה כמו "Redmi, Oppo, Vivo, Samsung, LG וכו '." אז הצהרת Enum נוכל לקבץ יחד עם הערכים שלהם.

Enum Mobiles

רדמי = 12000

Oppo = 18000

ויוו = 18000

סמסונג = 25000

LG = 15000

סוף האנום

ככה, יצרנו ספירות במאמר זה. הבעיה בהצהרת Enum מכיוון שהיא יכולה להכיל רק סוג נתונים LONG. על מנת לקבץ משתנים עם סוגי נתונים שונים, אנו יכולים להשתמש ב"הצהרת VBA TYPE ". במאמר זה נראה לך כיצד לבנות הצהרת סוג ב- VBA. תמשיך לקרוא…

תחביר

לפני שתצהיר על משתנים באמצעות הצהרת Type, עיין בתחביר:

סוג הקבוצה שם             [משתנה 1] כמו סוג הנתונים משתנה             [משתנה 2] כמו סוג הנתונים משתנה             [3 משתנה] כסוג נתונים משתנה             [4 משתנה] כסוג נתונים משתנה             [5 משתנה] כסוג נתונים משתנים סוג End

ניתן להכריז על סוגים אלה של הצהרות בתוך המודול כמו גם בראש המודול כמו המשתנים הגלובליים שלנו ב- VBA.

סוג VBA יכול להכיל משתני אובייקטים, הוא יכול להחזיק מערכים. עם זאת, הוא אינו יכול להכיל נהלים, פונקציות.

דוגמה להצהרת סוג ב- VBA

אתה יכול להוריד תבנית הצהרה מסוג VBA זו כאן - תבנית הצהרת סוג VBA

אוקי, בואו נתחיל בתהליך הכרזת המשתנים עם הצהרת Type. נראה את אותה הדוגמה להכריז על מותגי מובייל כמו אופן השימוש בהם ב- VBA Enum.

שלב 1: בחלק העליון של המודול התחל את המילה "סוג" ותן שם לסוג הקבוצה.

קוד:

 הקלד MobileBrands סוג הקצה 

שלב 2: במותגים ניידים מהם הדברים שאנחנו בדרך כלל רואים. אנו רואים שם קודם לכן הכריזו על המשתנה כשם כמחרוזת.

קוד:

 הקלד שם MobileBrands כסוג סוף מחרוזת 

שלב 3: אחרי השם, אנו בודקים את תאריך ההשקה. הכריז על המשתנה כ- LaunchDate כתאריך.

קוד:

 הקלד שם MobileBrands בשם מחרוזת השקה תאריך כסוג תאריך 

שלב 4: הדבר הבא הוא שנבדוק את נפח האחסון. כדי להכריז על המשתנה כ- Storage כשלם שלם.

קוד:

 הקלד שם המותגים הניידים כמחרוזת השקת תאריך כאחסון תאריך כסוג סוף מספר שלם 

שלב 5: הדבר הבא הוא שנבדוק את קיבולת ה- RAM.

קוד:

 הקלד שם מותגים ניידים כמחרוזת השקת תאריך כאחסון תאריך כמו זיכרון RAM כסוג סוף שלם 

שלב 6: סוף סוף אנחנו בודקים לגבי המחיר.

קוד:

 הקלד שם מותגים ניידים כמחרוזת השקה תאריך כמו אחסון תאריך כמו זיכרון RAM שלם כמו מחיר שלם כמו סוג סוף ארוך 

כעת בהליך המשנה על ידי הצהרת המשתנה בשם Type כלומר MobileBrands אנו יכולים לגשת לכל סוגי הנתונים המשתנים הללו.

שלב 7: צור תת-הליך.

קוד:

 סוג משנה_דוגמה 1 () סוף משנה 

שלב 8: כעת הכריז על המשתנה "נייד" כ- MobileBrnads.

קוד:

 תת סוג_דוגמה 1 () התעמעם בנייד כקצה משנה 

שלב 9: כעת עם שם המשתנה "נייד" אנו יכולים לגשת לכל המשתנים של "MobileBrands".

קוד:

שלב 10: כעת אחסן כל ערך כמו להלן.

קוד:

 הקלד שם MobileBrands כמחרוזת תאריך כמו אחסון תאריך כ- RAM שלם כ- מחיר שלם כמו Long End סוג Sub Type_Example1 () עמעום נייד כ- MobileBrands Mobile.Name = "Redmi" Mobile.LaunchDate = "10-Jan-2019" Mobile.Storage = 62 Mobile.RAM = 6 Mobile.Price = 16500 MsgBox Mobile.Name & vbNewLine & Mobile.LaunchDate & vbNewLine & _ Mobile.Storage & vbNewLine & Mobile.RAM & vbNewLine & Mobile.Price End Sub 

Finally, show the result in a VBA message box like the below one.

Code:

 Sub Type_Example1() Dim Mobile As MobileBrands Mobile.Name = "Redmi" Mobile.LaunchDate = "10-Jan-2019" Mobile.Storage = 62 Mobile.RAM = 6 Mobile.Price = 16500 MsgBox Mobile.Name & vbNewLine & Mobile.LaunchDate & vbNewLine & _ Mobile.Storage & vbNewLine & Mobile.RAM & vbNewLine & Mobile.Price End Sub 

Now run the code using F5 key or manually and see the result in a message box.

Like this, we can use the “VBA Type” statement to define new data type in the subprocedure.

VBA Types vs VBA Class

VBA Type often compared to VBA Class modules. There are certain differences between them. Below are the common differences.

  • Difference 1: VBA Type can contain only Public variables. VBA Class can contain both Public as well as Private variables.
  • Difference 2: VBA Type cannot contain Procedures and Function. VBA Class contains both of them along with properties.
  • Difference 3: VBA Type can be declared in any of the modules and procedures. VBA Class can only be declared in dedicated class modules.