بهترین راهنمای VBA (برای مبتدیان) شما همیشه نیاز خواهید داشت

سکوی برنامه نویسی 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 آینده ما انجام دهید.

  • برای فعال کردن منوی توسعه دهنده در هر محصول اداری ، پروندهmenu را انتخاب کنید و از گزینه های فهرست گشودگی گزینه هارا انتخاب کنید
  • پنجره بازشو از فهرست گزینه ها را مشاهده خواهید کرد. سفارشی کردن روبانرا از منوی پیمایش سمت چپ انتخاب کنید.
  • لیست سمت چپ شامل تمام منوهای موجود و دستورات منو موجود در آن برنامه Office است. لیست در سمت راست لیست هایی است که در حال حاضر در دسترس یا فعال هستند.

    In_content_1 همه: [300x250] / dfp: [640x360]->
    • باید در لیست سمت راست برنامه نویس را ببینید ، اما فعال نخواهد شد. برای فعال کردن منوی توسعه دهنده ، کافی است کادر انتخاب را انتخاب کنید.
    • >
      • اگر توسعه دهندهرا در سمت راست موجود نمی بینید ، از سمت راست انتخاب دستوراترا از سمت راست به سمت چپ تغییر دهید. همه دستورات. برنامه نویسرا از لیست پیدا کنید و را اضافه کنیدرا در مرکز قرار دهید تا آن فهرست را به نوار اضافه کنید.
      • خوبرا انتخاب کنید. >هنگامی که کار خود را تمام کردید.
      • پس از فعال شدن منوی برنامه نویسان ، می توانید به پنجره اصلی برنامه خود بروید و از فهرست بالای گزینه توسعه دهندهرا انتخاب کنید.
      • سپس نمایش کدرا از گروه Controls در نوار انتخاب کنید تا پنجره ویرایشگر VBA باز شود.
        • این پنجره ویرایشگر VBA را باز می کند که می توانید کدی را که می آموزید در چند بخش بعدی وارد کنید.
          • سعی کنید منوی Developer را به چند برنامه Office که هر روز از آنها استفاده می کنید اضافه کنید . بعد از اینکه راحت پنجره ویرایشگر VBA را باز کردید ، به بخش بعدی این راهنما ادامه دهید.
          • نکات کلی برنامه نویسی 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 rng
            If 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 + 2
            If 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.

              Do
              If 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 rng
              Select 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 خود ، همه چیزهایی را که باید بدانید می دانید.

              پست های مرتبط:


              29.01.2020