آشنایی با مفهوم آرایه ها (Array) در برنامه نویسی VBA

آرایه ها (َArray) در برنامه نویسی VBA  یکی از مفاهیم مهم و کاربردی در این زبان برنامه نویسی هستند . 

مدتها قبل و در همین سایت ما راجع  به آرایه ها با هم صحبت کردیم .

در  مطلب مذکور ما بطور تفصیل در خصوص موارد زیر با هم صحبت کردیم .

اول بیان کردیم که کلمه آرایه اشاره به چه معنا و مفهومی دارد .

در قدم بعدی عنوان کردیم که کاربرد  آرایه ها  چیست و در کجاها می توان از آنها استفاده کرد .

در خصوص ساختار آرایه ها و اینکه چطور می توان یک آرایه را تعریف کرد هم در همان مطلب صحبت شد .

در انتها هم با انواع آرایه های ثابت و متغیر بصورت اسمی آشنا شدیم .

اما امروز در این مطلب می خواهیم بطور اختصاصی تر و حرفه ای تر به مبحث آرایه ها بپردازیم .

ما در این مطلب صحبتی از این نمی کنیم که چگونه یک آرایه  را ایجاد کنیم. 

برای آشنایی با این کار یعنی نحوه ایجاد یک آرایه و سوالاتی از این دست شما را به مطلب زیر ارجاع می دهم .

مطلب مرتبط : آشنایی با مفهوم آرایه ها در اکسل .

آنچه که در این مطلب به دنبال آن هستیم این است که بطور حرفه ای کار با آرایه ها را یاد بگیریم و بتوانیم از آنها در برنامه های خود استفاده کنیم .

اما قبل از اینکه وارد بحث بشویم اول یک نگاهی به پرسش های زیر بکنید.

اینها سوالاتی است که در ذهن خیلی ها ایجاد می شود . 

 

سوال اول : آرایه ها  چه کاری می توانند برای ما بکنند و کجاها قرار است به درد ما بخورند ؟

سوال دوم :  آیا کار با آرایه ها سخت است؟ 

سوال سوم : اصلا می شود در کدهای خود  از آرایه ها استفاده نکنیم ؟

 

حالا به این سوال ها پاسخ می دهیم .

در خصوص سوال اول و اینکه آرایه ها قرار است چه کاری برای ما بکنند . 

آرایه قرار است کار ما را برای کد نویسی تا حد بسیار زیادی ساده کنند .

اما چگونه ؟

دقیقا در جایی که ما نیاز پیدا می کنیم که تعداد زیادی متغیر تعریف کنیم .

این جواب را تا همین جا داشته باشید  تا  در ادامه همین آموزش بیشتر و بهتر آن را بررسی کنیم . 

اما آیا کار با آرایه ها  و استفاده کردن از آنها سخت است؟

شاید کار با آرایه ها کمی سخت باشد ( یادتان باشد فقط کمی سخت) اما مطمئنا سخت تر  از وضعیتی نخواهد بود که نخواهیم از آرایه ها استفاده کنیم . 

در پاسخ به سوال سوم هم باید گفت شاید در برخی از جاها که با مسائل کوچکی روبرو می شویم بتوانیم از زیر کار با آرایه ها در برویم اما وقتی که کمی مسائل بزرگتر و پیشرفته تر می شوند خواه نا خواه مجبور می شویم که از آرایه ها استفاده کنیم . 

حالا با  در نظر گرفتن این موارد برویم به سراغ اصل موضوع خودمان یعنی آشنایی و کار با آرایه ها در برنامه نویسی VBA .

آرایه ها را از چند منظر می شود مورد بررسی قرار داد .

اول اینکه ببینیم که چند نوع آرایه داریم .

آرایه ها از نظر ابعاد به چند دسته تقسیم می شوند .

۱٫ – آرایه های یک بُعدی

آرایه یک بعدی آرایه ای است که تمامی اعضای آن در یک جهت قرار دارند  و یا به عبارتی فقط در یک سطر اطلاعات ثبت می شوند  .

به تصویر زیر نگاه کنید .

