فایل دیالوگ در اکسل و برنامه نویسی VBA + نکات و ترفندها
سلام و درود به شما مخاطب سایت سافت پلاس . به این سایت خوش آمدید. امروز می خواهیم در مورد فایل دیالوگ یا در اصطلاح همان FileDialog و نحوه استفاده و کار با آن در برنامه نویسی VBA با هم صحبت کنیم .
می خواهم صفر تا صد هر آن چیزی را که در مورد فایل دیالوگ در برنامه نویسی VBA به آن احتیاج دارید را به شما آموزش بدهم .
به شما قول می دهم که با خواندن این مطلب دیگر نیازی به مطالعه هیچ منبع و رفرنسی دیگر در این مورد نداشته باشید .
بسیار خب. آماده هستید ؟
پس برویم کار را شروع کنیم .
File dialog یا همان فایل دیالوگ خودمان چی هست ؟
شاید اسمش را نشنیده باشید اما اگر با کامپیوتر سر و کار دارید مطمئنا هر روز دارید از فایل دیالوگ ها استفاده می کنید .
می خواهید یک مثالش را بزنم .
فرض کنید که داخل فایل اکسل خودتان کلی کار انجام داده اید و حالا می خواهید که فایل اکسل خودتان را ذخیره کنید . خب روی دکمه Save که کلیک می کنید چه چیزی برایتان باز می شود ؟
درست است. پنجره مربوط به ذخیره کردن . این همان پنجره ای است که توی برنامه نویسی از آن به اسم فایل دیالوگ نام می بریم .
اما یک سوال .
آیا هر پنجره یا کادری که در داخل اکسل باز می شود در حکم فایل دیالوگ است ؟
نظر خودتان چیست ؟ چه جوابی به این سوال می دهید ؟
پاسخ این سوال مثبت است .
در واقع فایل دیالوگ پنجره ای است که در آن یک دیالوگ یا گفتگویی بین شما و برنامه ای که در آن مشغول به کار هستید اتفاق می افتد و از این طریق از برنامه می خواهید که یک یا چند تا کار خاص را برایتان انجام بدهد .
اینجا دو حالت وجود دارد .
حالت اول مربوط به کارهایی است که قرار است در داخل خود نرم افزارتان مثل اکسل یا اکسس انجام شوند .
یک موقع هم هست که قرار است کاری در خارج از نرم افزار انجام شود .
هر کادری که در داخل نرم افزار اکسل یا اکسس باز می شود در حکم یک فایل دیالوگ است .
حالا قرار است یاد بگیریم که چطور می شود با استفاده از برنامه نویسی VBA به این فایل دیالوگ ها دسترسی پیدا کرده و کارهای مورد نظر خودمان را با استفاده از آنها انجام بدهیم .
چطور از فایل دیالوگ استفاده کنیم ؟
برنامه نویسی وی بی ای یک متدی دارد به نام فایل دیالوگ که با استفاده از آن و به کمک کدهایی که می نویسید می توانید کادرهای مختلف را در محیط نرم افزار فراخوانی کنید .
برای اینکه بتوانید از فایل دیالوگ استفاده کنید باید به سراغ کلاسی به همین نام بروید .
می پرسید کلاس دیگر چیست ؟
کلاس یکی از اصطلاحات و مفاهیم مهم در برنامه نویسی VBA است که حتما باید کار با آن را یاد بگیرید .
اگر برای یادگیری کلاس به دنبال یک رفرنس می گردید که کار با کلاس را به صورت کامل و البته ساده به شما آموزش بدهد به شما مطلب کلاس ماژول ها در اکسس ، همه آنچه که باید در مورد آنها بدانید را به شما توصیه می کنم .
اما برویم به سراغ فایل دیالوگ خودمان .
در برنامه نویسی VBA کلاسی وجود دارد به نام FileDialog که همه آنچه که ما می خواهیم را در خود دارد .
در قدم اول باید با این دستور آشنا شده و ساختار آن را بخوبی بشناسیم .
در یک نگاه کلی این دستور از ساختار زیر پیروی می کند .
Application.filedialog
همانطور که می بینید این دستور از یک پارامتر تشکیل شده است .
با استفاده از همین پارامتر است که می توانیم تعیین کنیم که فایل دیالوگ ما از چه نوعی باشد .
اما در قدم اول باید یک فایل دیالوگ را ایجاد کنیم و در گام بعدی به سراغ تنظیمات مربوط به آن برویم .
برای اینکه یک فایل دیالوگ را ایجاد کنیم اول باید یک متغیر را تعریف کرده و نوع آن را از نوع فایل دیالوگ در نظر بگیریم .
به کدهای زیر توجه کنید .
Sub create_filedialuge()
Dim fd As FileDialog
End Sub
در اینجا ما متغیر fd را از نوع کلاس دیالوگ تعریف کرده ایم .
حالا باید از این کلاس شی یک نمونه بسازیم .
البته کلمات شی و کلاس اشاره به مفاهیم کاربردی دارند که باید بطور اصولی با آنها آشنا شوید .
ما قبلا در خصوص مفهوم شی بطور مفصل در مطلب جداگانه ای با هم صحبت کرده ایم .
برای دسترسی به این مطلب می توانید از طریق لینک زیر اقدام کنید .
مطلب مرتبط : آشنایی با مفهوم شی در برنامه نویسی VBA
پس تا به اینجای کار ما یک کلاس داریم به نام FileDialog.
یک متغیر هم داریم به نام fd .
حالا باید یک نمونه شی از این کلاس ایجاد کنیم .
برای این کار از کد زیر استفاده می کنیم .
()Sub create_filedialuge
Dim fd As FileDialog
Set fd = Application.FileDialog
End Sub
در خط دوم از این کدها ما از دستور set استفاده می کنیم .
در سمت راست این تساوی نیز متغیر fd را نیز برابر با کلاس Application . filedialog قرار می دهیم .
در قدم بعد باید نوع فایل دیالوگ مورد نظر خود را مشخص کنیم .
برای این کار کافی است در ادامه کد بالا و در جلو عبارت Application . filedialog یک پرانتز قرار دهیم .
بلافاصله بعد از این کار برنامه یک لیست را برای ما نمایش می دهد .
به تصویر زیر توجه کنید .
همانطور که می بینید این لیست شامل ۴ گزینه می باشد .این یعنی اینکه ما 4 نوع فایل دیالوگ داریم .
هر کدام از این گزینه ها قرار است یک کار خاص را برای ما انجام دهند .
در ادامه با هم به بررسی یک به یک این گزینه می پردازیم.
یک پیشنهاد خواندنی : Cut-copy-pasre سه دستور کاربردی در برنامه نویسی VBA
فایل دیالوگ نوع msofiledialogpicker
اولین گزینه در این کلاس msoFileDialogePicker است .
با استفاده از این متد می توانیم به برنامه بگوییم که یک کادر گفتگو برای ما باز کند .
در این حالت کادر گفتگو این امکان را به ما می دهد که بتوانیم یک فایل را از بین فایل هایی که برای ما نمایش داده می شود را انتخاب کنیم .
برای این کار کدهای خود را بصورت زیر تکمیل می کنیم .
اولین گزینه در این کلاس msoFileDialogePicker است .
با استفاده از این متد می توانیم به برنامه بگوییم که یک کادر گفتگو برای ما باز کند .
در این حالت کادر گفتگو این امکان را به ما می دهد که بتوانیم یک فایل را از بین فایل هایی که برای ما نمایش داده می شود را انتخاب کنیم .
برای این کار کدهای خود را بصورت زیر تکمیل می کنیم .
()Sub create_filedialuge
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker
)
End Sub
خوب تا به همین جای کار کدهای خود را اجرا کنید .
برای اجرا کردن این کدها کافی است دکمه F5 را فشار دهید .
اما قاعدتا اتفاق خاصی برای شما نخواهد افتاد.
چرا ؟
اول این خبر خوب را به شما بدهم که بعد از اجرای این کدها یک کادر در حافظه کامپیوتر شما ساخته شده است.
فقط کافی است که این کادر را از حافظه خارج . آن را بر روی مانیتور خود نمایش دهید .
برای اینکه کادر مورد نظر شما نمایش داده شود باید از یک خط کد زیر استفاده کرده و آن را در ادامه کدهای خود وارد کنید .
()Sub create_filedialuge
Dim fd As FileDialog
(Set fd = Application.FileDialog(msoFileDialogFilePicker
with fd
. Show.
end with
End Sub
حالا دکمه F5 را مجددا فشار دهید .
نتیجه کار برای شما باید کادری شبیه تصویر زیر باشد .
پس تا به اینجای کار ما توانستیم با استفاده از کد نویسی این کادر را فراخوانی کنیم .
حالا کاربر این امکان را دارد فایل مورد نظر خود را یافته و با استفاده از دکمه Open آن را باز کند.
هر شی متناسب با کارهایی که می تواند بکند دارای یک سری از ویژگی ها می باشد .
در اینجا شی fd نیز که نمونه ای از کلاس فایل دیالوگ می باشد نیز از این قاعده مستثنی نیست .
در اینجا می خواهیم به بررسی و تنظیم برخی از این ویژگی ها بپردازیم .
برای شروع به عنوان کادری که برای شما باز می شود توجه کنید .
عنوان این کادر تحت عنوان Browse است که در بالای سمت چپ این پنجره قرار دارد .
نظرتان چیست که عنوان این کادر را متناسب با سلیقه خود تغییر دهیم .
برای این کار کد های خود را بصورت زیر تکمیل می کنیم .
()Sub newsub
Dim fd As FileDialog
(Set fd = Application.FileDialog(msoFileDialogFilePicker
with fd
Show.
" فایل خود را انتخاب کنید" =Title.
end with
End Sub
در این کد ها با استفاده از خط شماره ۹ عنوان کادر خود را تغییر می دهیم .
بعد از اجرای این کدها مشاهده می کنید که عنوان کادر ما تغییر می یابد .
در ادامه حتی می توانیم دکمه ای که تحت عنوان Open در این پنجره نمایش داده می شود را نیز تغییر عنوان دهیم.
برای این کار کافی است کد زیر را به کدهای قبلی خود اضافه کنیم .
()Sub test
Dim fd As FileDialog
(Set fd = Application.FileDialog(1
fd.Show
"فایل خود را انتخاب کنید"=fd.Title
"باز کردن "=fd.ButtonName
End Sub
تصویر زیر نتیجه و خروجی کار برای دو مرحله قبل را به ما نمایش می دهد .
تا به حال دقت کرده اید که وقتی یک فایل دیالوگ را باز می کنیم به یک پوشه و یا درایو خاصی رفته و اطلاعات موجود در آن را برای ما نمایش می دهد . آیا تصور می کنید که این کار اتفاقی است ؟ .
مطئمئنا که هیچ چیز در دنیای برنامه نویسی اتفاقی نیست و همه چیز در درست برنامه نویسان است . اما چه جوری برای برنامه مشخص کنیم که وقتی فایل دیالوگ ما باز شود به آدرس مشخصی رفته و اطلاعات آن را برای ما نمایش دهد ؟
خوب این کار خیلی ساده است . به کدهای زیر نگاه کنید :
()Sub test
Dim fd As FileDialog
(Set fd = Application.FileDialog(msoFileDialogFilePicker
fd.Show
With fd
"فایل خود را انتخاب کنید" =Title.
" باز کن " ButtonName =
"InitialFileName = "F:\vb learn file
End With
End Sub
اگر دقت کنید در آخرین خط از این کدها ما یک دستور استفاده کردیم به اسم InitialFileName . با استفاده از این دستور مسیر مورد نظر خود را به برنامه معرفی می کنیم . با این کار هر بار که فایل دیالوگ ما باز شود اطلاعات موجود در این مسیر نمایش داده می شود .
تصویر زیر خروجی کدهای بالا می باشد
به تصویر بالا دقت کنید . از نحوه نمایش فایل ها در این کادر خوشتان نمی آید؟ می خواهید اندازه آیکون مربوط به فایل ها را بزرگتر کنید ؟ نظرتان چیست که فایل ها را به همراه جزئیات آنها نمایش دهید ؟
کدهای وی بی ای حتی این قابلیت را دارند که در خصوص نحوه نمایش اطلاعات در فایل دیالوگ خودتان تصمیم گیرنده باشید .
به کدهای زیر نگاه کنید .
()Sub test
Dim fd As FileDialog
(Set fd = Application.FileDialog(msoFileDialogFilePicker
fd.Show
With fd
"فایل خود را انتخاب کنید " =Title .
"باز کن " =ButtonName .
"InitialFileName = "F:\vb learn file.
InitialView = msoFileDialogViewLargeIcons.
End With
End Sub
در خط آخر از این کدها با استفاده از InitialView تعیین می کنیم که فایل های مورد نظر با آیکون بزرگ برای ما نمایش داده شوند .
اما این ویژگی حالت های مختلف دیگری را نیز می تواند بگیرد .
جدول زیر لیستی از گزینه های مورد استفاده در این ویژگی را نمایش می دهد .
به کمک هر کدام از این گزینه ها می توانید مدیریت کنید که وقتی فایل دیالوگ مورد نظر شما باز می شوند آیکون های موجود در آن به چه صورت نمایش داده شوند .
امیدوارم که این مطلب برایتان کاربردی بوده باشد اگر سوال یا نظری در مورد ین مطلب دارید می توانید آن را در قسمت دیدگاهها مطرح کنید تا با هم آن را بررسی کنیم .
مطالب زیر را حتما مطالعه کنید
تابع سفارشی در اکسل ؛ چی هست؟ چطور آن را ایجاد کنیم ؟
تابع countif در اکسل💚راهنمای کامل کار با آن
زوم کردن در سلول های اکسل + ۳ روش مختلف
چند فرمت سفارشی برای اعداد که هر حسابداری باید بداند.
من چطور یک نمودار دایره ای ساده را بصورت حرفه ای نمایش میدهم ؟
تابع Column و Row در اکسل | دو تابع ساده اما کاربردی
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام مطلب خوب و جامعی نوشتید کی بقیه مطلب را تکمیل می کنید ؟
خیلی سایت جامعی دارید می خواستم ازتون تشکر کنم