VBA FileDialog | כיצד לפתוח את תיבת Dialog Files באמצעות קוד VBA?

Excel VBA FileDialog

ב- VBA fieldialog הוא מאפיין המשמש לייצוג מקרים שונים, ב- fileialog ישנם ארבעה סוגים שונים של קבועים המכונים msofiledialogfilepicker המשמש לבחירת קובץ מנתיב נתון שני הוא msofiledialogfolderpicker אשר השם מרמז משמש לבחירה תיקייה ושלישית היא msofiledialog פתוחה לפתיחת קובץ והאחרונה היא msofiledialogsaveas המשמשת לשמירת קובץ כקובץ חדש.

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

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

כיצד פועלת אפשרות VBA FileDialog?

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

ניתן להוריד תבנית VBA FileDialog Excel כאן - תבנית VBA FileDialog Excel

"FileDialog" הוא אובייקט ב- VBA. כדי להשתמש תחילה באפשרות זו עלינו להגדיר את המשתנה כ- FileDialog.

ברגע שהמשתנה הוכרז כ- "FileDialog" הוא משתנה אובייקט. כדי להתחיל להשתמש בזה עלינו להגדיר את האובייקט באמצעות Application.FileDialog.

כפי שניתן לראות בתמונה לעיל יש ל- FileDialog ארבע אפשרויות.

  • msoFileDialogFilePicker: אפשרות זו פותחת את חלון בורר הקבצים מול המשתמש כדי לבחור את הקובץ הרצוי לפי רצונם.
  • msoFileDialogFolderPicker: אפשרות זו פותחת את תיבת הדו-שיח או החלון מול המשתמש כדי לבחור בתיקיה.
  • msoFileDialogOpen: זה יאפשר למשתמש לפתוח את הקובץ שנבחר מהתיקייה.
  • msoFileDialogSaveAs: זה יאפשר למשתמש לשמור את הקובץ כהעתק אחר.

נכון לעכשיו, בחרתי באפשרות של msoFileDialogFilePicker.

כעת עלינו לעצב את תיבת הדו-שיח המופיעה לפנינו.

באמצעות הצהרה נוכל לעצב את תיבת הדו-שיח.

בתוך ההצהרה הניחו נקודה כדי לראות את רשימת IntelliSense של המאפיינים והשיטות של אפשרות FileDialog.

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

כעת עלינו להחיל מסנן חדש כ- "Excel Files" עם סיומת תווים כלליים של קבצי ה- Excel.

עכשיו בואו לשנות את הכותרת של תיבת הדו-שיח של הקובץ.

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

יש לנו שתי אפשרויות כאן. אם נבחר TRUE זה יאפשר למשתמש לבחור מספר קבצים אם זהו המשתמש FALSE יכול לבחור רק קובץ אחד בכל פעם.

דבר נוסף שאנחנו יכולים לעצב עם FileDialog הוא שאנחנו יכולים למעשה להתעקש על מה צריכה להיות תיקיית ברירת המחדל כאשר תיבת הדו-שיח של הקובץ מופיעה. לשם כך השתמש בשם הקובץ הראשוני.

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

כעת סוף סוף עלינו להחיל את שיטת "הצג" כדי לראות את תיבת הדו-שיח של הקובץ.

קוד:

תת DoEvents_Example1 () עמום את הקובץ שלי כ- FileDialog הגדר את Myfile = Application.FileDialog (msoFileDialogFilePicker) עם Myfile. Filters. נקה. Filters. הוסף "קבצי Excel", "*. Xlsx?", 1. Title = "בחר את קובץ ה- Excel שלך !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". הצג סוף עם תת סיום

כעת הפעל את קוד VBA כדי לראות את התוצאה.

כפי שניתן לראות בתיבת הדו-שיח של קובץ התמונה לעיל פתחה את התיקיה שהוזכרה כברירת מחדל.

כעת אנו יכולים לבחור כל תיקיית משנה ולבחור את קבצי ה- Excel.

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

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

עכשיו בתוך הצהרת ה- with בחר "SelectedItems". הקצה את נתיב תיקיית הפריטים שנבחרו למשתנה שהוגדר לאחרונה.

כעת סוף סוף הציגו את נתיב התיקיה שנבחר בתיבת ההודעות VBA.

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

כעת בחרתי בשם הקובץ כ- “1. Charts.xlsx "בתיקיית המשנה" תרשימים ". אם אני לוחץ על אישור, נוכל לראות את נתיב התיקיה המלא בתיבת ההודעות.

אז, ככה, נוכל להשתמש באפשרות FileDialog כדי לבחור את הקבצים מהתיקיה ב- Excel. השתמש בקוד הבא כדי לבחור את הקבצים.

קוד:

משנה DoEvents_Example1 () עמעום קובץ My File כ FileDialog הגדר Myfile = Application.FileDialog (msoFileDialogFilePicker) העמום FileAddress כמחרוזת עם Myfile. Filters.Clear .filters. הוסף "קבצי Excel", "*. קובץ אקסל !!! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". הראה FileAddress = .SelectedItems (1) סיום עם MsgBox FileAddress סוף משנה