آرایه ها (َArray) در برنامه نویسی VBAاین تصویر نمایی از یک آرایه یک بعدی را نمایش می دهد .

برای اینکه از یک آرایه یک بعدی استفاده کنیم اول باید ببینیم که چگونه می توانیم آن را ایجاد کنیم و بعد به سراغ استفاده از آن برویم .

قوانین تعریف یک آرایه مطابق تعریف متغیرهاست .

یعنی اول یک نام برای متغیر خود در نظر می گیریم .

در قدم بعدی اندازه آرایه خود را مشخص می کنیم .

در انتها هم نوع داده ای که قرار است در این آرایه ذخیره شود را مشخص می کنیم .

بعنوان مثال فرض کنید می خواهیم اسامی مربوط به  ایام هفته را  در برنامه خود ذخیره کنیم. 

بیایید همین اول کار به سراغ آرایه ها نرویم . 

ببینیم در حالت عادی هم می توانیم این کار را بدون استفاده از آرایه ها انجام دهیم

به کدهای زیر نگاه کنید .

خوب مثل اینکه اوضاع زیاد هم بد بنظر نمی رسد . اینطور نیست ؟

می بینید که برای ذخیره کردن اسامی مربوط به هفت روز هفته ما  هفت متغیر جدا برای هر کدام از آنها تعریف کردیم .

خیلی راحت هم اسامی هر روز هفته را در یکی از آن ها ذخیره کردیم. 

حالا در نظر بگیرید که بخواهید اسامی ۵۰ دانش آموز را  به همین روش ذخیره کنید .

یا مشخصات مربوط به ۱۰۰۰۰ کتاب موجود در یک کتابخانه را ذخیره کنید .

مطمئنا نمی خواهید که ۵۰ یا ۱۰۰ یا ۱۰۰۰۰ متغیر را یک به یک  تعریف کنید .

پس چکار باید بکنیم ؟

باید به سراغ آرایه ها رفته و از آنها کمک بگیریم .

حالا همان کدهای بالا را با استفاده از آرایه ها باز نویسی می کنیم .

در قدم اول باید یک آرایه تعریف کرده و اندازه و یا به عبارتی تعداد اعضای این آرایه را مشخص کنیم .

ما در اینجا یک آرایه می خواهیم که ۷ عضو داشته باشد .

برای این کار از کد زیر استفاده می کنیم . 

کد زیر نیز آرایه ای همانند آرایه بالا برای ما ایجاد می کند .

 اکسل کار شمارش اعضای آرایه ها را از عدد صفر شروع می کند . 

اما اگر بخواهیم که اولین عضو از آرایه ما از عدد ۱ شروع شود می توانیم از کد زیر استفاده کنیم 

کد بالا نیز نتیجه ای مشابه دو کد قبلی برای ما دارد .

در خصوص حالت های مختلف این کدها در مطلب قبلی مفصل صحبت کردیم .

مقدار  دهی به یک آرایه یک بُعدی 

آرایه خود را ایجاد کردیم .

حالا باید مقادیر و اطلاعات مورد نظر خود را در آن وارد کنیم .

مقدار دهی به یک متغیر که کار ساده ای است .

کافی است نام یک متغیر  را درج کرده بعد از علامت مساوی مقدار مورد نظر خود را در آن ذخیره کنیم .

اما برای مقدار دهی به یک آرایه قضیه کمی فرق می کند .

برای ذخیره مقادیر در یک آرایه باید نام آرایه به همراه اندیس مورد نظر خود را نیز درج کنیم .

بعنوان مثال به کدهای زیر توجه کنید .

در اینجا هم درست مانند کدهای قبلی هر عضو از این آرایه اطلاعات مربوط به نام یکی از  ایام هفته را در خود ذخیره می کند .

می بینید که در اینجا چقدر در کار تعریف متغیرها صرفه جویی کردیم  .

اجازه دهید که کمی کار را واقعی تر کرده و مثال ملموس تر و کاملتری را در این زمینه با هم بررسی کنیم 

به تصویر زیر نگاه کنید .

