جلسه سوم برنامه نویسی در اکسل ایجاد دکمه جدید در صفحه اکسل:
از ابزار های 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 Procedure نوشتن فرمان (کلمه کلیدی) 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 در این روش مراحل زیر را انجام می دهیم ü ایجاد 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 استفاده نمود.