سکوی برنامه نویسی VBA که تقریباً در تمام محصولات Microsoft Office اجرا می شود یکی از قدرتمندترین ابزاری است که هرکسی می تواند برای افزایش استفاده از آن محصولات از آن استفاده کند.
این راهنمای VBA برای مبتدیان به شما نشان می دهند که چگونه می توانید منوی Developer را به برنامه Office خود ، نحوه ورود به پنجره ویرایشگر VBA و نحوه عملکرد اصطلاحات و حلقه های اولیه VBA نشان دهید تا بتوانید با استفاده از VBA در Excel ، Word ، Powerpoint ، Outlook و OneNote کار کنید. .
این راهنمای VBA از آخرین نسخه محصولات Microsoft Office استفاده می کند. اگر نسخه قبلی را در اختیار دارید ، ممکن است تفاوت کمی از عکس های صفحه مشاهده کنید.
نحوه فعال و استفاده از ویرایشگر VBA
در هر یک از Office محصولات مورد استفاده در این راهنما ، ممکن است متوجه شوید که منوی برنامه نویس مرجع را ندارید. منوی توسعه دهنده فقط در Excel ، Word ، Outlook و Powerpoint موجود است. OneNote ابزاری برای ویرایش کد VBA از داخل برنامه ارائه نمی دهد ، اما شما هنوز هم می توانید API OneNote را برای ارتباط با OneNote از دیگر برنامه های Office ارجاع دهید.
شما می آموزید که چگونه این کار را در راهنمای پیشرفته VBA آینده ما انجام دهید.
لیست سمت چپ شامل تمام منوهای موجود و دستورات منو موجود در آن برنامه Office است. لیست در سمت راست لیست هایی است که در حال حاضر در دسترس یا فعال هستند.
In_content_1 همه: [300x250] / dfp: [640x360]->نکات کلی برنامه نویسی VBA برای مبتدیان
متوجه می شوید که ویرایشگر VBA باز می شود ، گزینه های پیمایش در پانل سمت چپ متفاوت از یک برنامه Office به دیگری است.
این بدان دلیل است که اشیاء موجود در جایی که می توانید کد VBA را در آن قرار دهید به این بستگی دارد که چه چیزهایی در برنامه وجود دارند. به عنوان مثال ، در اکسل می توانید کد VBA را به کارنامه یا اشیاء صفحه اضافه کنید. در Word می توانید کد VBA را به اسناد اضافه کنید. در Powerpoint ، فقط به ماژول ها.
بنابراین ، از منوهای مختلف تعجب نکنید. ساختار و نحو کد VBA در تمام برنامه ها یکسان است. تنها تفاوت در اشیایی است که می توانید به آنها مراجعه کنید و اقداماتی که می توانید در مورد آن اشیاء از طریق کد VBA انجام دهید. نگاهی به معمول ترین ساختار VBA و نحوی که می توانید هنگام نوشتن کد VBA از آنها استفاده کنید.
کجا می توان کد VBA را قرار داد
هنگام ورود ویرایشگر VBA ، شما باید از دو جعبه بازشو در بالای پنجره ویرایش استفاده کنید تا انتخاب کنید کدام شی را می خواهید کد را به آن وصل کنید ، و هنگامی که می خواهید کد اجرا شود.
به عنوان مثال ، در اکسل ، اگر کاربرگو فعال سازیرا انتخاب کنید ، هر زمان که کاربرگ صفحه باز شود ، کد اجرا می شود.
کاربرگ دیگر اقداماتی که می توانید برای ایجاد کد VBA خود اعمال کنید شامل برگه تغییر کاربری ، بسته بودن آن (غیرفعال شدن) ، محاسبه صفحه کار و موارد دیگر است.
وقتی کد VBA را در ویرایشگر اضافه می کنید ، همیشه مطمئناً کد VBA خود را روی شی قرار داده و با استفاده از عملی صحیح که می خواهید از آن استفاده کنید برای ایجاد کد آن استفاده کنید.
بیانیه های VBA اگر
IF این بیانیه در VBA درست مانند هر زبان برنامه نویسی دیگری کار می کند. این شرایط می تواند توسط یک یا یک اپراتور AND یا OR به آنها پیوند داده شود تا آنها را به هم پیوند دهد.
یکی از نمونه این است که بررسی کند که آیا یک نمره در صفحه گسترده بالاتر یا پایین تر از درجه "عبور" است و تعیین گذر یا وضعیت را در سلول دیگری قرار ندهید.
اگر سلول (2 ، 2)>75 سپس سلول (2 ، 3) = "عبور" سلول های دیگر (2 ، 3) = "عدم موفقیت">
اگر کل جمله را در یک خط نمی خواهید ، می توانید با اضافه کردن یک نماد "_" در انتهای خطوط آن را به چندین خط تقسیم کنید.
اگر سلول (2 ، 2)>75 سپس _
سلول (2 ، 3) = "گذر" بقیه دیگر
سلول (2 ، 3) = "عدم موفقیت"
با استفاده از این تکنیک اغلب می توانید کد را برای خواندن و اشکال زدایی آسان تر کنید.
VBA برای حلقه های بعدی
عبارات IF برای مقایسه واحدی بسیار مناسب است ، مانند مثال فوق در جستجوی یک سلول واحد. اما اگر بخواهید طیف وسیعی از سلولها را حلقه بزنید و همان عبارت IF را روی هر یک از آنها انجام دهید ، چه می کنید؟
در این حالت به یک حلقه FOR نیاز دارید.
برای انجام این کار ، شما باید از طول یک محدوده استفاده کنید و با طول ردیف هایی که حاوی داده ها هستند طول آن را حلقه کنید.
برای انجام این کار ، شما نیاز دارید برای تعریف متغیرهای دامنه و سلول و حلقه از طریق آنها. شما همچنین باید یک پیشخوان را تعریف کنید تا بتوانید نتایج را به سطر مناسب برسانید. بنابراین کد VBA شما ابتدا این خط را خواهد داشت.
ابعاد محدوده ، دامنه به عنوان محدوده
Dim rowCounter as Integer
اندازه دامنه را به شرح زیر تعریف کنید.
تنظیم rng = محدوده ("B2: B7")
rowCounter = 2
در آخر ، شما می توانید ایجاد کنید حلقه خود را برای پیمایش از هر سلول در آن محدوده و انجام مقایسه انجام دهید.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
پس از اجرای این اسکریپت VBA ، می بینید که در صفحه گسترده واقعی نتیجه می گیرد.
>VBA در حین حلقه
A در حالی که Loop نیز مانند یک حلقه FOR یک سری جمله ها را حلقه می زند ، اما شرط ادامه حلقه یک شرط باقی مانده است درست است.
برای مثال ، می توانید همان حلقه WHILE را با استفاده از متغیر rowCounter به شرح زیر همان حلقه بالا بنویسید.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
توجه: حد خاتمه rng.Count + 2لازم است زیرا پیشخوان ردیف از 2 شروع می شود و در پایان داده ها باید به ردیف 7 پایان یابد. با این حال ، تعداد دامنه (B2: B7) تنها 6 است ، و حلقه در حالی که تمام می شود تنها هنگامی که پیشخوان بزرگتر از پیشخوان است پایان می یابد - بنابراین آخرین مقدار rowCounter باید 8 (یا rng.Count + 2) باشد.
همچنین می توانید حلقه Second را به شرح زیر تنظیم کنید:
در حالی که rowCounter <= rng.Count + 1
شما می توانید فقط تعداد دامنه (6) را با 1 افزایش دهید ، زیرا هنگامی که متغیر rowCounter به انتهای داده ها رسید (ردیف 7) ، حلقه می تواند تمام شود.
VBA آیا در حالی که انجام دهید و تا حلقه ها کار کنید
حلقه ها را در حالی که باید انجام شود تا انجام دهید تا زمانی که حلقه ها تقریباً شبیه به حلقه ها هستند ، اما کمی متفاوت عمل کنید.
در این حالت بازنویسی t او اگرچه در بالا به صورت زیر حلقه است ، به عنوان یک حلقه Do-while.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
در این حالت منطق خیلی تغییر نمی کند ، اما اگر می خواهید مطمئن شوید منطق مقایسه بعد از اجرای همه بیانیه ها انجام می شود (به آنها اجازه می دهد حداقل یکبار اجرا شوند) ، یک حلقه Do-while یا Do-till گزینه مناسبی است.
VBA بیانیه های موردی را انتخاب کنید
نوع نهایی عبارات منطقی که برای شروع ساختن کد VBA خود باید درک کنید ، عبارت های Case Case هستند.
با توجه به مثال بالا ، بیایید بگوییم که شما می خواهید یک روش درجه بندی داشته باشید که فقط موفق نشود. درعوض ، می خواهید یک کلاس حرف A را از طریق A به F اختصاص دهید.
می توانید این کار را با عبارت انتخاب مورد زیر انجام دهید:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
صفحه گسترده حاصل بعد از اجرای این اسکریپت VBA ، مانند شکل زیر است.
اکنون برای شروع استفاده از VBA در برنامه های Microsoft Office خود ، همه چیزهایی را که باید بدانید می دانید.