برنامه نویسی در محیط اکسل برای تازه کارها کار سختی است و بهمین دلیل می توانید از برنامه های آماده نوشته شده در به زبان VBA اکسل، در اینترنت استفاده نمایید. برای شروع کار باید با اصطلاحات Subroutine - Module آشنا باشید.
تعریف سابروتین در برنامه نویسی
یک برنامه بزرگ از سابروتین ها Subroutine تشکیل شده است و کوچکترین واحد یک برنامه را می تواند سابروتین نامید، در توضیح بیشتر باید گفت که یک سابروتین در واقع از دستوراتی تشکیل شده است که همه آنها، یعنی همه دستورات موجود در یک سابروتین با هم اجرا می شود و باعث انجام کاری خواهند شد.
نامهای procedure, method, function و routine همه نامهای دیگری برای سابروتین هستند و معادل آن در زبان فارسی "رویه" است.
در زبان برنامه نویسی ویژوال بیسیک اکسل اگر بخواهید دستوری را بنویسید که مثلا عدد 2+2 را محاسبه کنید، باید این دستور را در داخل یک سابروتین قرار دهید:
Sub Test()
a = 2 + 2
End Sub
در مثال ساده بالا شما با کلمه SUB مواجه می شوید که شروع سابروتین و پایان یک سابروتین را نشان می دهد و هر گاه این سابروتین که اسم آن Test است را اجرا کنید، تمامی دستورات این سابروتین خواهند و پردازش و در نهایت اجرا می شوند. در ادامه این آموزش با نحوه اجرای یک سابروتین نوشته شده در محیط VBA اکسل آشنا خواهید شد.
توابع جدید به چه کاری میآیند
البته این سوال ممکن است به ذهن شما متبادر شود که چرا باید تابع جدیدی اضافه کرد.
شاید دلایل زیر بتواند گوشهای از ارزش تابع را برای ما بیان کند:
- جلوگیری از کارهای تکراری در اکسل
- دسترسی به کلیه امکانات یک زبان برنامه نویسی مانند ویژوال بیسک
- به اشتراک گذاشتن توابع با سایر کاربران
- استفاده سریعتر از نرم افزار
- جلوگیری از اشتباهات کاربران
آشنایی با ویژوال بیسیک
برای شروع بهتر است کمی در خصوص ویژوال بیسیک بدانیم. VB یک زبان برنامه نویسی بسیار متداول است. برای اینکه یک تابع جدید نوشته شود لازم است که کمی با برنامه نویسی با این زبان آشنا باشیم. برای این منظور پیشنهاد میکنم که نرم افزار VB را تهیه کنید و بعد از آن هم چند CD آموزشی و یک کتاب . با کمی تمرین با اصول ابتدایی این زبان آشنا خواهید شد و قول میدهم کار بسیار ساده تر از آنچه فکر میکنید باشد.
لازم به ذکر است که نسخه جدید نرم افزار VB به نام VB.NET نیز وجود دارد که امکان استفاده آن در OFFICE 12 که نسخه بعدی افیس است گنجانده شده و بد نیست بدانیم که VB.NET در واقع قابلیتهای زبان برنامه نویسی C# را دارد.
شما برای استفاده از VB در اکسل نیاز ندارید که نرم افزار VISUAL BASIC را نصب کنید، همراه با نصب افیس خود این نرم افزار نیز نصب میشود.
در ضمن VBA همان زبان برنامه نویسی ویژوال بیسک میباشد که در آن قابیلیتهای ویژهای برای کار با اکسل،اکسس، ورد و... گنجانده شده است.
گام اول ورود به محیط ویژوال بیسیک
ابتدا بایستی وارد محیط VB شویم. برای اینکار چندین راه وجود دارد که عبارتند از:
- از منوها: Tools à Macro à Visual Basic Editor
محیط ویژوال بیسک
گام دوم ایجاد یک ماژول
شما باید دستورات تابع خود را در یک Module (ماژول) بنویسید، از منوی Insert گزینه Module را بزنید. و اگر به project explorer نگاه کنید متوجه خواهید شد که یک ماژول جدید ایجاد شده است.
اگر این پنجره نیست کلید Ctrl+R را بزنید
|
گام سوم ایجاد یک تابع درماژول
یک تابع در ویژوال بیسیک قواعد استانداردی دارد که شما باید از این قواعد اطاعت کنید.
اولین قانون آن این است که یک تابع با دستورات استانداردی شروع و به پایان میرسد.
قانون دوم این است که هر تابع یک نوع دارد و ورودیهای یک تابع در داخل پرانتز مشخص میشوند.
قانون سوم، نوع داده ورودیها (و خود تابع) باید مشخص شود.
این دستورات عبارتند از:
Private Function Test(Num As Integer) as Double
End Function
نام تابع ما test است و عبارت داخل پرانتز میگوید که این تابع یک ورودی دارد که نام آن ورودی Num است و integer بیانگر آن است که این ورودی عددی صحیح است. (-32,768 تا 32,767)
خروجی تابع از نوع double است و البته گذاشتن آن در همه موارد الزامی نیست، گرچه بهتر است که مشخص شود. (برای اطلاع بیشتر به کتابهای برنامه نویسیم مراجعه کنید.)
عبارت Private Function نشانگر شروع تابع و End Function برای پایان تابع است.
گام چهارم – نوشتن تابع در محیط VBA
فرض کنید میخواهیم تابعی بنویسیم که یک عدد را بگیرد و آنرا در 10 ضرب کند!
اول باید تصمیم بگیریم که اسم این تابع را چه بگذاریم، در حقیقت این اسم همان کلمهای است که در اکسل برای استفاده از این تابع استفاده خواهیم کرد.
خوب اسم آنرا Test میگذاریم و میدانیم که این تابع باید یک ورودی داشته باشد و خوب چون به تازگی با نوع عدد Integer آشنا شدیم (عدد صحیح) نوع این ورودی را هم Integer میگذاریم.
باید نامی برای این ورودی در نظر بگیریم، این نام نباید یک نام آشنا! برای VB باشد و بهتر است نامی با مسما در نظر بگیریم، اینجا اسم این ورودی را Num میگذاریم.
تعریف ماژول:
ماژولها در فایل اکسل شما ذخیره می شوند و شما می توانید آنها را ویرایش کنید، هر ماژول می تواند حاوی چندین سابروتین باشد.
درج یک ماژول و سابروتین در VBA:
1- در ابتدا با زدن کلید Alt+F11 وارد محیط VBA اکسل شوید.
از منوی Insert گزینه Module را انتخاب کنید تا یک ماژول ایجاد شود. در سمت راست صفحه شما قاب Project Explorer را اگر مشاهده کنید خواهید دید که ماژول شما با نام Module1 نمایش داده می شود. (اگر Project Explorer را نمی بینید از کلید Ctrl+R استفاده نمایید)
3- سابروتین خود را بنویسید.
ذخیره فایل اکسل حاوی برنامه
در اکسل 2007 اگر فایل خود را با پسوند XLSX ذخیره نمایید، تمامی برنامه های (ماکروها) یا به عبارت صحیح تر تمامی ماژولها پاک می شوند. در واقع این اقدام امنیتی اکسل 2007 است که فایل حاوی یک برنامه وِیژوال بیسیک را با پسوند XLSA ذخیره می کند.
شما در اکسل 2003 نمی توانستید تعیین کنید که آیا فایل حاوی ماکرو - ماژول - برنامه (همه این اصطلاحات دارای یک معنی هستند) است یا نه و حتما باید فایل را باز می کردید تا متوجه این موضوع می شدید.
در شکل زیر تفاوت Icon فایلهای اکسل 2007 که حاوی ماکرو (برنامه) است با Icon یک فایل عادی اکسل 2007 را مشاهده می نمایید.
باز کردن فایل حاوی برنامه ویژوال بیسیک (ماکرو)
اکسل به صورت پیش فرض برنامه موجود در یک فایل را غیر فعال (Disable) می کند زیرا ممکن است که این برنامه به نوعی یک ویروس باشد و این موضوع یک اقدام پیشگرانه است که در تمامی نرم افزارهای خانواده آفیس از جمله اکسل وجود دارد.
بعد از اینکه فایل اکسل حاوی برنامه VBA را بازکردید، با زدن گزینه Enable Macro برنامه را فعال خواهید کرد و می توانید ماکروهای آن فایل را اجرا کنید و در صورتیکه این کار انجام نشود، قادر به اجرا ماکرو نخواهید بود.
سپس گزینه Enable this Content بعد از باز کردن فایل در اکسل2007 بر روی دکمه را بزنید
اجرای یک برنامه نوشته شده در محیط VBA اکسل
همانطور که در بالا اشاره شد کوچکترین واحد یک برنامه سابروتین است و برای اجرای یک سابروتین کافیست در اکسل کلید Alt+F8 را بزنید تا پنجره زیر که لیستی از تمامی سابروتین ها در آن است را مشاهده نمایید و برای اجرای یک سابروتین، اول آنرا انتخاب کنید و سپس کلیدکنید.
اگر مایل باشید می توانید برای اجرای ماکرو (سابروتین) در اکسل یک Shortcut key (یا Hotkey) نیز تعریف کلیک کنید
ایجاد دکمه جدید در صفحه اکسل:
از ابزار های DESIGN MODE در منوی ماکر COMMAND BUTTON را انتخاب می کنیم دکمه جدید را انتخاب کرده و بر روی آن دابل کلیک می کنیم تا صفحه ویژوال بیسیک باز شود.
در صفحه ایجاد شده دستور زیر را وارد می کنیم:
Range("A1:A10").Value = 10
با این دستور به اکسل گفته شده که A1 تا A10 را گرفته و به آن مقدار 10 را بدهد.
از عبارت RANGE("@") برای مشخص کردن ناحیه ای در اکسل و از عبارت VALUE=. برای تغییر مقدار سلولها استفاده می کنیم.
حال از این صفحه خارج شده و بر روی دکمه گونیا(در منوی ویژوال بیسیک نوار خاکستری رنگ بالای صفحه) کلید کرده و EXIT DESIGN MODE را می زنیم.
بر روی دکمه جدید راست کلید کرده و مشخصات را را انتخاب کرده و در این حالت مشخصات دکمه از قبیل رنگ و نام و... را می توان تغییر داد.
حال از این صفحه خارج شده و بر روی دکمه گونیا(در منوی ویژوال بیسیک نوار خاکستری رنگ بالای صفحه) کلید کرده و EXIT DESIGN MODE را می زنیم.
وقتی که از حالت DESIGN خارج شدیم حال بر روی دکمه کلیک کرده و مشاهده می کنیم که درسلهای مشخص شده ارزش عددی 10 را قرار می دهد.
می توان به جای 10 یک عبارت را در داخل " " قرار داد و در این حالت به جای 10 آن عبارت نوشته می شود.
توجه: در صورتی که از علامت ' در ابتدای یک خط برنامه نویسی در محیط VB استفاده شود آن خط سبز شده و عملیاتی بر روی آن خط اجرا نخواهد شد. این خط اصطلاحا Comment (توضیحات)نامیده می شود. Comment حالت اجرایی ندارد و از آن برای ارایه توضیحات استفاده می شود. Comment ها به خوانایی برنامه بسیار کمک می کنند.
دستور زیر را می نویسیم:
Range("D1").Value = Range("B1") + Range("C1")
دستور زیر را در یک سط دیگر می نویسیم:
Range("E1").Value = "=A1+A2"
ملاحظه می شود که در سطر 1E ارزشهای موجود در A1 و A2 جمع زده می شود.
نکته: به علامت = در داخل کوتیشن توجه شود.
اگر به محیط اکسل بازگردیم و درسلولهایی که فرمول نوشته می شود توجه کنیم دیده می شود که محتوای این سلولها با علامت = شروع می شود. یعنی اکسل به محتوای یک سلول نگاه می کند اگر با علامت = شروع شود آنرا فرمول تلقی می کند و نه مقدار. پس ما هم از همین روش استفاده می کنیم و وقتی در نظر داریم که فرمولی را در یک سلول وارد کنیم می بایست با علامت = شروع کنیم.
دستور SELECT
با انجام این دستور سلهای مورد اشاره انتخاب می شود می توان بعد از RANGE از دستور بالا استفاده نمود.
دستور زیر را وارد کنید:
Range("F1:F10").Select
و دکمه را RUN می کنیم.ملاحظه می شود که سطرهای مورد اشاره های انتخاب شد.
می توان به جای: از علامت , استفاده نمود که در این حالت به معنی AND می باشد.
مواردی که در بالا اشاره گردید خلاصه ای از سه دستور RANGE VALUE SELECT بود که اشاره ای مختصر به آن گردید.
مطالبی که ارایه شد مقدمه ای بود تا آمادگی لازم برای ورود به مبحث برنامه نویسی ایجاد شود.
1. شروع برنامه نویسی
روشهای مختلفی برای شروع و ایجاد یک برنامه با VBA وجود دارد. روش اصلی و مستقیم نوشتن کدها در داخل ویرایشگر VB یا همان VBE میباشد. یک روش ساده دیگر نیز وجود دارد و آن ایجاد یک command button بر روی صفحه گسترده محیط اکسل و شروع برنامه نویسی با کلیک بر روی آن است. کار را با روش اول شروع میکنیم
1.1 روش اصلی: ایجاد و اجرای یک برنامه در VBE
برای ایجاد یک برنامه در محیط برنامه نویسی اکسل مراحل زیرانجام میشود:
1ورود به محیط برنامه نویسی یا همان Visual Basic Editor
برای انجام اینکار چند روش وجود دارد:
· استفاده از کلیدهای میانبر: F11 + ALT
· استفاده از منوی اکسل: Tools-> Macro-> Visual Basic Editor
· استفاده از ToolBar یا همان نوار ابزار Visual Basic و فشردن آیکون Visual Basic Editor
به هر حال با یکی از روشهای فوق وارد محیط برنامه نویسی میشویم.
2- ایجاد Module: ورود به منوی Insert و انتخاب گزینه Module
3- ایجاد یک رویه یا در اکسل
نوشتن فرمان (کلمه کلیدی) Sub و سپس نام برنامه
فشردن دگمه Enter
بلافاصله بطور اتوماتیک فرمان End Sub در یک خط جدید اضافه میشود.
4- نوشتن کدهای برنامه VBA: کدهای برنامه را خط به خط بین فرمانهای Sub و End Sub مینویسیم.
به عنوان مثال:
Sub MyProgram()
Range("A1:A10").Value = "Visual Basic For Applications"
Range("A11")=10
Range("B11").Value = 20
Range("C11").Value = "=A11+B11"
End Sub
5- اجرای برنامه: برای اجرای برنامه چندین روش وجود دارد
· فشردن کلید F5
· فشردن آیکن Rub Sub/User Form از Toolbar
· بازگشت به محیط Excel و استفاده از F11 + ALT 1.2 روش دیگر: ایجاد یک برنامه با استفاده از command button
در این روش مراحل زیر را انجام می دهیم
6- ایجاد command button
برای قرار دادن command button بر روی محیط اکسل مسیر زیر را طی میکنیم:
View منوی àToolbaràControl ToolBox
(البته اگر قبلا نوار ابزار Visual Basic Editor نیز فعال شده باشد می توانید Control ToolBox را بطورمستقیم از آن انتخاب کنید.)
بعد از طی مسیر فوق Control ToolBox ظاهر می شود. command button را انتخاب و آنرا بر روی صفحه گسترده محیط اکسل اکسل قرار میدهیم. یک دگمه در محیط اکسل ظاهر می شود.
نوشتن کدهای VBA:
با کلیک کردن بر روی command button بلافاصله Visual Basic Editor یا همان VBE ظاهر میشود. بلافاصله می توانید دستورات خود را همانند شکل تایپ کنید. (شکل بعدی)
با دقت در این کدهای VBA ملاحظه میشود که:
دستور اول مقدار(Value) سلولهای A1 تا A10را با عبارت "Visual Basic for Application" پر میکند.
دستور بعدی نیز حاصل جمع سلولهای A11 و B11 را در سلول C11 قرار می دهد.
دستور آخر نیز مقدار سلول D11 را نیز با روش دیگری برابر با حاصلجمع A11 و B11 قرار می دهد. با اندکی دقت متوجه میشویم که این دستور با دستور قبلی متفاوت است.
خروجی و رابط برنامه
|
اجرای برنامه:
برای اجرای این برنامه به محیط اکسل برمیگردیم. (می توان از F11 + ALT نیز استفاده کرد). با فشردن آیکن Exit Design Mode از Control Toolbox از حالت طراحی خارج میشویم. پس از آن با کلیک بر روی command button برنامه اجرا میشود که خروجی آن در شکل نشان داده شده است.
دستور CELLS:
این دستور با استفاده از مختصات سلولها آنها را مشخص می کند. به عنوان مثال CELLS(2,5) سطر 2 و ستون 5 یعنی E2را مشخص می کند.
در دستور: 'Cells(2,5).Value = 15 در سل 2و5 ارزش 15 را قرار می دهد
دو دستور زیر یک مفهوم را در بر دارند:
Cells(2,5).Select
RANGE("E2").SELECT
در دستور زیر
Range(Cells(2, 5), Cells(1, 5)).Value = 10
در سلهای مشخص شده ارزش 10 را می گذارد
دستور:
Range(("A1"), Cells(1, 5)).Value = 10
یک دستور ترکیبی می باشد. که هم از Range استفاده شده و هم از دستور CELLS
ملاحظه شد که به 2 صورت می توان سلها را از دو دستور دستورRANGE و دستور CELLS انتخاب کرد و از علامتهای با علامتهای ":" یا " ," استفاده نمود.
یادداشت: راهنمای جامعی برای کار با سلولها و ناحیه تهیه شده که بطور جداگانه نیز آمده است.
انتخاب سطر و ستون
دو دستور زیر طریقه انتخاب سطر ستون و سطر کلی می باشد:
Range("A:F").Value = 100
Range("1:5").Value = 100
که مشخص شده در آنها مقدار100 گذارده شود.در این دستورها تمامی ستونهای مابین و تمامی سطهای ما بین نیز ارزش مشخص شده را می گیرند.
دستور زیر:
Range("A:A,F:F").Value = 100
دستوری است که به برنامه می گوید ستون A و ستون F را به تنهایی ارزش 100 بگذار.
می توان به جای ستونها از سطرها نیز استفاده نمود.
دستور زیر:
Range("A1:A5,C1:C5,D1 5").Value = 4
را وارد کنید و نتیجه را با RUN نمودن ببینید.
معرفی سلولها با استفاده از متغیرها
دستور زیر را واد کنید:
A = 1
B = 2
C = 3
Range(Cells(A, A), Cells(B, B)).Value = 6
که در این صورت متغیرهای A B C را می توان برای برنامه تعریف کرد و در دستور CELLS ا
RExcel آنالیز آماری در Excel
در نرم افزار Excel توانایی کار با ریاضیات و آمار در حد متوسطی قرار داده شده است و برای حل مسائل آمار پیشرفته و جوابهای قابل اطمینان تر به Add-in هایی نیازمندیم. یکی از بهترین این Add-in ها R است.
R بسته ای قابل توسعه (برنامه نویسی) برای کار با داده ها، انجام آنالیزهای آماری و نمایش داده ها به صورت نموداری.
نرم افزار RExcel محیط R را بیش از هزار قابلیت بر روی نرم افزار Excel به صورت یک Addins آماده استفاده برای کاربران این نرم افزار می نماید.
بنابراین R نرم افزاری برای آنالیز آماری و نمایش گرافیکی داده ها.
این نرم افزار توسط تیمی بین المللی که در دانشگاهها و صنایع مختلفی مشغول فعالیت می باشند تهیه گردیده است.نرم افزار R یک از ابزارهای اصلی در تحقیقات آماری، علوم اجتماعی، اقتصاد و تجارت می باشد.
توسط این نرم افزار می توان کارهای زیر را نیز انجام داد:
* مدیریت داد ها و ابزارهای ذخیره آنها.
* ابزاری برای کار با ماتریس ها
* قابلیت توسعه و برنامه نویسی قدرتمند با زبانی که به آن S می گویند، که با در این زبان می توان حلقه ها، شرطها و انواع توابع را برنامه نویسی کرد.
RExcel یک Interface – رابطه گرافیکی با کاربر – می باشد که نرم افزار R را به شکل یک Add-in در اکسل نصب می کند.
توسط RExcel می توان داده ها را بین Excel و R رد و بدل نمود و در Excel می توان از توابع R استفاده نمود. سایر امکاناتی که RExcel در اختیار ما قرار می دهد:
از توابع R در Excel استفاده می شود و موتور محاسباتی اکسل این محاسبات را کنترل می نماید.
* کنترل Missing Data
* نصب خط فرمان R Commander و همچنین Menu در اکسل
. Ctrl+R، برای اینکار در شکل بالا روی گزینه Options کلیک کنید.