קורס VBA מאקרו עם Excel – שיעור 8 – משתנים

קורס VBA מאקרו עם Excel – שיעור 8 – משתנים

משתנים - צורה לשמור מידע בתיכנות

משתנים – צורה לשמור מידע בתיכנות

ברוכים הבאים לשיעור 8 בקורס ה-VBA מאקרו באקסל .

השיעור הזה נתקדם עוד שלב אחד, ונלמד על מושג חשוב מאוד שנקרא משתנים.

מהו משתנה ?

משתנה הוא כמו "קופסה" בזיכרון של המחשב.

לכל משתנה יש שם משלו

ובתוך כל משתנה אנחנו יכולים לאחסן מידע .

זה יכול להיות מספר מסוים

זה יכול להיות טקסט מסוים

ויש עוד אפשרויות שלא נרחיב עליהן כעת.

 

דוגמא פשוטה לשימוש במשתנים ב-VBA

נניח ונרצה לחבר 2 מספרים יחד

לצורך הדוגמא הבאה, אנחנו פותחים 2 משתנים

הראשון יקרא x ונשים בתוכו את המספר 1

ולשני נקרא Y ונשים בתוכו את המספר 2

לאחר מכן, נכתוב בתא a1 את התוצאה של חיבור 2 המשתנים, כלומר 3

 

הנה פונקצית המאקרו , העתיקו אותה לעורך ה-VBA והפעילו את המאקרו:

sub Plus2()
x=1
y=2
range("a1".value = x+y
end sub

 

איך לשים ערך מגיליון ה-Excel בתוך משתנה במאקרו ?

וכעת לשלב הבא,

הרבה מאוד פעמים, אנחנו רוצים בקוד שערך מסוים

יבוא מהאקסל עצמו

איך אפשר להכניס ערך מתוך גיליון האקסל

אל תוך פקודות המאקרו שלנו

אז המאקרו הבא שלנו, מאוד דומה למאקרו הקודם

בשינוי אחד קטן

את המספר בתוך משתנה ה-X

אנחנו לוקחים מתוך תא g1 בגיליון ה-Excel.

sub Plus2()
x=range(g1").value
y=2
range("a1".value = x+y
end sub

התוצאה תהיה בעצם חיבור של המספר בתא g1 , יחד עם 2.

 

ואפשר גם ליצור נוסחאות ממש עם משתנים ולולאות יחד

הדוגמא הבאה מעט מורכבת יותר

בדוגמא זו אנחנו רוצים לחשב את כמות הנרות שמדליקים בחנוכה

אנחנו נשלב בדוגמא גם משתנים וגם לולאות מהשיעור הקודם.

sub Hanuka()
x=0
for Hanuka_Day=1 to 8
x=Hanuka_Day + x+ 1
Next Hanuka_Day
range("a1").value = "מספר הנרות בכל חנוכה הוא "
range("b1").value = x
End Sub

הסבר המאקרו :

בהתחלה פתחנו משתנה בזיכרון בשם x ושמנו בתוכו את המספר 0

לאחר מכן התחלנו לרוץ בלולאה 8 פעמים

בכל פעם הוספנו ל-X את מספר הימים של חנוכה ועוד אחד, עבור השמש.

וכך בסופה של הלולאה, המשתנה X הכיל את מספר הנרות שמדליקים בכל חנוכה (44).

ואת המספר הזה הצבנו בתא b1

השורה שמציבה כותרת בתא a1 היתה רק "בשביל היופי", שיהיה ברור מה הולך פה.

 

בהצלחה!

2014-12-20T23:45:22+00:00 דצמבר 20th, 2014|
post