מדריך - איך ליצור יוזרפורם (userform)\ ממשק משתמש ב-VBA
-
מדריך - איך ליצור יוזרפורם (userform) ב-VBA
מדריך זה נועד עבור מי שכבר יודע vba
במדריך זה נתמקד בעיקר בכפתורים ובקודים שלהם, הפעולות עצמם אינם שונים מכל מאקרו אחר.עריכה:
מומלץ לקרוא כתבה זו אפשר ללמוד ממנה הרבה
https://excelmacromastery.com/vba-user-forms-2/userform הוא בעצם ממשק משתמש שאפשר לעצב אותו כמעט איך שנרצה.
אז הנה דוגמא פשוטה
יש לנו כאן שלוש חלקים:
1.תיבת הזנת נתונים על ידי המשתמש
2.תיבת סימון
3.כפתור הפעלהפרק א - יצירת ה UserForm
אז איך יוצרים את זה?
נכנסים לתוך העורך vba
לוחצים על Insert ובוחרים ב - UserForm
כעת ייפתח בפניכם UserForm ריקה- UserForm מרושת כדי לעזור ביישור האובייקטים בתוכו למעשה רשת זו לא תופיע בעת ההרצה.
מבחינה עיצובית אפשר להתייחס ל UserForm כמו תיבת טקסט משוכללת
את ה UserForm בעצמו אפשר לשנות את גודלו על ידי מתיחת הקצוות עם העכבר ממש כמו תיבת טקסט.
אם תלחצו על F4 תגלו עוד כל מיני מאפיינים מעניינים, הצבע של ה UserForm והכותרת שמעליו (caption). ועוד ועוד.פרק ב - הוספת הלחצנים
אז בואו נתחיל לעצב את ה UserForm
קודם כל נוסיף את תיבת ההזנה על ידי לחצן זה
אם סרגל הכלים אינו מופיע במסך יש ללחוץ על התיבה של ה UserForm או בתפריט view ללחוץ על toolboxציירו את תיבת ההזנה - התיבה תהיה ריקה.
הוסיפו גם את תיבת הסימון עם לחצן זה
- את הטקסט של תיבת הסימון נוכל לשנות לכל טקסט שנרצה (לחץ על התיבה מחק את הטקסט הקודם והקלד טקסט חדש.
הטקסט ארוך מדאי? מתח את התיבה כרצונך.
אם ברצונך לעבור לשורה חדשה לחץ על SHIFT + ENTER) - כמו"כ נוכל לשנות את המיקום של ריבוע הסימון על ידי לחיצה על F4 ואז ללחוץ על ערך זה ולשנותו לשמאל או לימין
כעת נצייר את לחצן ההפעלה
בלחצן ההפעלה גם כן אפשר לשנות את הכיתוב.זהו ה UserForm מוכן עכשיו לקודים......
פרק ג - הקודים של הלחצנים
אם נלחץ לחיצה כפולה על אחד מהלחצנים שיצרנו ייפתח לפנינו הקוד הייעוד של אותו לחצן
מאחר והגדרנו לחצן הפעלה רוב הקודים יהיו בתוך הקודים של הלחצן אז בואו נלחץ לחיצה כפולה על לחצן ההפעלה ו-הופ הנה ההתחלה של הקוד
מה שאנחנו רואים זה sub שמוגדר להפעלה בעת לחיצת הכפתור על ידי התוספת של המילה click בסופו.בואו נזין בתוך ה Sub פעולה פשוטה של VBA
Selection.TypeText text:=""
קוד זה אמור להקליד טקסט במסמך בעת לחיצת הכפתור. לעת עתה הוא לא עושה כלום כי לא הגדרנו מה הוא יקליד.
כדי להגדיר מה הכפתור יקליד במסמך נשנה את הקוד כך:Selection.TypeText text:=TextBox1.Value
קוד זה מגדיר שבעת לחיצה על לחצן ההפעלה יוקלד במסמך הטקסט שהוזן על ידי המשתמש בתוך תיבת ההזנה
זהו אז הגדרנו את כפתור ההפעלה והגדרנו את כפתור ההזנה רק נשאר להגדיר את תיבת הסימון - נעשה זאת על ידי הוספת תנאי If לקוד כדלהלן:
If CheckBox1.Value = False Then Exit Sub
כך הגדרנו שרק אם תיבת הסימון מסומנת בוי יקרה משהו
עוד משהו אחד: כדי להגדיר טקסט ברירת מחדל עבור תיבת ההזנה נוכל להזין את הקוד הזה:
Private Sub UserForm_Initialize() TextBox1.Value = "הזן נתונים כאן" End Sub
בהצלחה!
פרק ד - ידיעות שונות
- ישנה אפשרות להפעיל את אותם הפעולות על ידי לחיצה על אנטר בלי כפתור הפעלה (או שיהיו שניהם יחדיו)
כדי לעשות זאת נצטרך להזין את הקוד עבור תיבת ההזנה כדלהלן
Private Sub textbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = KeyCodeConstants.vbKeyReturn Then KeyCode = 0 Selection.TypeText text:=TextBox1.Value End if End Sub
- לחצן label משמש עבור כתיבה של מידע עבור המשתמש.
תוכלו לכתוב תיבה ארוכה עם הוראות כמו זה.
(למעבר שורה לחץ SHIFT + ENTER
ליישור הטקסט לחץ F4 ובחר בפקודה זו )כדי להציג את ההוראות שיצרתם יש להזין בתוך המאקרו שלכם את שם ה Userform בתוספת הפקודה show
וכדי להסתיר בתוספ הפקודה Hide
עריכה:
לשאלת רבים שמסבכים בהגדרה של פקדים מימין לשמאל התשובה היא שפשוט צריך להגדיר את היוזרפורם מימין לזמאל ואז הכל יסתדר
- את הטקסט של תיבת הסימון נוכל לשנות לכל טקסט שנרצה (לחץ על התיבה מחק את הטקסט הקודם והקלד טקסט חדש.