آموزش VBA در اکسل 2013 - قسمت سوم - نسخهی قابل چاپ +- انجمن انیاک (http://forum.learninweb.com) +-- انجمن: آموزش های تصویری (/forumdisplay.php?fid=7) +--- انجمن: آموزش تصویری VBA (/forumdisplay.php?fid=25) +--- موضوع: آموزش VBA در اکسل 2013 - قسمت سوم (/showthread.php?tid=1036) |
آموزش VBA در اکسل 2013 - قسمت سوم - learninweb - 05-30-2015 07:04 PM با سلام خدمت تمامي کاربران گرامي در زير آموزش تصويري VBA در اکسل 2013 را بررسي ميکنيم توجه کنيد که شما ميتوانيد نرم افزار آموزش VBA را به همراه چند بخش آموزشي ديگر که بصورت تعاملي و شبيه سازي شده با صدا و متن فارسي درس داده شده است و رايگان نيز ميباشد از لينک آموزش VBA دانلود کنيد. در نرم افزارهاي آموزشي کارهاي بيان شده را بايد در محيط شبيه سازي شده انجام دهيد. در ابتدا و انتهاي اين آموزش تصويري نيز کل آموزش (هم متن و هم تصويري) در فايل PDF و Word موجود است. دانلود فايل pdf آموزش تصويري VBA دانلود فايل word آموزش تصويري VBA در ابتداي اين بخش قصد داريم شما را با روش قرار دادن توضيحات در بين دستورات آشنا کنيم. براي قرار دادن توضيحات از کاراکتر ‘ استفاده ميکنيم. فرض کنيد يک دستور را وارد کردهايد و قصد داريد توضيحي در مورد آن دستور داخل کد برنامه داشته باشيد. براي اين کار از روشي که در ادامه ذکر ميشود، استفاده ميکنيم. در ادامه يک دستور را وارد ميکنيم. حال قصد داريم در مورد اين دستور توضيحي دهيم. براي اينکار روي قسمت مشخص شده کليک کنيد. کاراکتر ‘ را وارد کنيد. در ادامه توضيح مورد نظر خود را وارد ميکنيم. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که توضيح وارد شده به رنگ سبز در آمده است که مشخص ميشود اين متن توضيح ميباشد و در روند دستورات اجرا نميشود. حال براي اينکه کاملاً درک کنيم که توضيحات در روند اجراي دستور دخيل نيستند، در ادامه يک دستور مشابه دستور وارد شده به صورت توضيح وارد ميکنيم. حال براي امتحان دستورات و توضيحات وارد شده روي دکمه run sub کليک کنيد. روي دکمه OK کليک کنيد. مشاهده ميکنيد که کدي که به صورت توضيحي وارد کردهايم اجرا نشده است. در اين قسمت ميخواهيم روش ايجاد متغير را بررسي کنيم. همان طور که مشاهده ميکنيد يک قطعه کد ايجاد کردهايم. در اين قطعه کد سه متغير وجود دارد. متغير اول x ميباشد که داراي مقدار 67 است و متغير دوم y داراي مقدار 43 و متغير آخر يک پيغام به همراه مجموع x و y را نمايش ميدهد. و در آخر دستور msgbox متغير آخر را نمايش ميدهد. حال براي امتحان دستورات روي دکمه run sub کليک کنيد. مشاهده ميکنيد که متغير x با متغير y جمع شده و مجموع آن دو به نمايش در آمده است. روي دکمه OK کليک کنيد. در فصل قبل شما را با دستور option Explicit آشنا کردهايم. همانطور که گفته شد، با وجود اين دستور فقط متغيري قابل استفاده است که تعريف شده باشد. در ادامه عبارت option Explicit را در بالاترين قسمت صفحه دستورات تايپ ميکنيم. ) توجه داشته باشيد که براي کار با دستور option Explicit هم ميتوانيد از منوي Edit گزينه Options را انتخاب کنيد و با فعال کردن گزينه Require Variable Declaration دستور option explicit بصورت خودکار نوشته ميشود، يا ميتوانيد به صورت دستي اين دستور را تايپ کنيد. ( روي دکمه run sub کليک کنيد. مشاهده ميکنيد که خط x=67 مشخص شده است و پيغامي مبني بر اينکه متغير تعريف نشده است به نمايش در آمده. روي دکمه OK کليک کنيد. حال ميخواهيم متغيرها را تعريف کنيم. براي اينکار روي قسمت مشخص شده کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. براي تعريف متغير، عبارت Dim را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. حرف x را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. اکنون متغير x در برنامه تعريف شده است. در ادامه به همين ترتيب دو متغير ديگر را نيز در برنامه تعريف ميکنيم. روي دکمهRun کليک کنيد. مشاهده ميکنيد که قطعه کد بدون مشکل اجرا شده است. روي دکمه OK کليک کنيد. در زمان تعريف متغير شما ميتوانيد نوع متغير را مشخص کنيد تا مشخص شود که چه نوع دادهاي در متغير ذخيره ميشود. به عنوان مثال ميخواهيم متغير x را از نوع Double تعريف کنيم. روي انتهاي قسمتي که متغير x را وارد کرده ايم، کليک کنيد. دکمه Space صفحه کليد را فشار دهيد. عبارت as را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. مشاهده ميکنيد که يک ليست به نمايش در آمده است که ميتوانيد نوع متغير را از ليست انتخاب کنيد. روي عبارت double دابل کليک کنيد. دکمه حرکت مکاننما به سمت پائين را فشار دهيد. در ادامه براي متغير y نيز اين عمل را انجام ميدهيم. حال نوبت به متغير آخر رسيده است. متغير آخر به دليل اينکه داخل آن متن وجود دارد، بايد متغير را از نوع رشته تعريف کنيم. ) توجه داشته باشيد که اگر براي متغيرها نوعي تعريف نکنيم، متغير به صورت اتوماتيک نوع خود را انتخاب ميکند.( دکمه Space صفحه کليد را فشار دهيد. عبارت as را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. روي گزينه String دابل کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. روي دکمه run sub کليک کنيد. مشاهده ميکنيد که پيغام نمايش داده شده است. در جدول زير ميتوانيد انواع نوع متغيرها را مشاهده نماييد. هر متغير که درون يک روال يا تابع تعريف ميشود، فقط در داخل آن روال يا تابع قابل دسترس است. در ادامه اين موضوع را طي يک مثال بررسي ميکنيم. در اين روال که نام آنرا Test تعيين کردهايم، با استفاده از دستور msgbox مقدار متغير x را نمايش ميدهيم. براي اجراي اين روال عبارت Test را در قسمت immediate وارد کرده ايم. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد پيغامي مبني بر اينکه متغير x در روال Test تعريف نشده است نمايش داده شده. روي دکمه OK کليک کنيد. حال فرض کنيد بخواهيم متغير X را به طور کلي براي اين Workbook معرفي کنيم. براي اينکار بايد دستور Dim x as Double را از قطعه کدها حذف کرده و در زير عبارت option Explicit وارد کنيم. در ادامه دستور Dim x as Double را cut کرده و در پايين کد option Explicit قرار ميدهيم. با اين عمل متغير x براي تمامي قطعه کدهاي اين workbook معرفي شده است، در محل مشخص شده کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد تا کد اجرا شود. مشاهده ميکنيد که بدون مشکل کد اجرا شده و چون در اين کد مقداري براي متغير x وارد نکرده ايم، خروجي برابر صفر خواهد بود. روي دکمه OK کليک کنيد. حال ميخواهيم براي متغير x مقداري را وارد کنيم. براي اينکار روي قسمت مشخص شده کليک کنيد. دستور x=45 را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. روي قسمت مشخص شده کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد تا کد اجرا شود. مشاهده ميکنيد که مقدار 45 به نمايش در آمده است. روي دکمه OK کليک کنيد. حال فرض کنيد ميخواهيم متغير x را براي تمام ماژولها تعريف کنيم. براي اينکار بهجاي کلمه کليدي dim از Public استفاده ميکنيم. با اينکار در تمام ماژولها متغير x قابل شناسايي ميباشد. روي کلمه کليدي dim دابل کليک کنيد تا به حالت انتخاب در بيايد. کلمه کليدي Public را تايپ کنيد. در هر جا خارج از کادر کليک کنيد. در ادامه يک ماژول جديد ايجاد ميکنيم. مشاهده ميکنيد که يک قطعه کد وارد کردهايم که مقدار متغير x را نمايش ميدهد. روي دکمه run sub کليک کنيد. توجه کنيد که اگر عبارت Public را با dim عوض نکرده بوديم، در اين روتين که در يک ماژول ديگر وارد شده است متغير x تعريف نشده بود. اکنون در اين مرحله قصد داريم شما را با متغيرهاي جديدي آشنا کنيم که همانند متغيرهاي قبلي عمل ميکند اما با اين تفاوت که با هربار اجرا مقدار قبلي خود را حفظ ميکنند. براي درک بهتر در ادامه يک قطعه دستور را وارد ميکنيم. در سطر اول متغير x را تعريف کرده ايم. در سطر بعدي مقدار متغير x با يک جمع شده و در متغير x ذخيره ميشود. حال روي دکمه run sub کليک کنيد. مشاهده ميکنيد که عدد يک به نمايش در آمده است. چون متغير x مقداردهي نشده مقدار پيشفرض آن برابر با صفر بوده و سپس با يک جمع شده. روي دکمه OK کليک کنيد. روي دکمه run sub کليک کنيد. مشاهده ميکنيد که باز هم عدد يک به نمايش در آمده است. روي دکمه OK کليک کنيد. حال قصد داريم متغير را به صورتي تعريف کنيم که با هر بار اجرا مقدار قبلي پاک نشود. براي اين کار متغير بايد از نوع Static باشد. روي کلمه کليدي dim دابل کليک کنيد. دکمه backspace صفحه کليد را فشار دهيد. عبارت Static را تايپ کنيد. در محلي خارج از دستور کليک کنيد. اکنون با اين تغيير هرگاه که روال را اجرا کنيد مقدار قبلي ذخيره ميشود و با اجراي دوباره مقدار قبلي با عدد يک جمع ميشود. حال روي قسمت مشخص شده کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که چون مقدار اوليه صفر بود صفر با يک جمع شده و عدد يک به نمايش در آمده است. روي دکمه OK کليک کنيد. دوباره، روي قسمت مشخص شده کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. چون متغير x از نوع Static است مقدار قبلي آن يعني يک با عدد يک جمع شده و عدد دو نمايش داده شده است. در صورتي که بخواهيد متغير x اطلاعاتش پاک شود بايد از دستور End استفاده کنيد. در اين مرحله قصد داريم شما را با ثابتها آشنا کنيم. ثابتها همانند متغيرها ميباشند با اين تفاوت که مقدار متغيرها تغيير ميکند اما مقدار ثابتها هميشه ثابت بوده و هرگز تغيير نخواهد کرد. به عنوان مثال به قطعه کد وارد شده توجه کنيد. مشاهده ميکنيد که يک متغير به نام X تعريف کردهايم و مقدار آن را برابر عدد سه قرار داده ايم. در ادامه کد يک متغير ديگر به نام result تعريف کردهايم و طبق کد خط بعدي متغير x به توان عدد 2 رسيده و در result ذخيره شده است. فرض کنيد در اين مثال عدد 2 هميشه ثابت است و هرگز قصد تغيير آنرا نداريم. به همين دليل قصد داريم بجاي عدد 2 از يک ثابت استفاده کنيم. روي قسمت مشخص شده کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. براي تعريف يک ثابت کلمه کليدي const را تايپ کنيد. در ادامه نامي که ميخواهيم براي ثابت قرار دهيم را وارد ميکنيم. براي تعيين نوع ثابت، دکمه Space صفحه کليد را فشار دهيد. عبارت as را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. از منوي باز شده روي گزينه Integer کليک کنيد. دکمه Space صفحه کليد را فشار دهيد. کاراکتر = را وارد کنيد. دکمه Space صفحه کليد را فشار دهيد. عدد 2 را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. با اين کار مقدار ثابت power2 برابر عدد 2 است. در ادامه به جاي عدد دو ثابت power2 را وارد ميکنيم. اکنون با اجراي اين روال متغير x برابر 3 و بجاي ثابت ايجاد شده عدد 2 مقدار دهي خواهد شد. شايد فکر کنيد که چه دليلي وجود دارد که از ثابتها بخواهيم استفاده کنيم. فرض کنيد در يک دستور چند جا قصد داريم که از عدد 2 استفاده کنيم ولي تصور کنيد که بايد عدد 2 را با عدد 5 تعويض کنيد. براي اينکار لازم نيست کل دستورات را جستجو کنيد تا به اعداد 2 مورد نظر برسيد و آنها را با عدد 5 تعويض کنيد و فقط در قسمت تعريف ثابت عدد 2 را با 5 تعويض ميکنيم. حال براي امتحان تغييرات انجام شده، روي نام روال کليک کنيد. دکمه Ctrl + C را فشار دهيد. روي قسمت مشخص شده کليک کنيد. دکمه Ctrl + V را فشار دهيد. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که عدد 3 به توان عدد 2 در آمده است. روي دکمه OK کليک کنيد. در صورتي که بخواهيد از يک ثابت در تمامي ماژولها استفاده کنيد بايد قبل از اسم ثابت عبارت Public را وارد نمائيد. در نرمافزار Excel يکسري ثابتها وجود دارد که به صورت پيشفرض براي VBA معرفي شده است. به عنوان مثال ثابت vbred حاوي کد رنگ قرمز است. براي مشاهده عدد اين ثابت، روي قسمت مشخص شده کليک کنيد. کاراکتر ? را وارد کنيد. عبارت vbred را تايپ کنيد. دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که عدد 255 به نمايش در آمده است. حال ميخواهيم ليست ثابتهايي که اکسل از آنها استفاده ميکند را مشاهده کنيم. براي اينکار روي منوي view کليک کنيد. براي مشاهده ثابتها روي قسمت object browser کليک کنيد. در ادامه عبارت Constants را در قسمت جستجو وارد ميکنيم که بتوانيم ثابتها را جستجو کنيم. در اين ليست ميتوانيد قسمتهايي که در اکسل از ثابتها استفاده شده است را مشاهده کنيد. به عنوان مثال روي گزينه Excel کليک کنيد. در ليست مشخص شده ميتوانيد ثابتهايي که در محيط اکسل به کار رفتهاند را مشاهده کنيد. تمامي ثابتهاي تعريف شده در اکسل با حروف xl شروع ميشوند. حال روي گزينه VBA کليک کنيد. در ليست مشخص شده ثابتهاي رنگ در VBA را مشاهده ميکنيد. تمامي ثابتهايي که در VBA استفاده شدهاند داراي پيشوند vb ميباشند. در زمان تعريف يک ثابت از حروف xl و vb در ابتداي آنها استفاده نکنيد تا ثابت شما قبلاً تعريف نشده باشد. در اين قسمت ميخواهيم متغيرهاي نوع string يا رشته و date يا زمان را به شما معرفي کنيم. در اين کد دو متغير به نامهاي NameTest و WebAddress از نوع string تعريف کردهايم با اين تفاوت که متغير اول داراي محدوديت تعداد کاراکتر نيست ولي در متغير دوم با وارد کردن * 5 تعيين کردهايم که اين متغير محدوديت ذخيره سازي 5 کاراکتر را دارد. در سطر بعدي به متغير WebAddress يک رشته تخصيص دادهايم و در سطر پايينتر تعيين کردهايم که محتواي اين متغير بصورت يک پيغام نمايش داده شود. روي دکمه run sub کليک کنيد. مشاهده ميکنيد که از رشته وارد شده فقط 5 کاراکتر اول در متغير ذخيره شده است. روي دکمه OK کليک کنيد. در ادامه طي يک مثال به بررسي نوع date ميپردازيم. در اين مثال دو متغير از نوع date ايجاد کردهايم که داخل يکي تاريخ و داخل متغير ديگر ساعت ذخيره کرده ايم. توجه کنيد که براي مقدار دهي به متغيرهايي که از نوع date هستند، مقدار مورد نظر بايد در داخل دو علامت # باشد. حال براي اينکه يکي از متغيرها مقدار دهي شود، در ادامه يکي از آنها را به صورت توضيح در ميآوريم. براي اجراي تابع dateTest دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که تاريخ مورد نظر به نمايش در آمده است. در ادامه به بررسي کار با اپراتورها ميپردازيم. در جدول زير ميتوانيد ليستي از اپراتورها را مشاهده کنيد. در صفحه بعد به ذکر يک مثال خواهيم پرداخت.در جدول روبرو متغير x را برابر عدد 2 و متغير y را برابر با عدد 3 قرار داده ايم. حال ميتوانيد انواع عبارتها و خروجي آنها را مشاهده کنيد. توجه داشته باشيد که اولويت اجراي عملياتها طبق جدول زير ميباشد. يعني اگر در يک عمليات عبارت x + y * z وجود داشته باشد، ابتدا عبارت y * z محاسبه شده سپس حاصلضرب اين دو متغير با x جمع ميشود. در عبارت ( x + y ) * z ابتدا عمليات داخل پرانتز اجرا شده و سپس خارج پرانتز محاسبه ميشود. در اين قسمت ميخواهيم شما را با آرايهها آشنا کنيم. يک آرايه حاوي چند متغير با يک نام و يک نوع است. براي شروع تعريف يک آرايه عبارت dim را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. در ادامه عبارت arrayTest را به عنوان نام آرايه وارد ميکنيم. حال بايد ابعاد اين آرايه را مشخص کنيم. در ادامه عبارت (25) را وارد ميکنيم. دکمه Space صفحه کليد را فشار دهيد. براي تعيين نوع آرايه، عبارت as را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. روي گزينه Integer دابل کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. خانه اول اين آرايه arrayTest(0) و خانه آخر آن با arrayTest(25) قابل دسترس است پس اين آرايه داراي 26 خانه ميباشد. حال ميخواهيم يک آرايه تعريف کنيم که آدرس خانه اول آن به جاي صفر از يک شروع شود. براي اينکار در ادامه يک آرايه ديگر تعريف ميکنيم. به قسمت مشخص شده توجه کنيد. در اين قسمت مشخص کرده ايم که آدرس خانه اول آرايه يک و آدرس خانه آخر 25 ميباشد. شما ميتوانيد با استفاده از دستور option base 1 که در ابتداي تمامي کدها نوشته ميشود، مشخص کنيد که همه آرايه ها از يک آغاز شوند. در ادامه اين دستور را به صورت توضيح در ميآوريم. اگر دستور Option Base 1 فعال باشد همه آرايههايي که آغاز آنها مشخص نشده است، از يک شروع خواهند شد. تا اينجا با طريقه ايجاد آرايه آشنا شده ايد در ادامه به ذکر يک مثال جهت استفاده از آرايهها خواهيم پرداخت. عبارت sub را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. در ادامه نام روال مورد نظر را وارد ميکنيم. دکمه Enter صفحه کليد را تايپ کنيد. حال بايد آرايه مورد نظر را وارد کنيم. عبارت dim را تايپ کنيد. در ادامه نام آرايه را وارد ميکنيم. عبارت (12) را به عنوان ابعاد آرايه تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. عبارت as را تايپ کنيد. دکمه Space صفحه کليد را فشار دهيد. از منوي باز شده روي گزينه string کليک کنيد. دکمه Enter صفحه کليد را فشار دهيد. حال ميخواهيم به اين آرايه مقدار بدهيم. در ادامه دستور مورد نظر را وارد ميکنيم. در واقع با تعريف کردن يک آرايه يک جدول مانند جدول روبرو ايجاد ميشود. مشاهده ميکنيد که در دستور msgbox تعيين کردهايم که مقدار متغير mntName(1) را نمايش دهد. به همين دليل خروجي برابر با مقداري ميباشد که براي اين قسمت از آرايه وارد کرده ايم. براي اجراي اين روال دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که عبارت ارديبهشت به نمايش در آمده است. در ادامه به معرفي آرايه هاي دو بعدي خواهيم پرداخت. روي دکمه OK کليک کنيد. در اين مرحله ميخواهيم يک آرايه دو بعدي ايجاد کنيم. براي درک بهتر آرايه دو بعدي به جدول روبرو توجه کنيد. آرايه دو بعدي داراي يک طول و يک عرض ميباشد. در آرايه يک بعدي اگر قصد داشتيد يک آرايه با سه متغير داشته باشيد از دستور dim array1d(2) as integer استفاده ميکرديد اما اگر بخواهيد يک آرايه به صورت دو بعدي داشته باشيد که داراي سه متغير در طول و سه متغير در عرض باشد از دستور dim array2d(2,2) as integer استفاده ميکنيم. در ادامه يک روال با آرايه دو بعدي ايجاد ميکنيم. در اين روال يک آرايه دو بعدي ايجاد کردهايم و براي يک خانه از آرايه مقداري را وارد کردهايم. در واقع آرايه مورد نظر به صورت جدول زير ميباشد. در انتهاي روال نيز تعيين کرده ايم که خانه Array2d(2,0) را در خروجي نمايش دهد. براي نمايش خروجي، دکمه Enter صفحه کليد را فشار دهيد. مشاهده ميکنيد که عدد 7000 به نمايش در آمده است.کاربر گرامي شما در انتهاي اين بخش قرار داريد. توجه کنيد که شما ميتوانيد نرم افزار آموزش VBA را به همراه چند بخش آموزشي ديگر که بصورت تعاملي و شبيه سازي شده با صدا و متن فارسي درس داده شده است و رايگان نيز ميباشد از لينک آموزش VBA دانلود کنيد. در نرم افزارهاي آموزشي کارهاي بيان شده را بايد در محيط شبيه سازي شده انجام دهيد. در ابتدا و انتهاي اين آموزش تصويري نيز کل آموزش (هم متن و هم تصويري) در فايل PDF و Word موجود است. دانلود فايل pdf آموزش تصويري VBA دانلود فايل word آموزش تصويري VBA |