24
דד"ד תתתתת דד דדדVBA דדד דד דדדד דדדדד, דדדד דדדד דדדדד דדדדדדד דדדדדדדדד( דדדדד, דדדד) דדדדדד דד דד דדדד דד דדדד דדדדד דדדדד. דדד דדד דד דדדד דדדדד דד דדדד דדדדד דדדדד דדדד. דדדדדדד דדד דדדד דדדדדדדדד( דדדדד דדד, דד- ) דדדדדדד דדדד דדדד. דדד דדדדד דדדד דדד, דדד דדדדד דדדדד דדדדד דדדד: דד דדדדד דדד- דדדדדדדד דד דדדדדד, דדדדד דדדדד דדדד- " ד"דדדדד דד דדדדדד דדדד דדדדדדדד( דדדד- ) דד דדדדדד "דדדד", דדדדדד דדדד דדדד. דדד דד)דדדד( ד דדד, דדדד דדדדדד דד דדדדדדד, דדדד דדדדד דד דדדדדד דדדדד. דד דדדד דדדד דדדד דדדדדד. תתתתתת תתתתת תת תתת תתת תתתתת תת תתתתת תתתת תתתתת, תת תתתתתתת תתVBA , תתת תתתת תת תתתתת תתתתת תת תתתת. דדדדד דדדדד דד דדדדדד דדדד דד דדדדדד, דד דדדדדד דדדד דדדדדד דדד... ד...דדד, דד דד דדדד דדדדדד- דVBA , דדדדדד דדד דדד, דד דדדדדד דדדד דדדדד דדדד דדדדד. דדד דד דד דדדדד דד דדד דדדד! דדדד דדד, דדדדד דדדדדד דד דדדדד דדVBA דדדדד דדדדד- דדדדד דדדד דדדד, דדדדדדד דדדד דדדדדד דדדדדד דדדדד... תתתת: דדדד דד דדדד דדדדד דדדד דדדדדד דדדדדדד דדדדד דדדדדד. דדדד, דד דדדד דדדדדד דדדדדדדד דדדד דדדדדד, דדדדד דדדדדדד דד דדדדדדד( דדדדד דדדדדדד. דדדדדד) דדד דדד דדדדד דדדדד דדד דדד דדדד דדדד, דדד דד דדד דדדד דדד, דדדדד דדדדדדד דדדדדדדדד( דדדד דדדד דד.)... דדדד דדדדדד: דדדדדד דדדדדדד דד דדדדד, דדד דדדדד דד דדדד דדדד דדד דדדדד דד דד דדדדד דדדד. דדדד דדד, דדדדד דדדדדד דדדד, דדדדד דדדד דד דדד דדדדדדד, דדדדדד דדדדדדד דדדדד דדדדדדדד דדדדד, דדדדדד דדדדד, דד דדדדדדד דדדדד דדדדד דדדדדדדד. דדדדדד, דדדד דד דדדדדדדדדדד דדדד דדדדד דדדדד... תת תתת תתתתתתVB : דדדVB , דדדדד דדדVBA דדדד( דדדד דדדדדדד דדדד דדVB , דדדדדדד דדדדדד דדדדדדד) דדדדד , דדד דדד דדדדד דדדדד, דדדדדד דדדדד- דדדדד דדדדד דדדדד דדדדדדדד, דדדד דדדדדד דדדדד, דדדדדדד דדדדדדד.VB דד דדדדד דדVisual Basic. Basic דדדד- דדדדד דדדדדד דד דדד דדדדדדBasic דדMicrosoft דדד( דדדד- דDOS -, ד)... Visual דדדד דדדדדד דדדדד דדד דדדדדדדד. דדד דדדד דד דדדדדדד דדד דדדד. תתתתתת תת תתת תתתתת, תתתת תתתתת תתתתת: דדדדד דד דדדדד "דדד דדדדד דדדדד". דד דד, דדדד דד דדדדד. דדד דדדדדד דדדדדד דדדדד דדדדדד. "דדדדד" דדד דדדדד דדדדדד דדדדדד דדדד דדדדד דדדד דדדדדד דד דדדדד. דדדדד דדדדד דדדד דדדדדד דדדדדדדד דדדדדדד דדדדד, דדדד דדדדד דדדדדד דדדד, דדדד דדדדדדד דד ד"דדד" דדדדדדד "דדד דדדדד". דדדדדד, ד"דדד דדדדד", דדדד89D8 דדד דדדדד דדדדדד דדדדד דדדדדד דד דדדד דדדדד דדדדדAX דדדד( דדדדדד דדדדדד דדדדד דדדדד, דדדד דד דדדד דדדדד דד) דדדדד , דד דדדדדBX . דדד דדדדד

על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

גם בעברית( בנושא, ואני )גם והסברים מדריכים ספרים הרבה לכתוב, ישנם רוצה לא אניVBA שפת עללעומק. מספיק השפה את מכיר לא

כללי. באופן תכנות שפות על לכתוב רוצה כן אני אבלשונה. השפה המבניות( - זהה, רק הפחות )לכל התכנות שפות בכל העיקרון

המתכנת, ויוצא של - כרעיונות בכח מתחיל מקום: זה באותו ונגמר מתחיל שפה, הכל ובכל תוכנה בכל יכול "מבין", שהמעבד שהמחשב סף( - השפה )שפת מכונה בקוד פקודות עם כ"תוכנה" - קובץ לפועללבצע.

שאני המסר בקלות. זה הפרטים את ללמוד העיקרון, אפשר את מבינים דבר, כאשר ב)כמעט( כל כמולהעביר. רוצה

להקל , כדיVBA על התמקדות מבנית, עם בשפה תכנות על תמונה לתת הוא זה במאמר הרעיוןהשפה. של עצמית למידה על

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

בלבד! טפל זה – העיקר לא זה אבל טעויות יותר בלבד, וייתכנו חלקי הנוסף - החומר לעומקVBA את למדתי לא שמעולם מזה, מכיון וחוץ

בעונה... מהרגיל

מושגים מספר הקריאה. אמנם, יש במהלך מתבארים הדברים שרוב באופן בנוי זה מאמרהערה: בעיקר נכללו אלו כלל(. מושגים מבוארים שאינם )או הצורך די מבוארים הדברים, ואינם בתוך המוזכרים

יודע...(. לא שאני בגלל )או מצומצמת שהמסגרת בהם, מכיון לדון כדי לא כללי, אבל מושג לתת כדיחשוב. מספיק לא זה כנראה – הכל אחרי מובן לא שנשאר נזנחו, ומה לא החשובים בקיצור: הדברים

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

לענין... וניגש בואו – ההסתייגויות כל ועכשיו, אחרי

:VB התכנות שפת על שפת , היאאופיס( ביישומי לתכנות , ומיועדתVB של יותר מצומצמת גרסה )שהיא VBA שפת , וכמוהVB שפת

אירועים. עצמים, ומונחית מונחית ויזואלית, והיא בצורה נעשית הממשק - בניית מבנית, ובנוסף תכנותVBשל קיצור זה Visual Basic. Basicהתכנות שפת על מבוססת שהשפה - בגלל Basicשל Microsoft

ויזואלית. היא הממשק שבניית בגללVisual...(, ו-DOSה- מימי )עודהסדר. לפי המושגים את נבאר כעת

מבנית: תכנות תכנות, ושפת שפת של ייעודהמיועד. זה זה, ולמה מבנית". מה תכנות "שפת המושג עם נתחיל

וליבתו ליבו – המעבד עבור לביצוע פקודות רשימת תוכנות. "תוכנה" היא יצירת – בתכנות עוסקים אנו מראש, מוגדרת רשימה ביותר, מתוך בסיסיות – מסויימות פקודות לבצע מסוגל המחשב. המעבד של

מכונה". "קוד ב"שפה" המכונית הם הפקודות כאשר AX באוגר שנמצא הערך את להעביר למעבד האומרת פקודה הוא89D8 מכונה", הקוד לדוגמה, ב"קוד

.BX האוגר , אלהעכבר( של משפחה קרוב לא במעבד, והוא הנמצא מסויים זיכרון )רכיבמורכבת. היא כאשר תוכנה, בפרט בו לכתוב קשה "קוד", די הוא המכונה שקוד מכיון

את בשפה, המייצגת מקבילה מילה פקודה, יש של קוד לכל אסמבלי, שבה שפת את יצרו ראשון כשלב הנ"ל89D8 הפקודה קלות. לדוגמה, את ביתר המחשב עבור פקודות לכתוב ניתן היה הפקודה. וכך

הגיוני. יותר הרבה נשמע שזהMOV AX,BXבאסמבלי: כותבים

לקומפיילר. נזקקים – כלשהיא תכנות בשפת שמשתמשים אמנם, ברגע) בקומפיילר להשתמש מקבילה, יש שהיא למרות – מבין לא שהמעבד בשפה נכתבת שהתוכנה מכיון

Compilerמכונה. בקוד לתוכנה התכנות משפת הפקודות את הופך "מהדר"( אשר – , ובעברית

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

מדוייק. פקודות, ובתכנון בהרבה להשתמש יש יחסית, בד"כ פשוטה וכלים פקודות לשירותו יותר, ועומדים חופשי המתכנת )המבניות(, בהם השפות את המציאו כך לשם

יותר. משוכללים ממש שאינם פקודות מספר המאפשרים קומפיילרים עצמה, ישנם אסמבלי שפת עבור לציין, שגם ]יש

