הפעולה לשמירת קבצים היא אחת הפעולות הבסיסיות והנפוצות בעת העבודה בקבצי אקסל.
הדרך הקלה ביותר לעשות זאת היא באמצעות שילוב המקשים Ctrl+S.
אם מדובר בשמירה ראשונה של קובץ, תיפתח חלונית השמירה בשם ותבקש מאתנו להזין את שם הקובץ והנתיב,
וכן לבחור את סוג הקובץ:
XLS לקבצים שתומכים בגרסאות אקסל 2003 ומטה, XLSX לקבצים בגרסאות הרצועה (2007 ומעלה), XLSM לקבצי מאקרו בגרסאות הרצועה וכן הלאה.
אם מדובר בקובץ שכבר נשמר בעבר, שילוב המקשים ישמור אותו בשם ובנתיב הקיימים.
כאשר אנו כותבים קוד ב VBA, אנחנו לא חייבים לפתוח את חלונית השמירה, ויכולים, כבר בתוך הקוד עצמו, לבחור את סוג הקובץ הרצוי.
אז אם כבר יש לנו קובץ אקסל ששמרנו, ואנחנו רוצים לשמור אותו באותו השם ובאותו הנתיב, נשתמש בפקודה
ActiveWorkbook.Save
הפקודה הזאת מקבילה לאפשרות השמירה הרגילה, ומיועדת לקבצים שכבר נשמרו לפחות פעם אחת. הפעולה שמתבצעת היא שמירה של הקובץ בנתיב ובשם הנוכחיים.
שימו לב, אין להשתמש בפקודה הזאת על קובץ חדש, שעדיין לא נשמר. ניסיון לעשות כן יתן הודעת שגיאה,
משום שהפקודה הזאת תבקש לשמור את הקובץ בסיומת XLSX, שאינה תומכת בפקודות מאקרו!
אז איך בכל זאת שומרים קובץ שמכיל מאקרו בסיומת XLSM?
בדקו את הקוד הבא:
ActiveWorkbook.SaveAs Filename:="D:\MyFile.xlsm", FileFormat:=52
פקודת 'שמירה בשם' מאפשרת להורות לאקסל היכן לשמור את הקובץ באמצעות המאפיין FileName,
ובנוסף, מאפשרת לקבוע את סוג הקובץ על ידי שימוש במאפיין FileFormat.
למאפיין FILEFORMAT מספר אפשרויות קבועות:
לשמירה כ CSV, יש להזין את הערך 5
xlsb=50
xlsx=51
xlsm=52
xls=56
pdf=57
txt=20
אז בואו נביט בקוד הבא:
Sub MySave()
Workbooks.Add
temp = InputBox("Enter a number ")
ActiveWorkbook.SaveAs Filename:="FileFormat" & temp, FileFormat:=temp
ActiveWorkbook.Close
End Sub
הקוד שלעיל מבקש מהמשתמש להזין מספר. אם המספר הזה הוא אחד מהמספרים השמורים לסוגי הקבצים, הקובץ יישמר בפורמט המבוקש (אם תזינו מספר שאינו קיים, תקבלו הודעת שגיאה)
אני מציעה לכם לנסות ולהזין מספרים שונים, ולראות אילו סוגי קבצים מתקבלים
ממליצה לכם לקרוא את המאמר המשלים: שמירת קבצים