ماکروها یک راه فوق العاده برای گسترش عملکرد برنامه هایی مانند اکسل هستند. با این حال، ممکن است بخواهید این قابلیت را با اجرای یک فایل دسته ای DOS از ماکرو خود بیشتر گسترش دهید. اکسل به شما اجازه می دهد تا با استفاده از دستور Shell این کار را انجام دهید. نحو کلی دستور به شرح زیر است:
dRetVal = Shell("myfile.bat", mode)
در داخل گیومه ها می توانید نام مسیر کامل و نام فایل فایلی را که می خواهید اجرا کنید قرار دهید. در برخی از سیستم ها، اگر از نام مسیری با مشخصات فایل استفاده کنید، ممکن است با مشکل مواجه شوید. (اگر نام مسیرهای پیچیده ای دارید یا اگر نام مسیر شامل فاصله باشد، به نظر می رسد سر زشت خود را برش می دهد.) اگر این مشکل را دارید، به سادگی از دستور ChDir درست قبل از شل استفاده کنید تا دایرکتوری مورد استفاده اکسل را تغییر دهید. سپس می توانید شل را فقط با استفاده از یک نام فایل اجرا کنید.
نشانگر حالت به سادگی به اکسل می گوید که چگونه می خواهید پنجره باز شود تا فایل ظاهر شود. نشانگر حالت می تواند یکی از موارد زیر باشد:
ارزش |
|
نام متغیر |
|
معنی |
0 |
|
vbHide |
|
پنجره مخفی است و فوکوس دارد. |
1 |
|
vbNormalFocus |
|
اندازه پنجره معمولی است و فوکوس دارد. |
2 |
|
vbMinimisedFocus |
|
پنجره به حداقل رسیده و فوکوس دارد. |
3 |
|
vbMaximizedFocus |
|
پنجره به حداکثر رسیده و فوکوس دارد. |
4 |
|
vbNormalNoFocus |
|
اندازه پنجره معمولی است، اما فوکوس ندارد. |
6 |
|
vbMinimisedNoFocus |
|
پنجره کوچک شده است، اما فوکوس ندارد. |
دستور Shell مقداری را برمیگرداند که شناسه برنامه فایلی را که اجرا کردهاید یا صفر را نشان میدهد. اگر صفر برگردانده شد، در اجرای فایل خطایی رخ داده است.
باید به یاد داشته باشید که وقتی از Shell استفاده می کنید، فایل مورد نظر بلافاصله اجرا می شود و مستقل از اکسل اجرا می شود. این بدان معناست که دستور ماکرو بعدی، در ماکرو اکسل شما، بلافاصله بدون انتظار برای اتمام فایل هدف Shell اجرا می شود. اگر به راهی برای دور زدن این رفتار نیاز دارید، ممکن است به این صفحه در وب سایت چیپ پیرسون علاقه مند شوید:
http://www.cpearson.com/excel/ShellAndWait.aspx