התקשרו אלינו: 052-2928949
ימים א'-ה' בין השעות 9:00-17:00

התקשרו אלינו: 052-2928949 א-ה 9:00-17:00

פתיחת קובץ VBA

VBA Tip

פתיחת קובץ VBA

VBA Tip

איך פותחים קובץ באמצעות VBA?

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

1. Workbooks.Open "FileNameToBeOpened"

2. Application.FileDialog(msoFileDialogOpen).Show

3. Application.Dialogs(xlDialogOpen).Show

4. Application.GetOpenFilename

פתיחת קובץ מתוך שורת הקוד

הקוד הראשון משתמש בפקודה Workbooks.Open ובצמוד אליה שם הקובץ שאנו מבקשים לפתוח. החליפו את FileNameToBeOpened בשם הקובץ והנתיב שלכם!
לדוגמה:

Workbooks.Open "C:\My Documents\MyFile.xlsx"

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

חלונית 'פתיחת קובץ'

הקוד השני מאפשר בחירה של קובץ מתוך החלונית. אם תבדקו את אפשרויות האוסף FileDialog תראו שהוא מכיל שלוש אפשרות נוספות –
בחירת קובץ באמצעות msoFileDialogFilePicker,
בחירת תיקיה באמצעות הפקודה msoFileDialogFolderPicker
ושמירת קובץ באמצעות הפקודה msoFileDialogSaveAs
הפקודה XlDialogOpen היתה בשימוש בעיקר על ידי משתמשי Windows XP, והיא עדיין זמינה לנו כיום,
אך הפקודה msoFileDialogOpen עושה את אותה הפעולה עם גמישות רבה יותר ואפשרויות רבות יותר.

אפשרות נוספת להצגת חלונית 'פתיחת קובץ'

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

שמירת מיקום הקובץ בזכרון

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

MyFile = Application.GetOpenFilename

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

GetOpenFilename(FileFilter, FilterIndex)

הקוד הבא יציג בחלונית קבצי אקסל בלבד:

Application.GetOpenFilename ("Excel Files (*.xlsx), *.xlsx")

והקוד הבא יציג קבצי טקסט

Application.GetOpenFilename ("Text Files (*.txt), *.txt")

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

דילוג לתוכן