چه جوری با کدهای VBA فایل اکسل را ذخیره کنیم ؟
سلام اینجا سایت سافت پلاس و این مطلب هم یکی دیگر از آموزش های مربوط به برنامه نویسی VBA در اکسل است . توی آموزش امروز می خواهیم در مورد ذخیره اکسل با کدهای VBA با هم صحبت کنیم .
ذخیره کردن یک نسخه از اکسل در حالت معمولی یک کار ساده و پیش پا افتاده است . کافی است گزینه save as را انتخاب ، یک اسم برای فایل مان انتخاب و یک مسیر هم برای ذخیره سازی به برنامه معرفی کنیم .
دیگر همه چیز تمام است و فایل اکسل ما ذخیره شده است . اما فکرش را بکنید اگر بخواهیم همین کار را به کمک برنامه نویسی و کدهای وی بی ای در اکسل انجام بدهیم چه کار بایست کرد ؟
اگر دوست دارید یاد بگیرید که چطور می شود به کمک برنامه نویسی VBA یک نسخه مجزا از فایل اکسل را ذخیره کرد پس این آموزش همان چیزی است که می تواند به شما کمک کند .
من علیرضا شهرآئینی هستم و در این آموزش همه آنچه که برای این کار نیاز دارید را در اختیار شما قرار خواهم داد .
پس با من همراه باشید .
نحوه ذخیره اکسل با کدهای VBA
قبل از هر چیز این نکته را باید در نظر بگیریم که وقتی ما صحبت از ذخیره کردن داده ها در اکسل می کنیم از دو تا دستور می توانیم استفاده کنیم .
دستور اول SAVE است و دستور دوم هم SAVE AS . ما در این آموزش از هر دو تای این دستورها استفاده خواهیم کرد .
حالا تفاوت این دو تا دستور در چیست ؟
دستور Save برای وقتی استفاده می شود که ما یک فایل اکسل را می خواهیم برای مرتبه اول ذخیره کنیم . یا اینکه ما از قبل یک فایل اکسل داریم که در داخل آن یک سری تغییرات انجام می دهیم.
حالا برای اینکه این تغییرات در داخل همان فایل ذخیره شود می توانیم از دستور Save استفاده کنیم .
اما در دستور Save As ما یک نسخه مجزا یا به عبارتی دیگر یک نسخه کپی از فایل اکسل مان تهیه و آن را در جایی ذخیره می کنیم .
حالا که تفاوت این دو تا را متوجه شدیم برویم ببینیم که در کد نویسی وی بی ای پطور می توانیم از این دستورات استفاده کنیم .
ذخیره Workbook جاری توسط کدهای وی بی ای
کار خودمان را از ذخیره کردن یک ورک بوک شروع می کنیم .
برای ذخیره کردن ورک بوک جاری از کدهای زیر استفاده می کنیم .
ActiveWorkbook.Save
این یک دستور ساده است که با استفاده از آن ورک بوک جاری برای ما ذخیره خواهد شد . منظور از ورک بوک جاری همین فایل اکسلی است که در حال حاضر باز و در داخل آن مشغول کد نویسی هستیم .
ذخیره یک Workbook مشخص توسط کدهای وی بی ای
حالا فرض کنید که در آن واحد دارید روی 3 فایل اکسل کار می کنید . هر 3 تای آنها باز هستند و حالا می خواهید از بین این 3 تا فایل یکی از آنها را ذخیره کنید .
فرض کنید که اسم فایل مورد نظرتان “myfiles.xlsx” است . برای این کار از کدهای زیر استفاده می کنیم .
Workbooks("myfiles.xlsm").Save
در این دستور از اکسل می خواهیم که از بین ورک بوکهای فعال ورک بوکی را که ما اسم برده ایم را برایمان ذخیره کند .
مطلب مرتبط : آشنایی با مفهوم Object در برنامه نویسی VBA
ذخیره کردن همه ورک بوک های فعال توسط کدهای وی بی ای
باز هم فرض کنید که در حال حاضر بیشتر از دو یا چند تا فایل اکسل را باز کرده و به تناوب دارید روی آنها کار می کنید .
حالا اگر بخواهید همه این فایل ها را به یک باره ذخیره کنید چه راهکاری را پیشنهاد می کنید؟
من به شما پیشنهاد می کنم از کدهای مثل کدهای زیر استفاده کنید .
sub save_allfiles()
Dim wb as workbook
For Each wb In
Application
.Workbooks
wb.Save
Next wb
end sub
اینجا از یک حلقه For Each استفاده شده و تمامی ورک بوک های فعال برای ما ذخیره خواهد شد .
استفاده از دستور Save as برای ذخیره سازی اکسل
در قسمت قبل از این آموزش ما فایل اکسل را با استفاده از دستور Save ذخیره می کردیم . این دستور وقتی برای ما کارایی داشت که فایل اکسل ما از قبل ذخیره شده بود .
اما در کنار این دستور دستور دیگری وجود دارد به اسم save as که می خواهیم با استفاده از آن یک فایل اکسل را از ابتدا برای خودمان ذخیره کنیم .
اول بیایید با ساختار این دستور آشنا شویم .
SaveAs (FileName, FileFormat, Password,_
WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode_
, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
همانطور که می بینید این متد در اکسل دارای کلی آرگومان یا همان ورودی است .
در صفحه مربوط به دستور Save As در سایت مایکروسافت بطور کامل راجع به همه این آرگومانها و اینکه هر کدامشان چه کار یا کارهایی می کنند توضیح داده شده است .
اما در اینجا هم ما نه همه آنها که فقط مهمترین شان را مورد بررسی قرار می دهیم . پس با من همراه باشید .
آرگومان File Name
در این ورودی اسم فایل مورد نظر خودمان را برای اکسل تعیین می کنیم . توی ویدئوی کوتاه زیر یک مثال از نحوه استفاده از این آرگومان را می توانید مشاهده کنید .
آرگومان File Format
در این ورودی نوع فایل و فرمت مورد نظر خودمان را برای اکسل تعیین می کنیم .
یک نکته را بگویم و آن هم اینکه توی این آرگومان بیشتر از 50 تا حالت مختلف می تواند داشته باشد اگر می خواهید لیست کامل همه این فرمت ها را داشته باشید می توانید به این صفحه از سایت مایکروسافت مراجعه کنید .
مثلا اگر می خواهید فایل اکسل خودتان را با فرمت .xlsm ذخیره کنید می توانید از کدی مشابه کد زیر استفاده کنید .
Sub saving()
ActiveWorkbook.SaveAs "C:\Users\shahr-pc\Desktop\softpluse",_
xlOpenXMLWorkbookMacroEnabled
End Sub
توی کدهای بالا در خط شماره 5 برای اکسل فرمت مورد نظرمان را تعریف کرده ایم .
البته این کدها یکی دو تا نکته کوچک هم دارند که در داخل این ویدئو راجع به آنها صحبت کرده ام .
آرگومان Password
در این ورودی می توانیم یک پسورد را برای اکسل تعیین می کنیم . یادتان باشد که پسورد مورد نظر حداکثر می تواند دارای 15 تا کاراکتر باشد .
در ثانی این پسورد نسبت به بزرگی و کوچکی حروف در زبان انگلیسی حساس است .
اگر می خواهید برای فایل خودتان یک پسورد تعریف کنید می توانید از کدهایی مشابه کد زیر استفاده کنید .
Sub saving()
ActiveWorkbook.SaveAs "C:\Users\shahr-pc\Desktop\softpluse"
, xlOpenXMLWorkbookMacroEnabled, "softpluse.ir"
End Sub
در انتهای خط شماره 5 از این کدها من از اکسل خواسته ام که عبارت softpluse.ir را به عنوان رمز فایل در نظر بگیرد .
آرگومان writerespassword
توی آرگومان قبلی ما یک پسورد را برای فایل اکسل خودمان در نظر می گیریم . حالا دو تا حالت پیش می آید .
یا اینکه کاربر پسورد مورد نظر ما را دارد و با وارد کردن آن فایل اکسل برایش باز می شود یا اینکه پسورد داده شده از طرف کاربر اشتباه است و فایل باز نخواهد شد .
اما در این آرگومان یعنی آرگومان writerespassword یک حالت سومی هم می تواند بوجود بیاید . آن هم اینکه اگر کاربر پسورد مورد نظر ما را وارد نکند در نهایت فایل ما به صورت read only برایش باز خواهد .
مطالب زیر را حتما مطالعه کنید
By val و By ref | دو اصطلاحی که باید کار با آنها را یاد بگیرید .
با این کدهای VBA محدوده ها را در اکسل مدیریت کنید+ویدئو
SQL Server سوالاتی که همه در موردش می پرسند ؟
ردیابی تغییرات در فایل اکسل|نکته های کاربردی
مخفی کردن فرمول ها در اکسل؛ چرا و چطور این کار را انجام دهیم؟
مخفی کردن فرمول ها در اکسل با استفاده از روش های مختلف چیزی است که در این مطلب راجع به اون با هم صحبت می کنیم .
چه جوری از اطلاعات خودمان در اکسل محافظت کنیم ؟
توی این آموزش با هم روش های مختلف حفاظت از فایل های اکسل را یاد می گیریم .
6 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
همه این کارها با یک گزینه ساده توی اکسل قابل انجام شدنه دیگه نیاز به این همه کد و کد نویسی نیست که
اینا مربوط به برنامه نویسی میشه نه کار ساده با اکسل
سلام ممنون از آموزش های خوبتون
می خواستم بدونم که چه جوری میشه کاری کرد که خود کاربر تعیین بکنه که کدوم قسمت رو قفل گذاری کنه یعنی نیازی به این نباشه که وارد محیط کد نویسی بشه
ممنون
سلام توی آپدیت های بعدی راجع به این موضوع صحبت خواهم کرد ولی علی الحساب بدونید که میشه از اینپوت باکس ها برای این کار استفاده کرد
سلام وقت بخیر من یه یوزر فرم ورود کاربر با رمز ورود و پسوورد ساختم. بعد از این که کد اشتباه وارد بشه فایل اکسل مربوطه بسته میشه. فقط قبل این که بسته بشه یه پیام میاد که آیا میخواهید تغییرات ذخیره شود . میخواستم این پیا م اصلا نشون داده نشه کد vba چی میشه از کجا میشه غیر فعالش کرد . با تشکر
سلام برای این کار باید از کد زیر قبل از کدهای خودتان استفاده کنید
application.display=false
کد زیر را هم بعد از کدهای خودتان قرار بدهید
application.display=true