מסויימת.[ גמישות לתת המעבד, כדי לפקודות מקבילות

קודמכונה

שפת"אסמבלי"

קומפיילר

Page 2: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

סוגים:3ל- הפקודות רשימת את לחלק אפשרהתוכנה. לשימוש בזיכרון מקום )"שמירה"( של הקצאות אחרת, ולהמשיך פקודה אל לקפוץ למעבד המורה )לדוגמה, פקודה התוכנית בזרימת ששולטות פקודות

משם(. הפקודות את לבצע y במקום שנמצא המספר של החיבור תוצאת את בזיכרוןx במקום "רגילות" )לדוגמה, שים ופקודות(.z שבמקום המספר עם יחד בזיכרון

והצהרות, הגדרות קודים: משפטי סוגי שלושה לכתוב ממשיכה, וניתן זו מבנית, חלוקה בשפה גםהתוכנה(, ופקודות. מבנה את "מבניים" )המגדירים משפטים – הקוד זרימת אופן על המורים משפטים

השונות, עבור הפקודות )ונוח( עבור ( קבועSyntax) - תחביר כתיבה כללי תכנות, קובעת שפת כל וכו'(, ושגרות "שמות" )למשתנים מתן וערכים, עבור ביטויים כתיבת האפשריות, עבור ההגדרות

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

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

מקום אל לקפוץ שאומרת פקודה שיש הרציף, בגלל בסדר אינה הפקודות הפעלת שבהם במקומות גםמסודרת. תבנית למקום, ללא ממקום דילוג בגדר זה , עדייןש-( בתנאי לקפוץ זה )לפעמים בקוד אחר "בלוקים" להגדרת אפשרות – הקוד מבנה עבור תחביר להגדיר המבנית, היא שפה של תפקידה עיקר

ודילוגים. כקפיצות מסודר, ולא כמבנה הקוד ביצוע בסדר לשליטה ופקודות קוד, ומשפטים של כשם בהם להשתמש שמורות" )וא"א "מילות נקראות – התחביר של היסוד כאבני המשמשות המילות

למשתנה, לדוגמה(.

הצהרות: - משפטי הפקודות של הראשון הסוגוההצהרות. ההגדרות ע"י המתאפשרת מהגמישות נתחיל

נתונים לכתיבת משמשים "משתנים" לסוגיהם. המשתנים עבור בעיקר משמשות וההצהרות ההגדרותממנו. בזיכרון, ולקריאה

בנושא[. הדן נספח יש המאמר בזיכרון, בסוף הנתונים ייצוג בנושא רבות להעמיק ]נ.ב. אפשר

אותם(, יש לשלוף נתונים, או שם לשים )כדי בזיכרון מסויים למקום לגשת רוצים עקרוני, כאשר באופן בזיכרון ההוא גרוע, שהמיקום שיותר כתובת"(. ומה יש תא )"לכל התא של המדוייקת לכתובת להתייחס

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

(.Typeנתונים" ) ( ו"סוגיVariable"משתנים" ) נועדו לזההמחשב. זיכרון אל המתכנת של השערים הם המשתנים

2 כולל במשתנים. השימוש מסויימים, משתמשים נתונים לאחסון בזיכרון להשתמש רוצים כאשרחלקים:

מורים "הקצאה"( שבו "הצהרה" )או משפט באלשפה( משפה משתנה המדוייק )המיקום הקוד קטע בתחילת יש שפה מיועד. לכל הוא לו נתונים סוג את שם, וקובעים למקום בזיכרון, נותנים מקום לשמור למעבדמראש. קבועה נתונים סוגי רשימתבזיכרון. ספציפית לכתובת להתייחס בהתחלה, במקום שהגדירו לשם מתייחסים הקוד בתוך ואח"כ

המשפט: את כותבים קוד קטע , בתחילתVB לדוגמה, בשפתDIM var AS Integer

חיובי, או שלילי להיות שלם, שיכול )שמשמעותו: מספרInteger , מסוגvar בשם משתנה על להצהיר כדי(.32767 עד32768- של בטווח שלמים מספרים להכיל יכול שהוא אומר בתים, שזה2 בגודל

מישורים: בשני משפיעה ההצהרה . סוגInteger מסוג משתנה עבור בזיכרון מקום ההפעלה( לשמור למערכת )או למעבד מורה היא

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

בזיכרון. ההוא במקום שכתובים הנתונים במקום לשים כדיvar=38 לכתוב בזיכרון. מספיק הספציפי למיקום להתייחס צורך אין – הכל ומעל

varל- התייחסות בפשטות, ע"י משם אותו לשלוף גם ניתן , ואח"כ38 המספר את בזיכרון שנשמר(var+15).ספציפי. למיקום המשתנה שם את מחליף מכונה, הקומפיילר לקוד התוכנה הפיכת * בשלב.Dim, As[, Integer]השמורות": ב"מילים משתמש הדוגמה * משפט

סוגיפקודות, תחביר

שפת תכנותמבנית

משתנים וסוגינתונים

הצהרות )משתניםוקבועים(

Page 3: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

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

CONST lines AS Integer = 25.25 לערך תהיה הכוונהlines יכתבו בו בתוכנה מקום שבכל מגדיר זה משפט

עשרוני(, תוים, מחרוזת )שבר ממשיים שלמים, מספרים הם: מספרים ביותר החשובים הנתונים סוגי נכלל מסויימות (. בשפותTrue/False – שקר או אמת להיות )יכול בוליאניים תוים(, ערכים )רצף טקסט

מובנה. תקני נתונים כסוג תאריך/שעה Integer מסוג משתנה להגדיר אפשרVBAצורות. לדוגמה, ב- מספר להיות יכולים מסויים לסוג לעתים למספרים ג"כ המיועדLong הסוג את גם , וישנו32767 עד32768- של בטווח שלמים למספרים המיועד

למספרים המיועדByte הסוג גם . ישנו2147483647 עד2147483648רחב: - יותר בטווח שלמים, אך להשתמש, הוא סוג באיזה הקובע כללי, העיקרון . באופן255 עד0 של קטן בטווח בלבד חיובים שלמים

זבוב. להרוג כדי בטנק משתמשים שלא מסוג נתונים "איברים" של סדרת – כמערך משתנה להגדיר שניתן מערכים, דהיינו על גם לדעת כדי

האפשריים(. הנתונים מסוגי )אחד מסויים

בו–בהמשך( )מורחב עצמים מונחה בתכנות יותר, ובפרט מורכבים נתונים סוגי גם כוללות רבות שפות"מחלקות"(. של "אובייקטים" )מופעים על ולהצהיר להגדיר ניתן

מהסוג משתנים להגדיר ניתן )שיהיה חדשים נתונים סוגי להגדיר ג"כ מאפשרת בד"כ תכנות שפתשלהם(.

הקוד. הגדרות קימפול אופן על לו הקומפיילר, המורים עבור מסויימים פרמטרים להגדיר כן, ניתן כמומהדר". "הוראות נקראים אלו

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

להפעלתם. הפעולות, ותנאים סדר את הקובעות לפקודות תחביר מכילה מבנית שפה כלעבור: פקודות יכללו המבניים המשפטים בד"כ

שיתבצע קוד גם להוסיף מתקיים. אפשרx תנאי כאשר רק יתבצע מסויים קוד שקטע הגדרה – תנאיםמתקיים. אינו התנאי כאשר

רשימת ישנה זה מסוג שבמשפט לתנאים, רק מאד דומה – מסויים ערך לפי להפעלה קוד קטע בחירת להכיל(, יכול מסויים שמשתנה ערכים רשימת )בד"כ מסויים ביטוי לגבי להתקיים שיכולות אפשרויות

אחר. קוד קטע מתבצע – אפשרות כל עבור כאשר שתנאי עד מסויים, או פעמים מספר להתבצע יכולה בלולאה. הלולאה פקודות רצף ביצוע – לולאות

מתקיים. מסויים שתנאי זמן כל מתקיים, או כלשהוא כזו פקודה בהרצה. בד"כ משם ולהמשיך בקוד מסויים מקום אל לקפוץ למעבד המורה פקודה – קפיצות

תנאי. עם בשילוב שימושית כ"לא נחשבת זה מסוג פקודה המבני, ולכך התכנות עיקרון את נוגדת זו ההגדרה, פקודה הערה: מעצם

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

צפויות, לרוב( )בלתי בשגיאות טיפול עבור זה, הוא מסוג בפקודות השימוש מעשי, רוב באופןהתוכנית. ביצוע במהלך המתרחשות

פקודות: – השלישי הסוגעצמן. הפקודות הוא – בשפה שיש השלישי החלק

ערך לשים המורה פקודה השמה. דהיינו אחת: פקודת מסויימת בסיסית פקודה לפחות מכילה שפה כל הערך את שמים הלאה, ובד"כ וכן מספר, משתנה, קבוע, ביטוי להיות יכול מסויים. הערך במקום מסויים

במשתנה.var=valueכך: נראה ההשמה משפטVB לדוגמה, בשפת

(var:=value כותביםPascal בשפת כך, למשל נראה זה השפות בכל )לא

מהשפה, אינטגרלי חלק שהם פקודות רשימת פסקל(, ישנה )כמו מסויימות הפקודות, בשפות שאר לגבי מהשפה, חלק אינם הפקודות אחרות, שאר חדשות. בשפות פקודות ולהגדיר עליהם להוסיף ואפשרמקרה. בכל מראש מוכנות בסיסיות פקודות אוסף עם מגיע הקומפיילר שבד"כ למרות

חדשות. פקודות להגדרת תחביר ישנו התכנות אופן, בשפת בכל הקומפיילר, מתכנתי ע"י נבנה שהוא "שגרה", בין – פקודות של מסויים רצף למעשה מייצגות הפקודות

המתכנת. ע"י נבנה שהוא ובין

פקודתהשמה

פקודות נוספותוהגדרתן

סוגי נתוניםחשובים

הגדרות

Page 4: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

עבודתן. את לבצע כדי להן הדרושים מסויימים נתונים לקבל יכולות שהם כך בנויות מסויימות שגרותנתונים. להחזיר גם מסוגלות מסויימות ושגרות –תוצאה, ו"פונקציות" מחזירים שאינם קוד קטעי ל"פרוצדורות" - שהם השגרות סוגי את לחלק מקובל"ארגומנטים"(. "פרמטרים" )או נקראים – השגרות אל המועברים תוצאה. הנתונים המחזירות שגרות

הרב הדמיון המתמטיקה, בגלל מעולם בהשאלה "פונקציה" ו"ארגומנט" באו שהמושגים ספק ]איןבהגדרתם[.

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

מהשפה(. חלק כתיבה, וזה כללי זה פקודות, אבל לא אמנם )זה וביטויים ערכים פקודות, אל ערכים ערכים, מעבירים מקבלים - ערכים, המשתנים נתונים הרבה עם עובד תכנות קוד

ותוצאות. ערכים מחזירות הפקודות ולעיתיםשראינו. נתונים, כמו סוגי – ערכים סוגי מספר ישנםאופנים: סוג( במספר )מכל ערך לציין ניתן.varמהזיכרון(, לדוגמה: – מכיל שהמשתנה הנתון הוא הערך )שאז משתנה ע"ילמשתנים(. זהה זו, זה )מבחינה קבוע ע"י )תאריך(.#18/9/2009#טקסט", , "מחרוזת95, 183[: VBA]ב- עצמו, דוגמאות הערך כתיבת ע"י

Mid(“abc”,2,1)תוצאה(: המחזירה )שגרה מפונקציה המוחזר ערךאופרטרים. השונות(, כשביניהם )בצורותיהם ערכים ממספר "ביטוי" המורכב ע"י גם ערך לציין ואפשר

האופרטור , כשביניהםvarהקבוע( )או המשתנה ומערך83 מהערך מורכב זה ביטויvar+83לדוגמה: האופרטור. שמצידי הערכים2 בין חיבור של יחס על )+(, המורה פלוס

השפות(: ביטויים בכל לא מחייבת, ודאי לא שהחלוקה )למרות סוגים2ל- הביטויים את לחלק אפשר)בוליאניים(. לוגיים וביטויים חשבוניים

האחרונה(. בדוגמה )כמו חשבוני ערך המחזיר ביטוי הוא חשבוני ביטוי מייצג לוגיים. הביטוי אופרטרים השוואה, או אופרטרי ערכים, כשביניהם ממספר ג"כ מורכב לוגי ביטוי מספריים ערכים2מ- לוגי, המורכב ביטוי הוא5<83 . לדוגמה, הביטויFalse אוTrue – בוליאני ערך

(. ערך5מ- גדול83ש- )מכיוןTrue הוא הביטוי מ-", וערך "גדול ההשוואה אופרטור רגילים, שביניהם " מורכבFalse. "84<>92 הואNOT (84<>92) הביטוי ערך כמובן. ואילוFalse הוא15=24 הביטוי

ה"הופך" אתNOT הלוגי האופרטור נוסף זה , ולביטויTrue היא מ-(, ותוצאתו )שונה השוואה מאופרטור קדימויות, סדר להגדרת הנ"ל, משמשים בביטוי ]הסוגרייםFalse מוחזר זה במקרה שלידו, ולכן הערךבמתמטיקה[. כמו בדיוק

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

צפויות. בלתי תוצאות לקבל לא כדי בסימן משתמשיםCב- )=(, ואילו השוויון סימן הואVB ו-Pascal בשפות ההשוואה לדוגמה, אופרטור

– להשוואה בטעות בו משתמשים , ואםCב- השמה בפקודת משמש בודד שוויון )==(. סימן כפול שוויוןבטעות...(. היה זה )כי לחלוטין צפויות לא התוצאות

, ולא8 בסיס )על אוקטלי למספר (, הכוונה0127 )לדוגמה0 של קידומת עם מספרCב- רושמים אם העשרוני.87 הוא אוקטלי127ל- המקביל "שלנו"(, והערך המספרים כמו10 בסיס

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

הויזואליות:ויזואלית. בונים הממשק שאת ויזואלית, דהיינו שפה היאVBש- אמרנו

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

על גרפיים וחלונות טפסים באמצעות נעשה הקשר – גרפיים הם הממשקים לומר, שבימינו, כל אפשרבמסוף(. מנוקבים ניירות של צפצופים, וקלט סדרות של לפלט )בניגוד המסךגרפי". משתמש "ממשק– GUI – Graphic User Interface נקרא כזה ממשק

חלון )צייר הפקודות שאר תכנות, כמו פקודות באמצעות האלה החלונות את בונים הישנות, היו בשפות העליון, מהקצה ס"מ4 הימני, ובמרחק המסך מקצה ס"מ2 מרחק אותו ס"מ, מקם5 על ס"מ8 בגובה

מורכב...(. יותר קצת הלאה, רק וזה. וכן זה במקום כסף "כפתור" בצבע עליו שים על – ויזואליים כלים באמצעות ומגדירים )חלונות, טפסים, דוחות( בונים הממשק ויזואלית, את בשפה

תכנות. בקוד ה"פנימיות" כותבים הפקודות את המסך, ורק

אירועים. עצמים, ומונחה מונחה תכנות מהו לברר נותר כעת

ייצוגערכים

ביטוייםואופרטורים

Page 5: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

עצמים: מונחה תכנות הנתונים ישנם אובייקט לכל (, כאשרObject) אובייקטים – עצמים להגדיר עצמים, ניתן מונחה בתכנות

(,Property"מאפיינים" ) בשם לאובייקט השייכים לנתונים לקרוא אליו. מקובל השייכות והפעולותנתונים. של אחר סוג (, שהםField) שדות גם מכילים מסויימים (. אובייקטיםMethod) שיטות – ולפעולותלאובייקט. ( השייכיםEvent) האירועים בנוסף ישנם – אירועים מונחה גם שהוא ובתכנות

"מופע" של רגיל, אלא משתנה יהיה לא הוא מסויים, אבל אובייקט של מסוג משתנה להגדיר אפשר מופע את המייצג המשתנה באמצעות – האובייקט ושיטות למאפייני לקרוא ניתן אובייקט, ויהיה

האובייקט. מופעי נכון, של )יותר אובייקטים ( שלCollection"אוספים" ) גם ( ישנםVBA )כמו מסויימות בשפות

אובייקטים(.

אקסס: שלVBAמ- דוגמהטופס. המייצג אובייקט– Form בשם אובייקט ישנו

את אליו )מעבירה הטופס ש"בוחרת" את הטופס, הפקודה של מאפיינים הם – ושמו הטופס כותרת – סימון, כפתורים( שעליו נתונים, תיבות להזנת טקסט שלו, וה"פקדים" )תיבות שיטה ה"מוקד"( - היא

הטופס. שדות הםפתיחה" שלו. "בעת האירוע מתרחש – טופס פותחים כאשר

את בתוכו כוללForms . והאוסףForm מסוג אובייקט "מופע" של הנתונים, הוא במסד הקיים טופס כלהפתוחים. הטפסים כל של המופעים

כפריט– Forms(“MainFrm”) ע"י עליו לגשת כרגע, ניתן פתוח והואMainFrm בשם טופס שיש נניחForms(“mainFrm”).SetFocusהייעודית: השיטה באמצעות המוקד את הטופס אל להעביר באוסף, ואף

מסויים: לטופס אותו , ולשייךDim frmVar AS Formטופס: אובייקט מסוג משתנה להגדיר ניתןSet frmVar = Forms(“mainFrm”)המשתנה: הטופס( באמצעות "כיתוב" )כותרת המאפיין אל לפנות ואז

frmVar.Caption

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

"תורשה". זו, כמו שיטה עם שנוספו מסויימות אפשרויות

אירועים: מונחה תכנות בעת הקוד למבנה רק ריצתה, ולא בעת בתוכנה הפעולות לסדר מאד אירועים" קשור מונחה "תכנות

כתיבתו. התוכנה, את מפעילים שבתוכנה. כאשר הקוד שאר כל את ראשי, המפעיל קוד קטע "רגיל", ישנו בתכנות

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

בתוכנה. המתרחשים אירועים ע"י מופעל שהקוד כך בנויה התוכנה אירועים מונחה בתכנות "בעת – נסגר הוא הטופס, וכאשר פתיחה" של "בעת האירוע מתרחש נפתח טופס לדוגמה, כאשר – אירועים קשורים הטפסים שעל לפקדים לטפסים. גם הקשורים נוספים רבים אירועים סגירה", וישנם

עדכון" נתונים "לאחר אחר, וכן פקד כל או כפתור השמאלי( על העכבר לחצן לחיצה" )עם "בעת כמובשדה.

מופעל. הקוד קטע – מתרחש האירוע כאשר לאירוע, וכך קוד קטע לקשור ניתן

(:Debug) באגים, ודיבגהתכנות. מתהליך נפרד בלתי חלק שהינוDebug המושג בלי שלמה לא התמונה שזה לודאי שגיאה, קרוב מתרחשת כאשר האמת, כי מן הרבה בזה אומרים. יש טועה", כך לא "מחשב

ע"י שנוצר פגם הינו השגיאה גורם מקרה בכל בחומרה, אבל פגם – נדירים ממש בתוכנה, ובמקרים באגחיצוני. גורם

תכנון( )או בכתיבת אנוש מטעויות מנוס אין – אנושי הוא שהמתכנת בתוכנה, מכיון לבאגים בהתייחסרצויות(. לא גם – )ולרוב צפויות בלתי תוצאות או לשגיאות התכנות, המובילים קוד

באגים: סוגי2 ישנם השפה. במהלך של התחביר כללי לפי שאינו "כתיב", קוד טעות–( Compile Error) הידור שגיאת

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

התוכנית ריצת בזמן התחביר, אבל לפי שכתוב (: קודRun-Time Error) זמן-ריצה שגיאת הוא השני הסוג יכול כזה באג (. לפעמים0ב- כלשהוא מספר לחלק נסיון שנעשה )לדוגמה, מתברר שגוי שהקוד מתברר

נעים... גרוע. לא מראש, ובתזמון הודעה פתאם, ללא רב, ולצוץ "להתחבאות" זמן

סוגיהבאגים

Page 6: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

קוד – לוגי בהקלדה, באג טעות – דפוס הגורמים: שגיאת סוגים, לפי3ל- הבאגים את לחלק ]מקובל נכון, כתוב הכל – פרשנות של (, באגl במקום1 )כתוב לוגית מבחינה טעות הוא אבל תחבירית שנכון חסרון בגלל לדוגמה לקרות יכול )זה נכונה לא פרשנות בגלל מהמצופה שונה לתוצאה מוביל אבל

"כואב"...[ הכי האחרון בביטוי(. הבאג הקדימויות להגדרת סוגריים

מתסכל. ארוך, מייגע, ואפילו תהליך זה . לעתיםDebug השגיאות" ותיקונן, נקרא "ניפוי תהליך הבאג מקור את לנחש אפשר השגויה התוצאה שע"פ למצב קל, עד ויותר יותר נהיה זה – הנסיון עם אבל

בקוד. להסתכל בע"פ, בלי כלים כולל לשמו ראוי הקשים(, וכמובן, שקומפיילר )במקרים השגיאות מקור לזיהוי רבות טכניקות ישנם

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

להיות(. אמור שהיה מה זה האם )לבדיקה מסויימות בנקודות המשתנים ערכי להצגת במהלך משתנים על מניפולציות מסויימות, ולבצע פקודות להפעיל )מאפשר מיידי ביצוע הכלים: חלון בין

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

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

כללית. תמונה לקבל כדי מספיקגמור... זיל – ואידך

בהצלחה!

דיבג, טכניקותועזרים

Page 7: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

בזיכרון: נתונים ייצוג–א' נספח נתונים ייצוג של הקורה לעובי נכנס זה מצפון. קטע נקיפות בלי עליו לדלג ארוך, שאפשר קטע בא כאן

בזיכרון.

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

דרכים. בהרבה לפרש אפשר בזיכרון שנמצא מה משנה, שאת שכן מה אבל חשמליים, שכל מעגלים8מ- ישירות( בזיכרון, בנוי אליה להתייחס שאפשר קטנה הכי )היחידה תא כל

תא (. וכלBit –"נגיסה" "סיבית" )או קוראים שכזה מעגל שלא, ולכל "מחושמל", או להיות יכול מהם אחד(.Byte"בית" ) בייט, או סיביות( נקרא8מ- )שמורכב

שיכולים מעגלים רק כלום, יש כתוב לא בזיכרון ואחדות, כי אפסים מלא כתוב לא ברור, בזיכרון שיהיה? הידועה האגדה פשר מה הטוב. אז במקרה מחושמלים להיות לא שהוא לומר , וכדי1 מכיל שהוא אומרים–"מחושמל" הוא מסויים שמעגל לומר הנוחות, במקום לשם

"שולחן", מחושמל למעגל לקרוא אפשר היה בדיוק מידה . באותה0 מכיל שהוא "מחושמל" אומריםהמידה. באותה נוח שזה בטוח לא - "טרקטור", רק מחושמל לא ולמעגל

? זה את עושים , איך100 המספר את בזיכרון לרשום רוצים שאנחנו נחשוב עכשיו, בא כל רושמים "בינארית", שבה הנקראת מעניינת ספירה שיטת המתמטיקה, ומצאו את גייסו כך לשם

לנו, רושמים המוכר העשרוני100 המספר בלבד. לדוגמה, את1 ו-0 הספרות ע"י בעולם מספר.1100100ב"בינארית" כך:

הספירה בשיטת משמעות, כמו אין שמאל שמצד שלאפסים , כיון01100100גם: לרשום אפשרולהיפך(. לבינארי עשרוני מספר להמרת נוסחה שישנה שלנו. )כמובן העשרונית

מצבים, ואפשר2מ- לאחד מוגבלת בזיכרון קטנה הכי שהיחידה הזיכרון, כיון למבנה מתאים ממש וזה לייצג יכול בזיכרון שתא כאלה, כך סיביות8מ- מורכב בזיכרון אחד , ותא1 ו-0כ- למצבים להתייחס

הבינארית. הספירה בשיטת כתוב הוא כאילו אליו מתייחסים מסויים, אם מספר בזיכרון(, שהוא תא של כתובת נראית בערך )ככה0180:0010 במיקום הזיכרון בתא שאם אומרת זאת

"דולקים" והרביעי השלישי השני, ואילו )מימין( "מכובה", וגם הראשון מעגלים, המעגל8מ- מורכב בעצם שם: כתוב כאילו לזה להתייחס מכובים, אפשר–שמיני( עד חמישי )מעגל השאר )"מחושמלים"(, וכל

הבינארית, הרי הספירה בשיטת שכתוב כמספר ל"קוד" הזה להתייחס מחליטים . ואם00001100 העשרוני.12 המספר שלפנינו

מספיק. לא התקדמות, אבל הרבה זה הבינארית, זה )סיביות( בשיטה מקומות8ב- לייצג שאפשר גדול הכי שהמספר היא הראשונה הבעיהמספיק. לא שזה ברור , והרי255 המספר בסה"כ

2ב- , משתמשים300 יותר, נאמר גדול מספר לכתוב רוצים בקלות, אם ממש לפתור אפשר זה את אבל בשתי (, כיDword –כפולה" "מילה קוראים בתים4, ול-Word –"מילה" לזה לקרוא )מקובל ביחד תאים עם להמשיך שאפשר . וכמובן65535 המספר עד לכתוב אפשר סיביות16 סיביות, וב-16 ישנם תאים

4 או3ב- בתים, משתמשים2ב- נכנס לא , שהוא1000000 המספר את לכתוב רוצים הזה, אם העקרוןבתים.

לכתוב אפשר שב"בית" אחד , כיון25- שלילי, כמו מספר לכתוב רוצים כאשר בבעיה נתקלים עדיין אבל.25- לכתוב א"א , אבל255 ל-0 בין מספר

שאם המספר, נאמר של הסימן את תייצג הבית מתוך אחת שסיבית פתרון, מחליטים ישנו כמובן לזה גם המספר– 0 היא שלילי, ואם הוא המספר ל"מחושמלת"( אז כמובן )הכוונה1 היא שמאלית הכי הסיבית

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

ויתרו. רגילים שברים צפה". על "נקודה

רק ולא אותיות גם להכיל חייב שהזיכרון בזיכרון, ברור אותיות כתיבת היא גדולה הבאמת הבעיה אבלמספרים.

אפשר לפתור את זה ע"י ש"יציירו" את האות על כמה תאים בזיכרון, לדוגמה אפשר לכתוב את האות"ב" כך:ערךכתובת

0350:0000011111100350:0001000000100350:0002000000100350:0003000000100350:0004000000100350:000501111111

הוא השני וסרבול, והחסרון בזבוז הוא הראשון משמעותיים, החסרון חסרונות מספר יש זו לשיטה אבל רצופים( תאים מספר )או מסויים תא אם לבדוק לו יאמרו הציורים, ואם את לקרוא יודע לא שהמחשב

זה. את לבדוק מאד קשה לו "ל", יהיה האות את מכיל

Page 8: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

ב' - , אות1 קוד א' היא אות מספרי, נאמר קוד אות לכל לתת פשוט יותר שהרבה החליטו כך משום בדיוקבזיכרון. מספרים ה"רגילה" לכתיבת בשיטה כמו המספרים את לרשום הלאה, ולהמשיך וכן2

תוהו למנוע )ולהיפך(, וכדי לקוד אותיות להמרת "טבלאות" שונות מספר בעולם למעשה, מסתובבות Unicode , אוANSI תקן של הישנהASCII קוד טבלת )לדוגמה בנושא בינלאומיים תקנים נקבעו – ובוהו

כיום(. הנפוץ.100 )קטנה( הואd האות של המספרי , הקודASCII למשל, בטבלת

ע"י ציורים לייצג אפשר וכדו' בזיכרון, אבל ציורים ייצוג של בנושא מטפלות לא עדיין הנ"ל השיטות אמנם כאן גם )כמובן בזיכרון רושמים נקודה כל של הצבע נקודות, ואת של כמטריצה ציור לכל שמתייחסים

מספרי(. לקוד צבע בין המרה בטבלת שימוש נעשההדעת. את - מניח בזיכרון נתונים לייצוג הנ"ל שהרעיון לומר אפשר כללי באופן

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

א'. האות זה אז , מה01100100כנ"ל(: לספרות החשמל את מתרגמים )כאשר שמכיל בזיכרון תא שיש אבל, נניח? זה של המשמעות

נוספות. אפשרויות כמובן ? וישנםd האות את מייצג זה ? ואולי100 העשרוני המספר זה האםתוכנה. כותבים נתונים, כאשר סוגי בהגדרת הצורך להבנת מגיעים מכאן

Page 9: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

:VBAל- ספציפית–ב' נספח"מבניים", ופקודות. והגדרה, משפטים הצהרה משפטי לעיל, ישנם שהצגנו החלוקה ע"פ

אופרטרים. ולוגיים(, הכוללים )חשבוניים וביטויים ערכים לכתיבת תחביר בנוסף, ישנו לנושא התייחסות ואין הנ"ל. כמעט סדרה ע"פ מהתחביר חלק פירוט–"יבשים" נתונים מכיל זה נספח

.VBAה- של הקוד עורך עם העבודה

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

לאובייקט. השייך במודול כותבים הקשורות מסויימות אפשרויות לקומפיילר מהדר", המגדירות "הוראות לכתוב ניתן המודול בראש

מכונה(. לקודVBAה- משפת התכנות פקודות )הפיכת הקימפול לתהליך המוזכרים והקבועים המשתנים שכל לבדוק למהדר " - מורהOPTION Explicit" לדוגמה, ההוראה

כזה. אינו המצב הידור", כאשר "שגיאת עם , ולקפוץConst אוDim משפט ע"י בתוכנה, הוגדרו

)השייכים הגלובליים והקבועים המשתנים הגדרות את המהדר(, כותבים הוראות )לאחר המודול בראשהמשנה. ושגרות הפונקציות – הקוד קטעי את המודול(, ואחריהם, כותבים לכל באות השגרה(, ולאחמ"כ לתחום – )המקומיים והקבועים המשתנים את שגרה, מגדירים כל בתוך גם

הפקודות.

בקוד: אליהם והצהרות, וההתייחסות הגדרות משפטי – ראשון חלק

נתונים: סוגיByte –בית. חיובי, בגודל שלם בינאריים[ מספר ]נתונים

Integerבתים.2 שלמים, בגודל - מספרים Longבתים.4 שלמים, בגודל - מספרים

Singleבתים.4)עשרוני(, צפה - נקודה Doubleבתים.8צפה, - נקודה

Currencyבתים.8הנקודה, אחר ספרות4 עד עם - מספרים Stringתו. כל על בית בתים, ועוד10 בינארית, בגודל מחרוזת טקסט, או - מחרוזת

Boolean ,בתים.2 - בוליאני Dateבתים.8/ שעה, - תאריך

Objectבתים.4כלשהוא, מסוג לאובייקט - הפניה Variantנתון, כולל כל להכיל - יכול Nullביליון.2ל- בתים16 . בין

חשובים: אובייקטיםApplication –היישום מנוע

Control –דוח( )או בטופס פקדFrom –טופס

Report –אקסס( דוח(

שונים "איברים" מסוגים מספר "מבנה", המכיל אישית, בצורת מותאם נתונים סוג לבנות גם ניתןלאובייקטים(. התחביר: )בדומה

Scope TYPE TypeNameVarName (Lower TO Upper) AS TypeVarName (Lower TO Upper) AS Type

END TYPETypeNameהחדש. הנתונים מבנה שם הואVarNameבמבנה. האיברים שמות הם

ומשתנים: קבועים על הצהרהקבועים:

Scope CONST name AS type = expressionScopeלהיות ההכרה, יכול טווח הוא PUBLICאו PRIVATEהוא הקבוע - פרטי(. אם )ב"מ , אופציינלי

, אופציינלי.Typeכ- סוגו את להגדיר הקבוע. ניתן שם הואNameהמודולים. בכל לו לקרוא ציבורי, ניתן.Expressionכ- נקבע הקבוע . ערךVariant יהיה נתונים, הוא סוג הוגדר שלא במקרה

)ומערכים(: משתנים

מודולים

המבנההכללי

ג סו נתוניםמותאם

הצהרתקבועים

הצהרה עלמשתנים

Page 10: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

DIM WithEvent Name (Lower TO Upper) AS New Type, Name AS Type שם הואName לאירועים, אופציינלי. המגיב אובייקט משתנה להגדיר כדיWithEventב- השתמש

תחום, מכילים לא הסוגריים אחריו. אם סוגריים תכלול מערך, אם משתנה להגדיר המשתנה. ניתן . לאUpper עדLowerמ- התחום את להגדיר שגרה. ניתן בכל התחום את להגדיר דינמי, ויש הוא המערך המהדר הוראה ע"י שנקבע כפי )או0 הוא התחתון כזה, התחום , במקרהLower TO את לכלול חייביםBASE.)

Newאובייקט משתנה על מצהירים אובייקט(. אם הוא הנתונים סוג )אם אובייקט של חדש מופע מגדיר אל שיפנה כך המשתנה את בקוד להקצות קיים, ויש אובייקט על להצביע רק יכול המשתנהNew ללא

.SET משפט אובייקט, ע"יTypeב"מ המשתנה, אופציינלי של הנתונים סוג הוא( -Variant .) Typeנתונים, או סוג להיות יכול

פסיק. מופיע ביניהם כאשר משתנים מספר להגדיר אובייקט. ניתןבמשתנה(. ההכרה טווח את )קובעPrivate אוPublic ע"י המשתנה את להגדיר ניתןDIM המילה במקום

ההגדרה, כדי לפניStatic המילה את להוסיף שגרה, ניתן או פונקציה של פנימיים משתנים עבורפתוח. המודול עוד לשגרה, כל קריאה בכל מחדש יאותחל לא שהמשתנה

הערות: ע"י המחרוזת גודל את לקבוע . ניתןKB 1 עד של משתנה באורך תהיה , המחרוזתString הנתונים - בסוגהמחרוזת. עבור המקסימלי האורך את , ואחריוString המילה * אחרי הסימן

מתאפסים. המשתנים ההרצה, כל - בתחילת

מערך: של מחדש הגדרהREDIM Preserve Name (Lower TO Upper) AS Type, Name AS Type

דינמי אחת( באופן )פעם התחום את להגדיר תחום, יש הוזכר לא עליו דינמי, שבהצהרה מערך עבור האיברים. ניתן הממדים, סוג התחום, מספר את להגדיר במערך. ניתן משתמשים בה שגרה בכל

מימדים.8 עד להגדיר בשגרהREDIM ע"י , אוDIM ע"י גבולות הוגדרו לא שבו במקרה רק אפשרית מערך של מחדש הגדרה

הנוכחית. הנתונים את לאתחל לא לאקסס להורות )אופציינלי( כדיPreserve השמורה במילה להשתמש ניתן

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

ומערכים: משתנים, קבועים אל בקוד פנייהשמו. ע"י קבוע, היא או משתנה אל בקוד הפנייה

או המשתנה המודול, נקודה, ושם שם ע"י היא ציבורי(, הפנייה )והוא אחר במודול הוצהר האובייקט אםהקבוע.

האיבר. שם המבנה(, נקודה, ואחריה )מסוג המשתנה שם ע"י במבנה, היא לאיבר הקריאההמערך. משתנה שם לאחר סוגריים בין האיבר מספר כתיבת ע"י מתייחסים במערך איבר אל

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

הבאות: מהדרכים אחת ע"י מתבצעת אוסף מתוך אובייקט אל הפנייה[Collection![Object"(Collection("Object(Collection(ObjNum

Collectionהאוסף, שם הואObjectהאובייקט, שם הואObjNumבאוסף. את האובייקט מספר הוא האוסף. שלCount המאפיין מכיל באוסף האובייקטים מספר

אובייקט: של שיטה או מאפיין אל הפנייה[Object.[Property

Objectהאובייקט, שם הואPropertyהשיטה או המאפיין שם הוא (Methodבפנייה .) ציון ללא אובייקט אל האובייקט. של המחדל ברירת מאפיין אל תהיה השיטה, ההתייחסות או המאפיין שם

לאובייקט: השייך אובייקט אל הפנייה[Object![Object

בקוד: אובייקט משתנה הקצאתSET Var = Ref

Varע"י )שהוגדר האובייקט משתנה שם הוא Ref ,(DIMשל הסוג )מאותו אובייקט אל התייחסות הוא Var.)

הגדרה של מחדש

מערך

משתניםוקבועים

אובייקטבאוסף

מאפייניםושיטות

הקצאה

Page 11: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

Varמספר ליצור עצמו. ניתן כבאובייקט בו להשתמש העתק(, וניתן )ולא האובייקט "הפנייה" אל יכיל שלBookMark - המאפיין הכלל מן )יוצא בכולם ישתקפו אובייקט, והשינויים אותו אל הפניות

RecordSet.)"כלום". על להצביע לו לגרום אובייקט, כדי במשתנהNothing הערך את להשים ניתן

משנה(: ושגרות )פונקציות שגרות הגדרתפונקציה: הגדרת

Scope Static Function Name (Optional By ParamArray Arg AS Type, Arg AS Type) AS TypeStatementsName = ValueExit Function

End FunctionScopeלהיות )אופציינלי(, יכול בפונקציה ההכרה תחום הוא Publicהמודולים( או בכל )מוכר Private

את לאתחל לא לאקסס להורות )אופציינלי( כדיStatic המילה את להוסיף בלבד(. ניתן זה )במודולהפונקציה. שם הואNameפתוח. המודול עוד כל הפונקציה משתני

Byלהיות הנתונים, יכול העברת סוג הוא ByVal לשנותו(, או ניתן ערך, לא )לפי ByRefהתייחסות, )לפי (.Variant- )ב"מ שלו הנתונים סוג הואTypeהארגומנט, שם הואArgלשנות(. ניתןכ- ארגומנט תגדיר בו אופציינלי. במקרה שהארגומנט להורות )אופציינלי( כדיOptional את להוסיף ניתן

Optionalכ- ג"כ אחריו הבאים הארגומנטים כל את להגדיר חייב , תהיהOptionalאילו לבדוק . ניתן .IsMissing הפונקציה הועברו, ע"י ארגומנטים

,Variant מסוג ארגומנטים כמה להעביר שניתן )אופציינלי( להורותParamArray את להוסיף ניתןברשימה. אחרון להיות חייב זה מסוג ארגומנט

סוג את להגדיר ניתן הכותרת שורת פסיק. בסיום מופיע ההגדרות ארגומנטים, כשבין מספר להגדיר ניתן(.Variant- )ב"מ הפונקציה תחזיר אותו הנתונים

Statemantsהפונקציה. בגוף המופיעות והפקודות ההצהרות הםהמוחזר(. הערך הואValue) הפונקציה לשם ערך מהפונקציה, השם המוחזר הערך את להגדיר כדי מופיע בו במקום הפונקציה ביצוע את לסיים )אופציינלי( כדיExit Function במשפט להשתמש ניתן

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

משנה: שגרת הגדרתScope Static Sub Name (Optional By ParamArray Arg AS Type, Arg AS Type)

StatementsExit Sub

End Sub לרשום שניתן ממקומות לה לקרוא ניתן ערך, ולא מחזירה שאינה זה לפונקציה, מלבד זהה משנה שגרת אחרת, או משנה פונקציה, שגרת )מתוך פקודות לרשום ניתן בהם ממקומות רק ערך, אלא או ביטוי

אירוע(. שגרת

"מבניים": משפטים – שני חלק

הפקודות בין אחת, כאשר בשורה פקודות מספר לכלול נפרדת. ניתן בשורה לכתוב יש פקודה הערה: כל )_(, מקף-תחתון שורות, באמצעות למספר אחת פקודה לחלק שני, אפשר מצד):(. נקודותיים מפרידות

כך:Call Func(Arg1_ ,

Arg2)

:Call המשפטCALL Sub (Par1, Par2, Par3)

Subבין אותם מעבירים – פרטמטרים מקבלת השגרה קוראים. אם לה המשנה שגרת שם הוא פסיקים. מפרידים הערכים הסוגריים, כשבין

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

, ואפשרSub(x,,z)לכתוב: והשלישי, אפשר הראשון הפרמטר את להעביר רוצים אפשרויות. לדוגמה, אם.Sub(Par1:=x, Par3:=z)הפרמטר: לשם להתייחס

פונקציות

שגרותמשנה

Page 12: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

:Do..Loop לולאתDO Time Condition

StatementsExit DO

LOOPאו:

DOStatementsExit DO

LOOP Time ConditionTimeהוא Whileמתקיים( או שהתנאי זמן )כל Untilמתקיים(, שהתנאי )עד Conditionהתנאי הוא

לביצוע. הפקודות הםStatementלבדיקה. הלולאה. )אופציינלי(, לסיוםExit DO במשפט להשתמש ניתן

:While..WEnd לולאתWHILE Condition

StatementsWEND

.Exit Do ע"י זו לולאה לסיים ניתן שלא זה , מלבדDO While..LOOP ללולאת מקביל

:For..Next לולאתFOR Var = First TO Last STEP Num

StatementsExit For

NEXT Var יכילVar סיבוב, המשתנה . בכלLast עדFirstמ- ערך כל עבורStatements הפקודות את תבצע הלולאה

לקבוע )אופציינלי(, כדיSTEP את להוסיף סיבוב. ניתן בכל1ב- יקודם הערך הנוכחי. כב"מ הערך את.Var עבור סיבוב -( בכל )+ אוNum של דילוג

:For Each..Next לולאתFOR EACH Item IN Group

StatementsExit For

NEXT ItemItemאובייקט, משתנה הואGroupשל הסוג מאותו אובייקטים המכיל אוסף משתנה הוא Itemהלולאה .

הנוכחי. האובייקט אל הפניה יכילItemבאוסף, ו- אובייקט כל עבור תבוצע

:GoTo משפטGOTO Label

Labelבתוית המתחילה השורה אל יעבור התוכנית תוית. ביצוע שם הוא Label מופיעים )שאחריה נקודותיים(.

:If..Then..Else משפטIF ConA THEN

StateAELSEIF ConB THEN

StateBELSE

StateCEND IF

או:IF ConA THEN StateA ELSE StateC

התנאי מתקיים מתקיים, אבל לא הוא , אםStateA הפקודות - יבוצעו מתקייםConA שהתנאי במקרהConBהפקודות - יבוצעו StateBיבוצעו מתקיימים לא הנ"ל התנאים שבו . במקרה - StateC.

אופציינליים. הינםELSE ו-ELSEIFה- . משפטיELSEIF משפטי מספר לכלול ניתן הראשון בתחביר

:Select Case משפטSELECT CASE Expression

Case OptAStatements

Page 13: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

Case OptBStatements

Case ElseStatemnets

END SELECTExpressionשבסעיף לאופציה תואם הביטוי לבדיקה. אם הביטוי הוא Caseשאחריו. הפקודות , יבוצעו

)אופציינלי(.Case Else שבסעיף הפקודות מהסעיפים, יבוצעו אחד לאף תואם אינו אםלהיות: יכולהCase בסעיף הנבדקת האופציה

Expressionכלשהו( )ביטויExp1 TO Exp2בטווח( שבין הערכים Exp1-ל Exp2)

IS Op Expהתנאי - Expression Op Expאמת הוא (Expressionהמשפט, שבראש הביטוי הואOpהוא להשוואה(. ביטוי הואExpהשוואה, ו- אופרטור

פסיקים. מופיעים לבדיקה, כשביניהם אופציות מספר לכלול יכולCase סעיף

:Stop משפטSTOP

המשפט. מופיע בו במקום הקוד ביצוע מסיים( את )לא עוצר

:With משפטWITH Ref

StatementsEND WITH

Refהאובייקט ומאפייני שיטות אל להתייחס אובייקט. ניתן אל התייחסות הוא Refמקוצר כתיב ע"י לכלול )מבלי המאפיין או השיטה שם ואחריה הוא, נקודה המקוצר . הכתיבStatements הפקודות במהלך

עצמו(. האובייקט שם את לפניו

שגיאות: לכידת בשגיאה הטיפול את תעביר יופסק, והתוכנית הקוד, הביצוע ביצוע במהלך שגיאה מתרחשת בו במקרה

שכוללים בה, ע"י ולטפל שגיאה ללכוד הקריאות(. ניתן היררכיית במעלה הלאה )וכן הקוראת השגרה אל בשגרה.OnError משפט

ביצוע את תעביר בשגיאה, היא תתקל שהתוכנית , ברגעOnError GoTo Label המשפט את תכלול אם.Label התוית אל הקוד

הקוד ביצוע את הבעייתית, ולהמשיך השורה על לדלג לתוכנית מורהOnError Resume Next המשפטהבאה. מהשורה

המשפט את הקוד(, כלול ביצוע מופסק הרגיל, בו המצב אל )לחזור השגיאות לכידת את לאפס כדיOnError GoTo 0.

שגיאה(, אירעה לא אם0 )מכיל השגיאה קוד את לקבל כדיErr המוכלל באובייקט להשתמש ניתן בקוד, הפונקציה שורות מספרי מופיעים השגיאה. ]אם את המפרט טקסט לקבל כדיError ובפונקציה

Erlלשגיאה.[ שגרמה השורה מספר את תחזיר

פקודות: – שלישי חלק

השמה: משפטVar = Expression

Varמשתנה, הואExpressionביטוי. הואVarשל הערך את יקבל Expression.

הערה: משפט להערה נהפכת זו שורה – השורה מרכאה, בתחילת , אוREM השמורה המילה את מוסיפים כאשר

ממנה. מתעלם והקומפיילר

.VBA של מוכללות לפקודות המתכנת, או ע"י שהוגדרו נוספות לפקודות לקרוא אפשר בפקודות להשתמש שיוכלו וכדומה. כדיDLL מסוג במודולים המוכללות, מופיעותVBA הערה: פקודות

.Tools->References בתפריט היא ההפניה המודול. יצירת אל הפניה ליצור במודול, יש הנמצאותמחדל. כברירת הפניה מוגדרת מסויימים למודולים

שימושיות: מוכללות פונקציות מספר(Date :Day(Dateמ- בחודש היום את מחזירה תאריך. הפונקציה הואDate.(Date :Month(Dateמ- החודש את מחזירה תאריך. הפונקציה הואDate.

תאריכיםושעות

Page 14: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

(Date :Year(Dateמ- השנה את מחזירה תאריך. הפונקציה הואDate. (Date :Weekday(Dateמ- בשבוע היום את מחזירה תאריך. הפונקציה הואDate. (Date :Hour(Dateמ- השעה את מחזירה תאריך. הפונקציה הואDate. (Date :DatePart(Part, Dateהחלק את תאריך. מחזירה הוא Partמתוך Dateמספרי. , כערך

בשנה, - שבועwwבשבוע, - יוםw - רבעון, q - שנה, yyyy - חודש, m - יום, dשימושיים: קודיםyבשנה, - יוםh ,שעה - n ,דקה - s.שניה -

)(Dateהמערכת. תאריך את : מחזירה)(Nowשבמערכת. והשעה התאריך את : מחזירה(Num :CInt(Numאת מעגלת עשרוני. הפונקציה מספר הוא Numאחרי הראשונה הספרה )לפי בנקאית

שלם. מספר בדיוק(, ומחזירה0.5 הנקודה, או(CLng(Numכמו : CIntארוך. שלם , מחזיר(Num :CCur(Numמטבע. בעיצוב המספר את מחזירה מספר, הפונקציה הוא(sub :InStr(p, String, sub-ו stringשל הראשון המיקום את מחזירה מחרוזות. הפונקציה הם subבתוך

string.החיפוש. יתחיל בו התו את להגדיר )מספר, אופציינלי( כדיp את להוסיף ניתן

InStrRevההתחלה. לכיוון המחרוזת מסוף מתחיל שהחיפוש לקודמת, מלבד : זהה, ...(Switch(Condition, Valueזוגות. אם7 עד להגדיר : ניתן Conditionאת אמת, מחזיר הוא Value

ההשוואה. את ערך, ומפסיקה מחזירה אמת, היא בביטוי נתקלת הפונקציה שאחריו. כאשר(Var :VarType(Varמסוג משתנה הוא Variantכרגע. מכיל שהוא הנתונים סוג את , מחזיר

)(CurrentDBאובייקט הנוכחי, מסוג הנתונים מסד אל הפניה : מחזיר DataBase.Randomizeהאקראיים. המספרים מנוע את : מאתחלת

Rndמסוג אקראי מספר : מחזיר Single1מ- , וקטן0ל- שווה או , הגדול. (MsgBox(Msg,Style,Captionהכותרת עם הודעה תיבת : יוצר Captionהמכילה ,)'ההודעה את )אופצ

Msgהמשתנה ע"פ נקבע התיבה . סגנון Style.

ואופרטורים: ביטויים ערכים – רביעי חלקאופרטורים. שביניהם ערכים ממספר מורכב ביטויתוצאה. המחזירה לפונקציה עצמו, משתנה, קבוע, קריאה הערך – להיות: נתון יכול הערך

ערכים: ייצוג182המספר, לדוגמה: – מספרי ערךמרכאות: 'מחרוזת'. כפולות: "מחרוזת", או מרכאות בין – טקסט ערך

אותם: "סה""כ", או לכפול יש מחרוזת בתוך כפולות מרכאות את לכלול רוצים הערה: כאשרכפולות: 'סה"כ'. ומרכאות מרכאות של בשילוב להשתמש

#19/9/2009#סולמיות: בין – תאריך/שעה ערךמרובעות: ]טופס_ראשי[ סוגריים בין – אובייקט שם

מקרים:2ב- בעיקר חשיבות לזה בסוגריים, יש להשתמש חייבים המקרים בכל הערה: לא לשם שהכוונה לומר וכדו' כדי משפחה[, ובשאילתות ]שם רווחים עם שמות

שמורה. מילה או כלשהוא מאפיין ולא שדה/טבלה/אובייקטזה. ערך להכיל יכולVariant מסוג משתנה ריק, רק– Null המיוחדים הערכים ישנם

הרגילים, ההשוואה אופרטורי באמצעותNull הוא כלשהוא ערך האם לבדוק ניתן הערה: לא.Is מלבד

[.IsNull המובנית בפונקציה להשתמש ]ניתןמסויים. לאובייקט משוייך לא שהמשתנה אובייקט, ופירושו מסוג במשתנים רק השייךEmpty והערך

אופרטורים:שווה(. או שווה(, => )גדול או מ-(, >< )שונה(, =< )קטן מ-(, > )גדול : = )שווה(, < )קטןהשוואה אופרטורי

.Is, Likeמיוחדים: השוואה אופרטורי גם ישIsעל מצביעים שתיהם כאשר אמת אובייקטים, מחזיר על המבציעים משתנים בין להשוואה משמש

.Null המיוחד הערך עם נוסף, השוואה אובייקט. שימוש אותוLikeחיפוש". לדוגמה: "מבנה עם מחרוזת להשוואת משמש“abcd” Like "?bcd"אמת. מחזיר

השלם(, את רק עשרוני(, \ )חילוק, מחזיר : + )חיבור(, - )חיסור(, * )כפל(, / )חילוקמתמטיים אופרטוריםMODשניה(. )שארית(, ^ )חזקה

שרשור במקום ערכים חיבור להתבצע עלול לב! לעתים )שים+ טקסט(, או מחרוזות : & )שרשורשרשור.טקסט(

Not, And, Or, Xor, Eqv, Imp: - בינאריים לוגיים אופרטורים

המרות

נוספות

Page 15: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

שפועלNot )מלבד בינאריים ערכים שני שקר( על או )אמת בינארית תוצאה מחזירים אלה אופרטורים.False מחזירTrue And Falseאחד(. לדוגמה: ערך על

איבר אל קריאה, התייחסות אובייקט(, ! )סימן של שיטה או מאפיין אל : . )נקודה, התייחסותהתייחסותהמשתמש(. ע"י אובייקט, שנוסף פריט אל באוסף, או

Page 16: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

באקסס:VBA –ג' נספח לשימוש המיוחדים ואובייקטים פקודות , ישנםVBAב- הכלולות הרגילות בפקודות לשימוש בנוסף

באקסס. הגישהVBAמאקרו, ב- בגליון לבנות המאקרו, שאפשר פקודות קבוצת את למצוא אפשר השאר בין

אחר(. תחליף להם שיש בודדות פקודות )מלבדDoCmd המיוחד האובייקט של כשיטה מתבצעת אליהםהיישום. מנוע על , האחראיApplication העל לאובייקט המיוחדות באפשרויות להשתמש כן, אפשר כמו

DAO (Data נקראת זו הנתונים, קבוצה מסד למנוע המתייחסים מיוחדים אובייקטים מספר בנוסף, ישנםAccesss Objects).

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

המאקרו: פקודותCloseהפעיל(. - בחלון )ב"מ חלון - סוגר

OpenFormעיצוב. הדפסה, תצוגת לפני ג"נ, תצוגה טופס, תצוגת בתצוגת טופס - פותחOpenReportעיצוב, מדפיס. דוח, תצוגת בתצוגת דוח - פותח

OpenModuleעיצוב. בתצוגת מודול - פותחOpenQueryהדפסה. לפני תצוגה עיצוב, או בתצג"נ, תצוגת שאילתה, פותח - מפעילOpenTableהדפסה. לפני עיצוב, תצוגה בתצג"נ, תצוגת טבלה - פותח

OutputToהקובץ. לעריכת יישום לפתוח גם אחר. ניתן בפורמט לקובץ אובייקט של פלט - מייצאPrintOutהפעיל. האובייקט את - מדפיסRunSqlשל נתונים הגדרת או פעולה משפט - מבצע Sqlתוים.256ל- . מוגבל

CancelEventלמאקרו. שקרא האירוע את - מבטל הארגומנט אלTrue אירוע, מעבירים זו. לחילופין, בשגרת פקודה מכיל אינוDoCmd האובייקט

Cancelהאירוע. שגרת שלQuitאקסס. את - סוגר

RunCodeשגרת - מבצע VBA..Call במשפט משתמשים זו, ובמקומה בפקודה להשתמש ניתן לאVBA בקודRunCommandאקסס. של מוכללת תפריט פקודת - מבצע

RunMacroאחר. מאקרו - מבצעStopMacroהנוכחי. המאקרו את - עוצר

Exit אוExit Subב- להשתמש אפשר שגרה ביצוע לסיים . כדיVBA בקוד שייכת לא זו פקודהFunction.

StopAllMacrosהפעילים. המאקרוס כל ביצוע את - עוצרבקוד. זמין לא

Requryאובייקט. בבסיס העומדים הנתונים את - מרענןSendKeysהמקלדת. בפר אל הקשות - שולחSetValueמאפיין. או פקד של ערך - קובע

זה. במאקרו במקום השמה במשפט בקוד, משתמשיםApplyFilterדוח. או טופס בבסיס העומדים הנתונים על המוחל מסנן - מגדיר

FindNextמאקרו )ע"י האחרון החיפוש לערכי התואמת הבאה הרשומה את - מוצאבשדה"(. "חפש הדו-שיח תיבת או

GoToRecordבטופס. מסויימת רשומה אל - עוברEchoהמסך. על הגרפיות הפעולות של ההדהוד ביצוע את / עוצר - מפעיל

GoToControlבטופס. מסוים פקד אל - עוברהפקד. שלSetFocus בשיטה גם להשתמש בקוד, ניתן

GoToPageעמודים. מרובה בטופס מסויים עמוד אל - עוברHourGlassחול. שעון למצביע העכבר מצביע את - משנהMaximizeהנוכחי. החלון את - מגדילMinimizeהנוכחי. החלון את - מקטיןMoveSizeהנוכחי. החלון של גודלו את ומשנה - מזיז

RepaintObjectזה. שבאובייקט הנוסחאות את מחדש מסויים, ומחשב אובייקט מחדש - מציירRestoreהחלון. של גודלו את - משחזר

SelectObjectפתיחה סיום כופה מוקטן(. הפעולה הוא אם גודלו את )משחזר מסויים אובייקט אל - עובר טופס. של

SetWarningsזהה פעולה(. הפעולה שאילתות ביצוע בעת )כגון מידע הודעות או אזהרות הצגת - מונע / הודעה. האזהרה בחלוןEnter להקשת

ShowAllRecordsמסנן. - מסירShowToolBarכלים. סרגלי / מסיר - מציג

Page 17: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

Beepצליל. - משמיעMsgBoxאישית. מותאמת הודעה תיבת - מציג

זה. מאקרו במקוםMsgBox בפונקציה משתמשיםVBA בקודCopyObjectאחר. או זה נתונים מסד אל אובייקט של העתק - יוצר

DeleteObjectזה. נתונים במסד אובייקט - מוחקRenameמסויים. אובייקט של שמו את - משנה

Saveאובייקט. - שומרSendObjectאותו. נבחר, ושולח בפורמט בדוא"ל אובייקט פלט - מטביע

TransferDatabaseאחר. נתונים ממסד נתונים / מייצא - מייבאTransferSpreadsheetאלקטרוני. מגליון נתונים / מייצא - מייבא

TransferTextטקסט. מקובץ נתונים / מייצא - מייבאRunAppאחר. יישום - מריץ

.Shell בפונקציה משתמשים בקוד

אקסס: של היישום ארכיטקטורת הנתונים מסד ( ומנועApplication האובייקט ע"י )מיוצג היישום רכיבים: מנוע משני בנויה אקסס

היישום(. למנוע מתחת הממוקםDBEngine )האובייקט הנתונים, הגדרתם, על שולט הנתונים מסד המשתמש, ומנוע וממשק התכנות על שולט היישום מנוע

האובייקטים. והגדרת

הבאות: הפעולות את מבצע היישום מנוע הנתונים מסד פתיחת בעתהנתונים. מסד אובייקט הנתונים, ע"י מסד בחלון להצגה האובייקטים את קובעהעל אובייקט את מקים Applicationחלקיו. את עצמו(, ובונה היישום מנוע את )המייצגהמאפיין DBEngineשל Applicationהבאות: הפעולות את מבצע

האוסף את יוצר WorkSpacesאובייקט בתוכו , ויוצר WorkSpaceאתה אליה העבודה קבוצת ע"פ מאובטח(. המסד להתחבר, אם כדי סיסמה )מבקש מחובר

האובייקט עבור יוצר WorkSpaceאוסף : Groupsאובייקטי ובתוכו Groupאוסף , וכן Usersעם העבודה. קבוצת שבקובץ המידע , ע"פUser אובייקטי

אוסף DataBasesאובייקט עם DataBaseהרשאות את )בודק נתונים המסד נתוני כל את , המכיל (.User ו-Group ע"פ האובייקטים אל הגישה

הפעלה...". "כלים ע"י שהוגדרו ההפעלה אפשרויות את בודק /המאקרו את מפעיל AutoExecקיים. , אם

:DAOה- - אובייקטי סיכוםConnection, Container, DataBase, DBEngine, Document, Error, Field, Group, Index, Paramenter,

Property, QueryDef, Recordset, Relation, TableDef, User, Workspace. של הקיימים המופעים כל את המכיל דומה שם עם אוסף ( ישDBEngine )מלבד האובייקטים לכל

)השאילתות( שלQueryDefה- אובייקטי כל את מכילQueryDefs . לדוגמה: האוסףDAOה- אובייקטיהנתונים. מסד

:Application העל אובייקט סיכוםהפתוחים( הטפסים את המייצגיםForm אובייקטי )מכילForms האוסףהפתוחים( הדוחות את המייצגיםReport אובייקטי )מכילReports האוסףהפתוחים( המודולים את המייצגיםModule אובייקטי )מכילModules האוסף

לתצוגה(: הקשורות )פעולותScreen האובייקטהמוקד( נמצא עליו הפקד אל )הפניהActiveControl המאפייןהפתוח( הנוכחי נתונים המסד אל )הפניהActiveDataBase המאפייןהמוקד( נמצא עליו הטופס אל )הפניהActiveForm המאפייןהמוקד( נמצא עליו הדוח אל )הפניהActiveReport המאפייןהמוקד( היה עליו הקודם הפקד אל )הפניהPreviousControl המאפייןהעכבר( סמן צורת את ומחזיר )קובעMousePointer המאפיין

מאקרו(. פעולות )לביצועDoCmd האובייקטבשגיאות( )לטיפולErrors האוסף

הנתונים(: מסד מנוע את )מייצגDBEngine האובייקט אתה אליהם העבודה קבוצות את , המייצגיםWorkSpace אובייקטי )מכילWorkSpaces האוסף

מחובר(:משתמשים( המייצגיםUser אובייקטי )מכילUsers האוסףקבוצות( המייצגיםGroup אובייקטי )מכילGroups האוסף

Page 18: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

(OBDC )חיבוריConnections האוסףפתוחים(: נתונים מסדי המייצגיםDataBase אובייקטי ב"מ, מכיל )אוסףDataBases האוסף

גומלין( )קשריRelations האוסף( Documents האוסף ע"י הנתונים מסד אובייקטי הגדרות את )מכילContainers האוסףפתוחה( רשומות ערכת כל עבורRecordSet אובייקטי )מכילRecordSets האוסףטבלה( כל עבורTableDet אובייקטי )מכילTableDefs האוסףשאילתה( כל עבורQueryDef אובייקטי )מכילQueryDefs האוסף

.Parameters אוסף מכילQueryDef , ואובייקטIndexes אוסף מכילTableDef אובייקט )השדות(.Fields אוסף מכיליםTableDef, QueryDef, Recordset, Index ובנוסף, האובייקטים

אירועים:באירועים: אפשריים האירועים, ושימושים התרחשות סדר

מסנן( והחלת פרמטרים )לאתחול הרשומות והצגת אחזור הפתיחה, לפני : בעת)טופס( פתיחהפקדים( מאפייני ערך )הגדרת הרשומות טעינת : בעת)טופס( טעינה

גודל( תלויי פקדים )שינוי ראשונית בפתיחה גודלו, וגם את משנה : כאשר)טופס( גודל שינוי מוקד טופס, קבלת עבור: מודאלי, פתיחת גם פעיל. מתרחש נהיה הטופס : כאשר)טופס( הפעלה

מוקפץ(. )לא ממודאלי)לסנכרון( טופס בפתיחת חדשה, גם לרשומה המעבר : לפני)טופס( בנוכחי

בטופס אחר מפקד מוקד מקבל מאוגד : כשפקד)פקד( הזנה בעתאחר מחלון מוקד, גם פקדים( מקבל כשאין עצמו הטופס )או בטופס : כשפקד)פקד( מוקד קבלת בעת

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

מודאלי( )שאינו אחר לחלון המוקד את מאבד : כשהטופס)טופס( פעיל ללא כשהופךהמסך ניקוי לפני נסגר החלון : כאשר)סגירה( סגירה

)בטופס(: נתונים אירועיחדשות( רשומות עבור מידע )לספק חדשה ברשומה ראשון תו : בהקלדת)טופס( הוספה לפנימשולבת רשימה או טקסט תיבת פקד תוכן שינוי : בעת)פקד( שינוי בעתמשולבת רשימה של שורה במקור שאינו נתון : כשהוכנס)פקד( ברשימה שלא בעתמורכב( נתונים )לאימות שנשמר שונה, לפני שנתון : אחרי)פקד, טופס( עדכון לפניאובייקט מסגרת בפקד נתונים שינוי : לאחר)פקד( עדכון בעת

- נשמרו שנשתנו שנתונים : לאחר)פקד, טופס( עדכון לאחרשאילתה( )לרענון נשמרה חדשה שרשומה : לאחר)טופס( הוספה לאחר

----קשורות(. שורות )לאזהרה, ביטול, מחיקת המחיקה שורות, לפני : במחיקת)טופס( מחיקה בעתההודעה. הצגת נמחקו, לפני שהשורות : לאחר)טופס( מחיקה אישור לפני

)לרענון מחיקה" בוטל אישור "לפני אם מחיקה, אף שהיתה : לאחר)טופס( מחיקה אישור לאחרקשורות(. שורות שאילתות, מחיקת

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

פעיל, סגירה ללא : פריקה, הופךטופס סגירתמוקד : יציאה, אובדןביציאהמוקד. : הזנה, קבלתטקסט לתיבת מעבר

שינוי : בעתשינוי כל לפנימוקד. עדכון, יציאה, אובדן עדכון, אחרי : לפניטקסט מהתיבת ויציאה שינוי אחר

בטופס: נוספים אירועיםהטופס. על מסנן מחיל : כשהמשתמשמסנן הפעלת בעתמתקדם. סנון/מיון בחלון מסנן מגדיר : כשהמשתמשסינון בעתבעכבר. השמאלי : עללחיצה בעת של הרגילה לפניו. התוצאה מתבצע לחיצה בעת בעכבר. אירוע השמאלי : עלכפולה לחיצה בעת

הרגילה. הפעולה את לבטל זה, כדי אירוע לבטל לאירוע. ניתן הקריאה לאחר תופעל הכפולה הלחיצה

Page 19: על שפת VBA אני לא רוצה לכתוב, ואני גם לא מכיר אותה מספיקimg2.timg.co.il/forums/1_133939144.doc  · Web view0350:0000 01111110 0350:0001 00000010

תכנותבס"ד

במקלדת. מקשים צירוף או מקש : כשנלחץמקש ירידת בעתמקשים. צירוף או מקש על שהוקש : לאחרמקש לחיצת בעתמקשים. צירוף או מקש : בשחרורמקש עליית בעת המיוחדים המקשים צירוף את גם לזהות : ניתןהעכבר לחצן עליית העכבר, בעת לחצן ירידת בעת

/ שחרור. הירידה בעת העכבר שלx,yה- עמו, ואת שנלחצוהאירוע. שייך / טופס, לו הפקד מעל הסמן תזוזת : בעתהעכבר תזוזת בעת

בדוחות: ארועיםבדוח. מקטע עיצוב : לפניעיצוב בעת

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

ודוחות: בטפסים אירועיםשגיאה. : כשמתרחשתשגיאה בעת ע"י שניות במילי נקבעת השעון פסיקת שעון. תדירות פסיקת בכל : מופעלשעון פסיקת אירוע בעת

אירוע". פסיקת "קצב המאפיין