آرایه VBA در اکسل چیست و چگونه برنامه نویسی کنیم
VBA سالهاست که بخشی از مجموعه Microsoft Office بوده است. در حالی که عملکرد و قدرت کامل یک برنامه VB کامل را ندارد، VBA به کاربران (VBA)آفیس(Office) انعطافپذیری برای ادغام محصولات آفیس(Office) و خودکارسازی کارهایی که در آنها انجام میدهید، ارائه میدهد.
یکی از قدرتمندترین ابزارهای موجود در VBA ، توانایی بارگذاری کل محدوده داده در یک متغیر واحد به نام آرایه است. با بارگذاری دادهها به این روش، میتوانید به روشهای مختلفی روی آن محدوده از دادهها دستکاری یا محاسبات انجام دهید.
بنابراین آرایه VBA چیست؟ (VBA)در این مقاله به این سوال پاسخ خواهیم داد و به شما نشان خواهیم داد که چگونه از یکی در اسکریپت VBA خود(your own VBA script) استفاده کنید .
آرایه VBA چیست؟
استفاده از یک آرایه VBA در (VBA)اکسل(Excel) بسیار ساده است، اما درک مفهوم آرایه ها می تواند کمی پیچیده باشد اگر هرگز از آن استفاده نکرده باشید.
آرایه(Think) ای را مانند یک جعبه با بخش هایی در داخل آن در نظر بگیرید. آرایه یک بعدی، جعبه ای با یک خط از بخش است. آرایه دو بعدی جعبه ای است با دو خط بخش.
می توانید داده ها را به هر ترتیبی که دوست دارید در هر بخش از این "جعبه" قرار دهید.
در ابتدای اسکریپت VBA ، باید این "جعبه" را با تعریف آرایه VBA خود تعریف کنید. (VBA)بنابراین برای ایجاد یک آرایه که بتواند یک مجموعه داده (آرایه یک بعدی) را در خود نگه دارد، خط زیر را بنویسید.
Dim arrMyArray(1 To 6) As String
بعداً در برنامه خود، می توانید داده ها را در هر بخش از این آرایه با ارجاع به بخش داخل پرانتز قرار دهید.
arrMyArray(1) = "Ryan Dube"
با استفاده از خط زیر می توانید یک آرایه دو بعدی ایجاد کنید.
Dim arrMyArray(1 To 6,1 to 2) As Integer
عدد اول نشان دهنده سطر و عدد دوم ستون است. بنابراین آرایه فوق می تواند محدوده ای با 6 سطر و 2 ستون را در خود جای دهد.
شما می توانید هر عنصر از این آرایه را با داده ها به صورت زیر بارگذاری کنید.
arrMyArray(1,2) = 3
این یک عدد 3 را در سلول B1 بارگذاری می کند.
یک آرایه می تواند هر نوع داده ای را به عنوان یک متغیر معمولی نگهداری کند، مانند رشته ها، بولی، اعداد صحیح، شناورها و غیره.
عدد داخل پرانتز نیز می تواند متغیر باشد. برنامه نویسان معمولاً از یک حلقه(Loop) For برای شمارش تمام بخش های یک آرایه و بارگذاری سلول های داده در صفحه گسترده در آرایه استفاده می کنند. در ادامه این مقاله خواهید دید که چگونه این کار را انجام دهید.
نحوه برنامه نویسی یک آرایه VBA در اکسل
بیایید نگاهی به یک برنامه ساده بیندازیم که در آن ممکن است بخواهید اطلاعات را از یک صفحه گسترده در یک آرایه چند بعدی بارگذاری کنید.
به عنوان مثال، بیایید به صفحهگسترده فروش محصول نگاه کنیم، جایی که میخواهید نام، کالا و کل فروش نماینده فروش را از صفحهگسترده خارج کنید.
توجه داشته باشید که در VBA هنگامی که به سطرها یا ستونها ارجاع میدهید، سطرها و ستونها(rows and columns) را از بالا سمت چپ از 1 میشمارید. بنابراین ستون rep 3، ستون آیتم 4 و ستون کل 7 است.
برای بارگذاری این سه ستون در تمام 11 ردیف، باید اسکریپت زیر را بنویسید.
Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i
متوجه خواهید شد که برای رد شدن از ردیف سرصفحه، شماره ردیف در For look اول باید به جای 1 از 2 شروع شود. این بدان معناست که هنگام بارگیری مقدار سلول باید 1 را برای مقدار ردیف آرایه کم کنید. به آرایه با استفاده از سلول های(Cells) (i، j).Value.
کجا اسکریپت آرایه VBA خود را وارد کنید(Your VBA Array Script)
برای قرار دادن برنامه یک اسکریپت VBA در (VBA)اکسل(Excel) ، باید از ویرایشگر VBA استفاده کنید. (VBA)با انتخاب منوی Developer و انتخاب (Developer)View Code در قسمت Controls روبان می توانید به این مورد دسترسی داشته باشید .
اگر برنامهنویس(Developer) را در منو نمیبینید ، باید آن را اضافه کنید. برای انجام این کار، File and Options را انتخاب کنید تا پنجره Excel Options باز شود.
دستورات انتخاب را از منوی کشویی به همه دستورات(All Commands) تغییر دهید . از منوی سمت چپ Developer را انتخاب کنید و دکمه Add را انتخاب کنید تا به صفحه سمت راست منتقل شود. چک باکس را برای فعال کردن آن انتخاب کنید و برای(OK) اتمام، تأیید را انتخاب کنید.
هنگامی که پنجره کد ویرایشگر(Code Editor) باز می شود، مطمئن شوید که برگه ای که داده های شما در آن است در قسمت سمت چپ انتخاب شده است. کاربرگ(Worksheet) را در منوی سمت چپ انتخاب کنید و در سمت راست Activate را انتخاب کنید . این یک زیربرنامه جدید به نام Worksheet_Activate () ایجاد می کند.
این تابع هر زمان که فایل صفحه گسترده باز شود اجرا می شود. کد را در قسمت اسکریپت داخل این زیر روال قرار دهید.
این اسکریپت در 12 ردیف کار می کند و نام تکرار را از ستون 3، مورد از ستون 4، و فروش کل را از ستون 7 بارگیری می کند.
هنگامی که هر دو حلقه For به پایان رسید، آرایه دو بعدی arrMyArray حاوی تمام داده هایی است که از برگه اصلی مشخص کرده اید.
دستکاری آرایه ها در Excel VBA
فرض کنید میخواهید 5 درصد مالیات بر فروش را برای همه قیمتهای فروش نهایی اعمال کنید و سپس همه دادهها را در یک برگه جدید بنویسید.
می توانید این کار را با اضافه کردن یک حلقه For دیگر بعد از حلقه اول، با دستور نوشتن نتایج در یک صفحه جدید انجام دهید.
For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k
این کار کل آرایه را در Sheet2 "تخلیه" می کند ، با یک ردیف اضافی حاوی کل در 5٪ برای مقدار مالیات ضرب می شود.
ورق به دست آمده به این شکل خواهد بود.
همانطور که می بینید، آرایه های VBA در (VBA)اکسل(Excel) بسیار مفید و به اندازه هر ترفند دیگر اکسل(any other Excel trick) همه کاره هستند .
مثال بالا یک کاربرد بسیار ساده برای یک آرایه است. میتوانید آرایههای بسیار بزرگتری ایجاد کنید و مرتبسازی، میانگینگیری یا بسیاری از عملکردهای دیگر را در مقابل دادههایی که در آنها ذخیره میکنید انجام دهید.
اگر میخواهید خلاقیت واقعی داشته باشید، حتی میتوانید دو آرایه حاوی طیف وسیعی از سلولها(containing a range of cells) از دو صفحه مختلف ایجاد کنید و محاسباتی را بین عناصر هر آرایه انجام دهید.
برنامه ها فقط با تخیل شما محدود می شوند.
Related posts
نحوه حذف خطوط خالی در اکسل
نحوه استفاده از ویژگی Speak Cells اکسل
نحوه درج کاربرگ اکسل در Word Doc
نحوه استفاده از تجزیه و تحلیل What-If اکسل
نحوه تعمیر یک ردیف در اکسل
اتصال اکسل به MySQL
مرتب سازی داده های تک ستونی و چند ستونی در صفحات گسترده اکسل
چگونه یک فرمول/گزاره IF در اکسل بنویسیم
هنگام کپی کردن فرمول در اکسل، منابع سلول را حفظ کنید
3 روش برای تقسیم سلول در اکسل
نحوه ادغام سلول ها، ستون ها و ردیف ها در اکسل
نحوه استفاده از مراجع مطلق در اکسل
نحوه جابجایی ستون ها در اکسل
2 روش برای استفاده از تابع Transpose اکسل
4 روش برای تبدیل Excel به Google Sheets
نحوه استفاده از تابع PMT در اکسل
نحوه ایجاد یک Pivot Table ساده در اکسل
نحوه استفاده از دستورات If و Nested If در اکسل
املای سریع اعداد در Word و Excel
نحوه استفاده از Flash Fill In Excel