آرایه ها و مفاهیم مربوط به آن در برنامه نویسی VBA
یکی از مفاهیم بسیار مهم و کاربردی در برنامه نویسی VBA آرایه ها هستند .
غیر ممکن خواهد بود اگر بخواهید یک برنامه کاربردی و حرفه ای با استفاده از زبان برنامه نویسی VBA – و یا هر زبان برنامه نویسی دیگر – ایجاد کنید بدون اینکه بخواهید از آرایه ها در ساختار کدهای خود استفاده کنید .
بنابراین امروز می خواهیم راجع به این موضوع بسیار مهم با همدیگر صحبت کنیم و به بررسی این مفهوم پرداخته و با نحوه استفاده از این قابلیت بسیار مهم و کاربردی در برنامه نویسی VBA با هم آشنا شویم .
موضوعاتی که در این پست آموزشی به آنها می پردازیم شامل موارد زیر خواهد بود .
۱- معنی و مفهوم آرایه در زبان برنامه نویسی VBA چیست ؟
۲- چرا و چه موقع ما باید از آرایه ها استفاده کنیم ؟
۳-چگونه و از چه طریقی می توانیم ما یک آرایه را ایجاد کنیم ؟
۴- انواع آرایه ها از لحاظ ساختاری کدامند ؟
۵- چگونه اطلاعات مورد نیاز خود را در آرایه ها ذخیره کنیم ؟
۶- چگونه اطلاعات ذخیره شده در یک آرایه را بازخوانی کنیم ؟
با پاسخ به این سوال تا حد زیادی می توانیم با مفاهیم مربوط به آرایه آشنا شده و به راحتی از آنها در برنامه های خود استفاده کنیم .
پس از شما می خواهم که تا انتهای این مطلب همراه من باشید تا با هم به بررسی این مفهوم بپردازیم .
مفهوم آرایه در زبان برنامه نویسی VBA
آرایه ها ارتباط تنگاتنگ و مستقیمی با مفهوم متغیرها دارند .
یعنی اگر شما می خواهید کار با آرایه ها را یاد بگیرید قبل از آن باید با مفاهیم مربوط به متغیرها بخوبی آشنا باشید .
انواع متغیرها را بشناسید و به راحتی بتوانید متغیرهای مختلف را در محیط برنامه نویسی VBA ایجاد کرده و با آنها کار کنید .
همه مفاهیمی که در کار با متغیرها با آنها سرو کار داریم در مورد آرایه ها نیز صدق می کند .
در واقع می دانیم که متغیرها فضایی هستند که ما می توانیم اطلاعات مورد نظر خود را در انها ذخیره کنیم .
و اینکه متغیرها انواع مختلف داده را می توانند در خود ذخیره کنند.
آرایه نیز در واقع چیزی جدای متغیرها نیستند .
در واقع ما اگر به جای اینکه یک متغیر را تعریف کنیم بیاییم کاری کنیم که چندین متغیر را همزمان با هم تعریف کنیم آن وقت به مجموعه این چند متغیر یک آرایه می گوییم .
بنابراین یک آرایه ساختاری است متشکل از چندین متغیر که بطور همزمان تعریف شده اند .
یکی از مهمترین ویژگی های یک متغیر این است که باید حتما برای متغیر خود یک نام مناسب انتخاب کنیم .
در تعریف آرایه نیز داستان به همین شکل خواهد بود .
یعنی ما در اینجا چند متغیر را بطور همزمان و تحت یک نام واحد نام گذاری خواهیم کرد .
اجازه بدهید قبل از اینکه مطلب خیلی پیچیده تر از این شود این چند خط از مطلب را با هم و در قالب مثالها و تصاویر با هم بررسی کنیم.
مطلب مرتبط : آشنایی با مفهوم متغیر در زبان برنامه نویسی VBA .
اول گفتیم که یک متغیر فضایی است بر روی حافظه کامپیوتر ما که می توانیم اطلاعات خود را در آن ذخیره کنیم .
به تصویر زیر نگاه کنید .
یک مطلب خواندنی : چطور به کمک برنامه نویسی VBA محدوده ها را در اکسل مدیریت کنیم ؟
این یک تصویر شماتیک و فرضی از یک رم است .
یک رم دارای فضاهای متعددی برای ذخیره سازی اطلاعات مربوط به برنامه های مختلف است .
حالا ما کاری که کرده ایم این است که با استفاده از فرآیند تعریف متغیر از سیستم عامل کامپیوتر خود خواسته ایم که سه تا از این فضاها را در اختیار برنامه ما قرار دهد .
نام این فضاها را هم خودمان تعیین می کنیم و همینطور تعیین می کنیم که در هر کدام از این خانه ها چه نوع داده ای ذخیره شود .
بعنوان مثال خانه اول را به نام strname تعریف کرده ایم و تعریف کرده ایم که داده های متنی در آن ذخیره شوند . خانه دوم به نام intage و فقط اعداد در آن ذخیره شوند .
در انتها هم خانه سوم به نام dtebirth و فقط داده های نوع تاریخ در آن ذخیره شوند .
اما حالا فرض کنید که می خواهید مشخصات مربوط به ۱۰۰ نفر را به همین ترتیب ذخیره کنیم .
مسلما نه معقولانه است و نه اصلا منطقی است که بخواهیم ۱۰۰ تا متغیر به ازای هر نفر تعریف کنیم .
پس چاره کار چیست ؟
چاره کار این است که به جای اینکه ۱۰۰ متغیر را یک به یک تعریف کنیم همه این متغیرها را یکجا با هم تعریف کنیم .
وقتی که ما چند متغیر را همزمان با هم تعریف کنیم به جای اصطلاح متغیر از اصطلاح آرایه استفاده می کنیم .
پس آرایه مجموعه ای است چند تا متغیر که بطور همزمان با هم تعریف شده باشند.
از این پس به متغیرهای موجود در یک آرایه را تحت عنوان اعضای آن آرایه می شناسیم.
اما قبل از اینکه بخواهیم به سراغ نحوه چگونگی تعریف متغیرها بپردازیم اجازه دهید دو تا نکته بسیار مهم را در این خصوص با هم بررسی کنیم .
یکی از فاکتورهایی که در تعریف متغیر حتما باید مورد توجه قرار دهیم در خصوص نام گذاری متغیرها می باشد .
نامگذاری متغیرها تابع یکسری از قواعد و قوانین مشخص است .
یکی از این قواعد این است که حتما باید برای متغیر خود یک نام در نظر بگیریم .
از طرفی هم دو متغیر در یک روال به هیچ عنوان نمی توانند هم نام باشند .
اما وقتی که ما یک آرایه را تعریف می کنیم در واقع چند متغیر را تحت یک نام می آوریم.
آیا این امر باعث ایجاد مشکل نمی شود .
وقتی ما به یک متغیر سر و کار داریم کافی است نام آن را ذکر کنیم تا بتوانیم با آن کار کنیم .
اما در یک آرایه شامل ۱۰ عضو چگونه می توان مشخص کرد که با کدام یک از متغیرها و یا بهتر است بگوییم با کدام یک از اعضای آرایه می خواهیم کار کنیم .
خوب در اینجا مفهوم جدیدی در آرایه بوجود می آید .
این مفهوم اندیس آرایه است .
اندیس یک آرایه در واقع شماره ای است که به هر کدام از اعضای یک آرایه داده می شود .
بدین ترتیب کل آرایه ما یک نام واحد دارد اما هر کدام از اعضای آن یک شماره منحصر بفرد برای خود خواهد داشت .
بنابراین برای دسترسی به هر کدام از این اعضا فقط کافی است نام آرایه را به همراه شماره اندیس عضو مورد نظر خود را در برنامه درج کنیم .
این از نکته اول .
حالا برویم سراغ نکته دوم .
نکته دوم این است که ما وقتی می توانیم چند متغیر را تحت عنوان یک آرایه به برنامه معرفی کنیم که حتما و حتما نوع داده ای که قرار است در داخل این متغیرها یا همان اعضای آرایه ما ذخیره شوند همه از یک نوع باشند .
این یعنی چه ؟
یعنی اگر شما یک آرایه با ۱۰ عضو دارید باید نوع داده همه این همه اعضای این آرایه از نوع متنی باشد .
یا همه از نوع عدد یا تاریخ و … باشند .
پس شما نمی توانید یک آرایه ۱۰ عضوی داشته باشید و بخواهید سه عضو آن نوع داده متنی داشته باشند و دو عضو آن نوع داده عددی و چند عضو دیر نوع داده تاریخ .
بنابراین یک آرایه مجموعه ای است از چند متغیر که این متغیرها در دو چیز با هم مشترک هستند و در یک چیز متفاوت.
تمامی متغیرهای موجود در قالب یک آرایه دارای یک نام واحد بوده و همگی دارای یک نوع خاص از داده هستند .
اما در عین حال هر متغیر دارای شماره یا ایندکس متفاوت از سایر متغیرها خواهد بود .
حالا با در نظر گرفتن همه این موارد به سراغ این قضیه می رویم که اصلا چگونه می توانیم یک آرایه را تعریف کنیم .
نحوه تعریف یک آرایه در زبان برنامه نویسی VBA
قواعد و قوانین تعریف متغیرها دقیقا مشابه تعریف متغیرهاست .
فقط در فرآیند تعریف آرایه باید تعیین کنیم که آرایه ما قرار است چند عضو داشته باشد .
حال ببینیم که ساختار و فرمول کلی برای تعریف یک آرایه به چه نحو است .
همانگونه که مشاهده می کنید بخش های زیادی از ساختار تعریف یک آرایه دقیقا مشابه تعریف یک متغیر است .
تنها نقطه تفاوت در اینجا در این است که ما باید اندازه آرایه خود را برای برنامه تعیین کنیم .
یعنی بگوییم که آرایه ما قرار است شامل چند متغیر باشد .
بیایید با توجه به تصویر بالا کمی موضوع را بیشتر باز کنیم .
در بخش اول از این ساختار چهار کلمه کلیدی وجود دارد .
استفاده از این کلمات مربوط به حوزه دید آرایه می شود همانگونه که در مورد متغیرها و حوزه دید آنها از این کلمات استفاده می شود کاربرد آنها در اینجا هم دقیقا همانند متغیرها می باشد .
بخش دوم هم که مربوط به نام آرایه می باشد که کاملا انتخابی است اما باید یکسری قواعد را رعایت کنیم .
بعنوان مثال به هیچ عنوان نمی توانیم از کلمات کلیدی در نام گذاری آرایه ها استفاده کنیم .
بخش سوم مربوط به تعیین اندازه آرایه ها می باشد .
در این قسمت مشخص می کنیم که ساختار آرایه ما از چند متغیر تشکیل شده است .
این بخش می تواند حالات های متفاوتی را بخود بگیرد که در ادامه همین بحث به آنها خواهیم پرداخت .
بخش آخر هم که تعیین کننده نوع داده مورد نظر ما می باشد .
من باب شروع بحث در خصوص حالت های مختلف آرایه ها کار را با یک مثال ساده شروع می کنیم .
می خواهیم اسامی مربوط به ۱۰ دانش آموز را دریافت و ثبت کنیم .
برای این کار می توانیم یک آرایه را به صورت زیر تعریف کنیم .
این آرایه به نام st_name نام گذاری شده است .
نوع این آرایه هم از نوع string یا همان متنی در نظر گرفته شده است .
تا به اینجای کار همه چیز ساده است .
اما مهمترین بخش کار مربوط به عددی است که در داخل پرانتز و در جلوی نام آرایه خود درج کرده ایم .
این عدد نشانه چیست .
این عدد نشانه تعداد متغیر هایی است که تحت عنوان یک آرایه نام گذاری و تعریف کرده ایم .
ما با استفاده از این عدد به برنامه می گوییم که ما یک آرایه به نام st_name تعریف کرده ایم که دارای ۱۰ عضو می باشد .
اما چرا ۱۰ عضو ما که در اینجا عدد ۹ را درج کرده ایم پس قاعدتا این ارایه باید شامل ۹ عضو باشد نه ۱۰ عضو .
خوب این بدلیل پیشفرض هایی است که در زبان VBA وجود دارد .
چرا که VBA کار شماره گذاری یا بهتر است بگوییم ایندکس گذاری اعضای یک آرایه را از صفر شروع می کند .
بنابراین با احتساب این امر در اینجا و هر جایی دیگر وقتی که ما عددی را برای اندازه آرایه خود تعیین می کنیم باید آن را یکی بیشتر از آنچه که درج کرده ایم در نظر بگیریم .
البته یک راه حل برای اینکه پیشفرض برنامه را در شماره گذاری اعضا تغییر دهیم وجود دارد .
برای این کار کافی است در بالای قسمتی که می خواهیم آرایه خود را تعریف کنیم عبارت زیر را درج کنیم .
option Base 1
در اینجا با استفاده از همین کد کوتاه به برنامه می گوییم که به جای ایندکس گذاری اعضا از صفر کار شمارش و ایندکس گذاری را از عدد یک شروع کند .
یک روش دیگر هم وجود دارد که بدون اینکه نیاز باشد ما مقدار پیش فرض را تغییر دهیم می توانیم از آن استفاده کنیم .
در این روش می توانیم حد پایین و حد بالای اعضای آرایه خود را به برنامه بدهیم .
به کد زیر نگاه کنید .
Dim st_name (1 to 10 ) as string
ما در این کد به برنامه گفته ایم آرایه ای داریم که شماره خانه اول آن از عدد ۱ شروع و به ترتیب بقیه اعضا تا شماره ۱۰ شماره گذاری می شوند .
بنابراین در اینجا هم یک آرایه ۱۰ عضوی داریم .
حالا که آرایه خود را ایجاد کردیم ببینیم که چگونه می توانیم از آن استفاده بکنیم و در واقع چگونه می توانیم اطلاعات مد نظر خود را در آن ذخیره کنیم .
معرفی انواع آرایه ها
ما در کل دو نوع ارایه داریم .
یا آرایه ها از نوع ثابت هستند یا از نوع پویا یا Dynamic .
آرایه های ثابت آرایه هایی هستند که اندازه آنها از همان اولی که تعریف می شوند ثابت هستند و هیچ تغییری در انها ایجاد نمی شود .
ما وقتی از این نوع آرایه استفاده می کنیم که می دانیم با چه تعداد داده روبرو هستیم و این تعداد قرار نیست زیاد شود .
آرایه های پویا نوعی از آرایه ها هستند که از ابتدا ما اندازه آنها را تعریف نمی کنیم .
این نوع از آرایه ها را می توانیم بنابر نیاز خود در طول برنامه بازتعریف کرده و اندازه آنها را برای برنامه تعیین کنیم .
اجازه بدهید در خصوص کاربرد این دو نوع از آرایه یک مثال بزنم .
فرض کنید می خواهیم تعداد روز های هفته را در قالب یک آرایه دخیره کنیم .
خوب می دانیم که روز های هفته شامل ۷ روز می باشد .
و قرار هم نیست که این روزها اضافه شوند و ما هفته ۸ روزه یا بیشتر داشته باشیم .
خوب برای اینجا ما با اطمینان می توانیم یک آرایه با تعداد ۷ متغیر تعریف کرده و هر کدام از خانه های این متغیر را با یک روز از روزهای هفته پر کنیم .
.
این مطلب به تدریج در دست تکمیل است ……..
برای مشاهده کلیپ ها و آموزش های تحت عنوان برنامه نویسی در یک دقیقه می توانید با کلیک بر روی لینک زیر به جمع ما در اینستاگرام بپیوندید .
.
مطالب زیر را حتما مطالعه کنید
ذخیره نمودارها با کدهای VBAبصورت تصویر+راهنمای گام به گام
لیست باکس ها در برنامه نویسی VBA ؛ تمام چیزی که باید بدانید .
۷ اشتباه در کدنویسی VBA که ممکن است شما هم مرتکب شوید ؟
توی این آموزش راجع به اشتباهاتی که ممکن است در برنامه نویسی VBA مرتکب آنها شوید صحبت می کنیم .
با این خطای Runtime Error 1004 در VBA چکار کنیم ؟
در این آموزش راجع به خطایی به اسم Run time error 1004 در برنامه نویسی وی بی ای با هم صحبت می کنیم .
دیدگاهتان را بنویسید