آرایه ها (َArray) در برنامه نویسی VBA

ما در اینجا اسامی مربوط به ۱۱ قلم کالا را داریم .

می خواهیم اسامی هر کدام از این کالا ها را   از اکسل گرفته و در داخل یک متغیر ذخیره کنیم .

مطمئنا کار عاقلانه ای نیست که بخواهیم برای هر کدام از این کالاها یک متغیر جداگانه تعریف کنیم .

پس به سراغ تعریف آرایه می رویم .

در اینجا ما به یک آرایه با ۱۱ عضو نیاز داریم .

پس این آرایه را به اینصورت تعریف می کنیم .

حالا می خواهیم  با استفاده از کد نویسی نام هر کدام از این کالا ها را از اکسل خوانده و نام هر کدام از آنها را در یک متغیر مختص به خودش  ذخیره کنیم .

از کالای شماره ۱ شروع می کنیم .

می خواهیم این کالا را در اولین عضو از آرایه خود ذخیره کنیم برای این کار کد خود را بصورت زیر تکمیل می کنیم .

 در اینجا همه چیز در خط شماره ۵ اتفاق می افتد .

شاید بپرسید که چه اتفاقی ؟

اتفاق اول این است که با استفاده از عبارت   ( myarray(0 مشخص می کنیم که برنامه اولین عضو از آرایه ما را آماده کند .

وقتی که این عضو آماده شد با استفاده از عبارت مساوی می گوییم که هر مقداری را که  در سلول B2  موجود در شیت کاری با نام sheet1  قرار دارد  را در این عضو از آرایه ما ذخیره کند . 

به همین راحتی اولین عضو آرایه را مقدار دهی کردیم .

حالا می رویم به سراغ عضو بعدی آرایه خودمان .

در این عضو می خواهیم مقدار موجود در سلول بعدی را یعنی سلول B3  را ذخیره کنیم .

پس کدهای خود را به این صورت تکمیل می کنیم .

 در اینجا با استفاده از متد Offset  به برنامه می گوییم که از سلول B2  به اندازه یک ردیف پایین برود و مقدار سلول مربوطه را در عضو دوم آرایه ما ذخیره کند . 

برای سایر اعضای آرایه نیز کار به همین منوال خواهد بود .

فقط کافی است که شماره اندیس آرایه و شماره ردیف مربوط به متد Offset  را تغییر دهیم .

حالت تکمیل شده این کدها بصورت زیر است .

بنابراین با استفاده از این کدها به همین راحتی می توانیم مجموعه اطلاعات موجود در یک محدوده آرایه ها (َArray) در برنامه نویسی VBA ذخیره کنیم.

 ما در مرحله اول توانستیم کاری کنیم که به جای اینکه بیاییم و ۱۰ متغیر جداگانه را برای هر کدام از مقادیر تعریف کنیم با تعریف یک آرایه همه این ۱۰ متغیر را که قرار بود در ۱۰ خط نوشته شود را در  قالب یک نصفه خط خلاصه کنیم .

اما آیا می توان کاری کرد که برای مقدار دهی به این آرایه و یا هر آرایه دیگری با هر تعداد عضو  هم کار  راحت تری داشته باشیم .

یعنی برای اینکه بیاییم برای هر عضو از آرایه یک خط کد بنویسیم کاری کنیم که تنها با یک خط همه مقادیر مورد نظر ما در آرایه ما ذخیره شوند ؟

البته که یک راهکار مناسب برای این کار وجود دارد .

و این راهکار هم چیزی نیست جز استفاده از قابلیت حلقه ها  در برنامه نویسی VBA

 

ما این مطلب را به تدریج تکمیل می کنیم …………………………………

برای شماهده کلیپ های آموزشی و ترفندهای کار با نرم افزارهای آفیس می توانید به پیج ما در اینستاگرام مراجعه کنید .

برای این منظور کافی است بر روی لینک زیر کلیک کنید .

آرایه ها (َArray) در برنامه نویسی VBA.  

 

 

 

آموزش اکسل بازدید : 435 views 7 جولای, 2020 ۰