عملگرهای شرطی در VBA دستورالعمل ها و وظایف If vba excel توضیحات

اگر ... سپس ... بیانیه دیگری.

این درس بر روی مبحث اپراتورها تمرکز خواهد کرد. به طور خاص با عملگر If...Then...Else آشنا می شویم و همچنین با عملگرهای حسابی و عملگرهای مقایسه آشنا می شویم که بدون آن نمی توانیم از If...Then...Else استفاده کنیم. اپراتور تا حد امکان

ویژوال بیسیک تعداد کمی دارد تعداد زیادیاپراتورهای مختلف، برخی از آنها قادر به جوشاندن مغز حتی یک برنامه نویس با تجربه هستند. برای اینکه "جوش نزنید"، ما فقط ابتدایی ترین اپراتورها را در نظر می گیریم که 95٪ از برنامه ها روی آنها کار می کنند، اپراتورهای باقی مانده را در صورت نیاز مطالعه می کنیم، بنابراین شما مجبور نیستید کل کتاب درسی را حفظ کنید و بلافاصله به سراغ عملی بروید. تمرینات

چیدمان این درسمنظورم این است که شما دانش ریاضی دبستان را دارید.
چه نوع دانشی؟ اینها همون مثالهایی هستن که کم کردیم، جمع کردیم، ضرب کردیم،... یادتون میاد؟ عالیه این بدان معنی است که هنوز باروت در قمقمه ها وجود دارد.

قبل از شروع مطالعه عملگر If...Then...Else باید با عملگرهای حسابی و منطقی آشنا شوید که بدون آنها نمی توانیم عملگر If...Then...Else را از نظر عمقی اعمال کنیم. تمرین کنید. بسیار خوب، دستورات و انحرافات خسته کننده بس است، بنشینید، بیایید دست به کار شویم!

عملگرهای حسابی
با استفاده از این عملگرها می توانید؛ تقسیم، ضرب، جمع و غیره
اینجا همه چیز به سادگی مدرسه ابتدایی است.

+ (اضافه)
- (تفریق)
* (ضرب)
/ (تقسیم با باقیمانده) در مدرسه علامت تقسیم این علامت بود : این تفاوت ها را به خاطر بسپارید و گیج نشوید
\ (تقسیم عدد صحیح، بدون باقیمانده)

اپراتورهای مقایسه
اینها اپراتورهای بسیار مهمی هستند. از این عملگرها می توان برای مقایسه اعداد، رشته ها و سایر داده ها استفاده کرد. بدون عملگرهای مقایسه، ساخت منطق یا انشعاب در یک برنامه غیرممکن است.
مهم است که به یاد داشته باشید که عملگرهای مقایسه دو عبارت را با هم مقایسه می کنند و یک مقدار بولی را به شکل True (اگر شرط درست باشد) و False (اگر شرط درست نباشد) برمی گردانند.
ترجمه واقعی از انگلیسی به معنای - حقیقت است
ترجمه نادرست از انگلیسی به معنای - دروغ است
از همان ابتدا، این ممکن است نامفهوم به نظر برسد، اما نگران نباشید، کمی بعد متوجه خواهید شد که این همه لعنتی به چه معناست.

= (برابر)
مقدار عبارت اول برابر با مقدار عبارت دوم است و یا می تواند حاصل جمع / تفریق / ... دو محاسبه باشد.

<> (نابرابری)
مقدار عبارت اول با مقدار عبارت دوم برابر نیست

< (کمتر)
مقدار عبارت اول کمتر از مقدار عبارت دوم است

> (بیشتر)
مقدار عبارت اول از مقدار دوم بیشتر است

<= (کمتر یا مساوی)
مقدار عبارت اول کمتر یا برابر با مقدار دوم است

>=
(بزرگتر یا مساوی)
مقدار عبارت اول بزرگتر یا برابر با مقدار دوم است

می بینم، می بینم که شما در حال حاضر کمی ترسیده اید، در واقع هیچ چیز ترسناکی وجود ندارد!
ادامه دهید و خواهید دید که همه چیز بسیار ساده است.
در زیر ما به طور کامل همه چیز را با مثال و تمرین پشتیبانی خواهیم کرد.
و بنابراین، ما عملگرهای حسابی و منطقی را در نظر گرفته ایم، اکنون می توانیم مستقیماً به خود عملگر If...Then...Else برویم.

اگر ... سپس ... بیانیه دیگری
ابتدا، بیایید ببینیم کلمات اپراتور هنگام ترجمه از انگلیسی به روسی به چه معنا هستند.
If به If ترجمه شده است
سپس به آن ترجمه می شود
Else به غیر این صورت ترجمه شده است

عبارت If...Then...Else برای چیست؟
با استفاده از این اپراتوربدون این اپراتور می توانید برنامه ها را منشعب کنید، نوشتن یک برنامه جدی غیرممکن است.
بیایید به نمونه های معمولی برویم.

چگونه یک کامپیوتر عبارت If... را پردازش می کند؟
فرض کنید دو متغیر داریم:

Dim var1 = 10 Dim var2 = 5

و فرض کنید یک شرط داریم:

اگر var1 > var2 سپس MsgBox ("بله، var1 بزرگتر از var2 است") پایان اگر

شرایط نشان داده شده در بالا چگونه کار می کند؟
رایانه به متغیرهای var1 و var2 نگاه می‌کند، اگر var1 واقعاً بزرگ‌تر از var2 باشد، شرط درست است (True) و رایانه MsgBox را نشان می‌دهد.
اگر شرط درست نباشد (False)، کامپیوتر MsgBox را نشان نمی دهد.
شما می توانید این را با تغییر مقادیر متغیرها به اعداد دیگر تأیید کنید تا شرط درست نباشد، سپس ما MsgBox را نخواهیم دید.

توجه!

برای مطالعه نمونه هایی که نیاز دارید.
پس از ایجاد پروژه در فرم، باید با دکمه سمت چپ ماوس روی دکمه دوبار کلیک کنید، ویرایشگر کد باز می شود و مکان نما در جایی قرار می گیرد که باید کد را از مثال های زیر وارد کنید. .
پس از درج کد، باید با کلیک بر روی دکمه واقع در فرم، نتیجه را مشاهده کنید.


نمونه ها
در مرحله بعد، به ترتیبی که در زیر ذکر شده است، نمونه هایی ارائه می شود.

عملگرهای حسابی
+ (اضافه)
- (تفریق)
* (ضرب)
/ (تقسیم)

اسپویلر: مثال های حسابی - کلیک کنید

+ اضافه:

"مثال نشان می دهد که چگونه می توانید دو عدد Dim chislo1 به عنوان Integer = 5 Dim chislo2 As Integer = 5 Dim resultat به عنوان Integer resultat = chislo1 + chislo2 MsgBox(نتیجه)

- تفریق:

"مثال نشان می دهد که چگونه می توانید تفاوت دو عدد را بدست آورید (تفریق) Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 - chislo2 MsgBox(resultat)

* ضرب:

"مثال نشان می دهد که چگونه می توانید یک عدد را در عدد دیگری ضرب کنید Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 * chislo2 MsgBox(resultat)

/ بخش:

"مثال نشان می دهد که چگونه می توانید یک عدد را به عدد دیگری تقسیم کنید Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 / chislo2 MsgBox(resultat)

اپراتورهای مقایسه
= (برابر)
<> (نابرابری)
< (کمتر)
> (بیشتر)
<= (کمتر یا مساوی)
>= (بزرگتر یا مساوی)

اسپویلر: مقایسه اپراتورها - کلیک کنید

= برابر با:

"مثال نشان می دهد که چگونه می توانید بفهمید که آیا متن یک متغیر برابر با متن دیگری است که ما مشخص کرده ایم Dim stroka As String = "Hello NubClub!" "اگر stroka برابر است با متن در نقل قول های دوگانهمعنی نشان دادن MsgBox If string = "Hello NubClub!" سپس MsgBox ("متغیر برابر با متنی است که به دنبالش هستیم!") End If

<>نابرابری:

"مثال نشان می دهد که چگونه می توانید بفهمید که آیا متن موجود در یک متغیر برابر با متن دیگری است که ما مشخص کرده ایم Dim stroka As String = "Hello NubClub!" "اگر رشته با متن در دو گیومه برابر نیست، MsgBox If را به من نشان دهید. رشته<>"من یک برنامه نویس مبتدی هستم" سپس MsgBox("متن موجود در متغیر stroka با متن داخل گیومه برابر نیست!") پایان اگر

< Меньше:

"مثال نشان می دهد که چگونه می توانید دو عدد را مقایسه کنید Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "اگر chislo2 کوچکتر از chislo1 است، MsgBox If chislo2 را به من نشان دهید< chislo1 Then MsgBox("Значение переменной chislo2 меньше значения переменной chislo1") End If

> بیشتر:

"مثال نشان می دهد که چگونه می توانید دو عدد را مقایسه کنید Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "اگر chislo1 بزرگتر از chislo2 است، MsgBox را به من نشان دهید If chislo1 > chislo2 سپس MsgBox("مقدار متغیر chislo1 بزرگتر است. مقدار متغیر chislo2") End If

<= Меньше или равно:

"مثال نشان می دهد که چگونه می توانید دو عدد را مقایسه کنید Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "اگر chislo2 کمتر یا مساوی با chislo1 است، MsgBox If chislo2 را به من نشان دهید<= chislo1 Then MsgBox("Значение переменной chislo2 меньше или равно значению переменной chislo1") End If

>= بزرگتر یا مساوی با:

"مثال نشان می دهد که چگونه می توانید دو عدد را مقایسه کنید Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "اگر chislo1 بزرگتر یا مساوی chislo2 باشد، MsgBox را به من نشان دهید If chislo1 >= chislo2 سپس MsgBox("مقدار متغیر chislo1 بزرگتر یا مساوی با مقدار متغیر chislo2 است") پایان اگر

اگر ... سپس ... بیانیه دیگری - شعبه
موارد فوق کاملاً بود مثال های سادهبا استفاده از شرایط If...Then، i.e. بدون انشعاب و بدون استفاده از Else.
حالا بیایید به نمونه هایی با انشعاب نگاه کنیم، آنها کمی پیچیده تر هستند، اما بدون آنها نمی توانید انجام دهید.
در هسته آن، با استفاده از Else، تمام مثال ها مانند بالا باقی می مانند، فقط یک شاخه کوچک از برنامه اضافه می شود.
چه چیزی اضافه خواهد شد؟
اگر قبلاً MsgBox فقط زمانی ظاهر می شد که شرط درست بود، با استفاده از Else می توانید MsgBox را حتی زمانی که شرط درست نیست تماس بگیرید.

و بنابراین، یک مثال.

"مثال نشان می دهد که چگونه می توانید بفهمید که آیا متن موجود در یک متغیر برابر با متن دیگری است که ما مشخص کرده ایم Dim stroka As String = "Hello NubClub!" "اگر رشته برابر با متن در گیومه های دوگانه است، MsgBox را به من نشان دهید. the text - متغیر برابر با متن مورد نظر ما است! "اگر strka برابر متن در دو گیومه نیست، MsgBox را با متن به من نشان دهید - متغیر با متنی که به دنبال آن هستیم برابر نیست! اگر strka = "Hello NubClub!" سپس MsgBox("متغیر برابر است" به متنی که به دنبالش هستیم!") Else MsgBox("متغیر با متنی که به دنبالش هستیم برابر نیست!") پایان اگر

مواقعی وجود دارد که یک متغیر و چندین مقدار با متن داریم که باید بررسی شوند. آن وقت چه باید کرد؟ شلوارت را در بیاور و فرار کن؟!
نه، این روش ما نیست
راه حل ظریف تری وجود دارد. ما می توانیم با استفاده از ElseIf شرایط خود را پیچیده کنیم و بنابراین هر تعداد ردیف را که دوست داریم بررسی کنیم، البته در محدوده معقول. اگر خطوط زیادی وجود داشته باشد، حلقه ها به کمک می آیند که در درس های بعدی با آنها کار خواهیم کرد.

بیایید به یک مثال نگاه کنیم.
بیایید تصور کنیم که باید برای یک چراغ راهنمایی خیابانی منطق ایجاد کنیم تا کار کند و رنگ ها را نشان دهد.
چگونه این کار را انجام دهیم؟
در واقع دشوار نیست، در اینجا یک مثال است.

استفاده از عملگر شرطی بخش جدایی ناپذیر تقریباً هر زبان برنامه نویسی است. و در واقع، همه چیز از ریاضیات می آید، زیرا در ابتدا زبان های برنامه نویسی به عنوان ابزاری برای حل مسائل مختلف شکل گرفتند. فوراً می گویم که مقاله خسته کننده و غیر جالب است از نظر فیزیکی غیرممکن است که چیز جدیدی را از برنامه نویسی حذف کنید ، به ویژه از توضیحات اپراتورها ، اما من به چیزی خواهم رسید. و بنابراین، در زبان VBA، از دستور if برای بررسی شرایط استفاده می شود که می تواند در چندین تغییر وجود داشته باشد. اما ابتدا کمی طنز ...

خرگوشی در جنگل می دود و خرسی را در حال خواندن کتاب می بینیم. خرگوش می پرسد: «کلاب فوت، چه می خوانی؟» او با نگاه هوشمندانه ای پاسخ می دهد: منطق. کوسوی در حالی که متعجب به نظر می رسد می پرسد: "منطق چیست؟" خرس می گوید: "خب، نگاه کن."

  • م: کبریت داری؟
  • ز: نه
  • م: پس سیگار نمی کشی
  • ز: بله!
  • M: اگر سیگار نمی‌کشید، پس پول اضافی خرج نمی‌کنید
  • ز: درسته!
  • م: پس دنبال دخترا میری؟
  • ز: البته!
  • م: و چون دنبال دخترا میری یعنی ناتوان نیستی!
  • ز: دوباره درست کن!

خرگوش از چنین کتاب هوشمندانه ای خوشحال شد و از پای پرانتزی خواست که آن را بخواند. او با رضایت در جنگل قدم می زند و شادی می کند، سپس گرگی به سمت او می آید. خرگوش تصمیم گرفت منطق را روی خاکستری امتحان کند و از او می پرسد:

  • ز: آیا کبریت دارید؟
  • ب: بله
  • ز: پس تو ناتوانی!

خوب، بله، جوک را همانطور که یادم آمد بازگو کردم

خوب حالا بیایید وارد تئوری شویم ...

گزینه 1. ساده ترین استفاده از دستور شرطی if VBA زمانی است که یک شرط بررسی می شود و اگر درست باشد، یک عبارت اجرا می شود:

اگر شرط سپس بیان

گزینه 2. زمانی ممکن است وضعیتی پیش بیاید که پس از بررسی یک شرط، باید چندین عبارت اجرا شود، در این صورت دستور if به شکل زیر در می‌آید:

اگر شرط پس

بیان 1

بیان 2

بیان N

همانطور که می بینید، در این مورد از بلوک بسته شدن if ... end if استفاده می شود، در مواردی که عبارات تودرتو هستند نیز مرتبط است.

گزینه 3: برای جلوگیری از ایجاد تو در تو عبارات مشروط، از ساختار زیر استفاده می شود:

اگر شرط پس

بیان 1

بیان 2

همه چیز در اینجا بسیار ساده است: اگر شرط درست باشد، اولین عبارت اجرا می شود، اگر نه، دومی اجرا می شود. شایان ذکر است که پس از بررسی شرط ممکن است چندین عبارت مانند گزینه بالا دنبال شود.

گزینه 4: بررسی شرایط متعدد:

اگر شرط 1 پس

عبارات 1

شرط ElseIf 2 سپس

عبارات 2

شرط ElseIf 3 سپس

عبارات 3

منطق عملیات به این صورت است: ابتدا شرط اول بررسی می شود، اگر درست باشد، اولین عبارات اجرا می شوند و سپس انتقال به عملگر انجام می شود که به دنبال End If می آید. اگر شرط اول برآورده نشد، دومی بررسی شد، و به همین ترتیب، استفاده از عبارت Else در پایان اختیاری است، می‌توان آن را با یک عبارت دنبال کرد که اگر هیچ یک از شرایط قبلی برآورده نشد، باید اجرا شود.

خوب، حالا بیایید یک مثال ساده از استفاده از VBA if then construct بنویسیم. یک فرم در ویرایشگر Visual Basic for Applications ایجاد کنید و سه برچسب متنی () و یک دکمه () را به سطح آن اضافه کنید. در ویرایشگر کد می نویسیم:

Sub Private GetSub() Dim MySumm به عنوان عدد صحیح Dim MyVar به عنوان Byte MyVar = 0 Do while MySumm<= 10000 MySumm = MySumm + 1 If MySumm = 10 Then Label1.Caption = "مقدار به 10 رسیده است" ElseIf MySumm = 100 سپس Label2.Caption = "مقدار به 100 رسیده است" ElseIf MySumm = 1000 سپس Label3.Caption = "مقدار به 1000 رسیده است" Else Label4.Caption = "ارزش رسیده"& MySumm End If Loop End Sub Private Sub CommandButton1_Click() فراخوانی GetSub End Sub Private Sub Private UserForm_Initialize() Label1.Caption = "" Label1.FontSize = 13 Label1.ForeColor = vbRed Label2.Caption 2 = "ont" ForeColor = vbGreen Label3.Caption = "" Label3.FontSize = 13 Label3.ForeColor = vbBlue Label4.Caption = "" Label4.FontSize = 13 CommandButton1.Caption = "اجرا" پایان فرعی

در روال GetSub از یک حلقه استفاده می شود، شرط اجرای حلقه این است که مقدار متغیر MySumm باید کمتر یا دقیقاً 10000 باشد. بدنه حلقه خود از VBA if then با چندین گزینه استفاده می کند. شرایط بررسی می شود: اگر مقدار به مقدار 10 رسید، یک اطلاعات را در قسمت متن اول بنویسید، اگر 100 - اطلاعات دیگر، اگر 1000 - اطلاعات سوم، در غیر این صورت - داده ها را در ویژگی Caption متن چهارم بنویسید. زمینه

تا کنون، رویه‌ها و توابعی را بررسی کرده‌ایم که VBA به ترتیب خطی اجرا می‌کند - VBA اجرای کد را در اولین دستور بعد از خط اعلان رویه (تابع) شروع می‌کند و اجرای هر دستور را خط به خط تا پایان Sub (عملکرد پایان) ادامه می‌دهد. ) بیانیه رسیده است. چنین الگوریتم خطی را می توان با بلوک دیاگرام زیر نشان داد:

با این حال، مواجه شدن با موقعیت هایی که در آن به رویه ها یا عملکردهایی برای انجام اقدامات مختلف در شرایط مختلف نیاز دارید، بسیار رایج است. بلوک دیاگرام های زیر این وضعیت را نشان می دهد:



عملگرهایی که نقش انشعاب یک برنامه را بر اساس شرایطی انجام می دهند نامیده می شوند عملگرهای پرش شرطی.

ساده ترین عملگرهای پرش شرطی عملگرها هستند اگر..پس؛ اگر..پس..دیگر. عبارت اول به شما امکان می دهد یک شاخه رویه واحد (فلوچارت چپ) را انتخاب کنید، در حالی که دومی به شما امکان می دهد از بین دو شاخه کد رویه جایگزین (فلوچارت سمت راست) بر اساس ارزیابی درست یا نادرست بودن شرط انتخاب کنید.


نحو اگر.. سپس

گزینه 1:
اگر وضعیتسپس بیانیه ها

گزینه 2:
اگر وضعیتسپس
بیانیه ها
پایان اگر


وضعیت- بیان منطقی؛

بیانیه ها


گزینه اول مستلزم نوشتن عبارت در یک خط است، در حالی که در قسمت Statements می توانید چندین عبارت را مشخص کنید و آنها را با دو نقطه از هم جدا کنید.

منطق عملیاتی به شرح زیر است: VBA ابتدا عبارت منطقی ارائه شده در بخش Condition را ارزیابی می کند. اگر این عبارت منطقی True باشد، دستور(های) بخش Statements اجرا می شود. سپس VBA به اجرای کد زیر خط If..Then (گزینه 1) یا End If (گزینه 2) ادامه می دهد. اگر عبارت منطقی False باشد، عبارات قسمت Statements حذف شده و کد زیر این قسمت اجرا می شود.


در زیر فهرستی از کاربرد ابتدایی املای اول If..Then آورده شده است:






و اکنون - گزینه دوم:



لطفاً توجه داشته باشید که عبارات در بخش بیانیه ها با استفاده از تورفتگی نوشته می شوند (تب استاپ استفاده می شود). این نکته مهمی است. شما باید بلافاصله خود را به قالب بندی کد برنامه خود به این روش عادت دهید - این خوانایی آن را افزایش می دهد و جستجوی خطاها را بسیار تسهیل می کند.


نحو If..Then..Else

گزینه 1:
اگر وضعیتسپس بیانیه هادیگر ElseStatements

گزینه 2:
اگر وضعیتسپس
بیانیه ها
دیگر
ElseStatements
پایان اگر


وضعیت- بیان منطقی؛

بیانیه ها، ElseStatements- یک، چندین یا هیچ عبارت VBA.


بر اساس قیاس با If..Then - گزینه اول نیاز به نوشتن یک دستور در یک خط دارد، در حالی که در بخش Statements و ElseStatements می توانید چندین عبارت را مشخص کنید و آنها را با دو نقطه از هم جدا کنید.

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

منطق عملیاتی به شرح زیر است: VBA ابتدا عبارت منطقی ارائه شده در بخش Condition را ارزیابی می کند. اگر این عبارت منطقی True باشد، دستور(های) بخش Statements اجرا می شود. سپس VBA به اجرای کد زیر خط If..Then (گزینه 1) یا End If (گزینه 2) ادامه می دهد. اگر عبارت منطقی False باشد، عبارات قسمت ElseStatements اجرا می شوند.

اپراتورهای پایه VBA

نظرات (0)

3.1. قوانین مربوط به اپراتورهای ضبط

هنگام ضبط اپراتورها، باید قوانین زیر را رعایت کنید:

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

برای نوشتن چند عبارت در یک خط، آنها را با یک دو نقطه (:) از هم جدا می کنند.

اگر عبارت در یک خط قرار نمی گیرد، باید یک فاصله و یک خط زیر (_) در انتهای خط قرار دهید و سپس قسمتی را که در خط بعدی قرار نمی گیرد ادامه دهید.

3.2. اپراتور واگذاری

عملگر انتساب زمانی استفاده می شود که به یک متغیر نیاز است مقدار جدیدی نسبت داده شود. دارای نحو زیر است:

VARIABLE_NAME= بیان

ابتدا عبارت سمت راست ارزیابی می شود و سپس نتیجه به متغیر سمت چپ اختصاص می یابد.

به عنوان مثال. با استفاده از عملگر انتساب عبارت ریاضی زیر را بنویسید:

در VBA این عبارت را می توان به صورت عملگر زیر نوشت:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. اپراتورهای I/O

3 .3.1. عملگر و تابع MsgBox

اپراتور MsgBoxاطلاعات را در یک کادر محاوره ای نمایش می دهد و حالتی را تنظیم می کند که منتظر بماند تا کاربر دکمه ای را فشار دهد.

دارای نحو زیر است:

MsgBox پیام[,دکمه ها][, سرصفحه]

استدلال ها:

پیام - یک آرگومان مورد نیاز که پیام اطلاعاتی را برای نمایش در پنجره مشخص می کند. می تواند شامل چندین خط متن باشد که با یک علامت به هم وصل شده اند & . استفاده در این استدلال Chr(13)هنگام خروجی اطلاعات به خط جدیدی منتهی می شود.

دکمه ها - مقدار این آرگومان دسته بندی دکمه هایی که در پنجره ظاهر می شوند را تعیین می کند. مقدار آرگومان دکمه همچنین تعیین می کند که آیا نمادی در پنجره ظاهر می شود یا خیر. اگر مشخص نکنید که کدام دکمه ها در کادر پیام نمایش داده شوند، از مقدار پیش فرض مربوط به دکمه OK استفاده می شود. در جدول 3.1 ترکیب های ممکن از دکمه ها و نمادها را در پنجره پیام نشان می دهد.

سرفصل - عنوان پنجره را تنظیم می کند.

تابع MsgBoxیک مقدار Integer برمی گرداند که نشان می دهد کدام دکمه در کادر محاوره ای کلیک شده است.

جدول 3.1. مقادیر متغیر دکمه معتبر

نمایش

استدلال

دکمه OK

دکمه های OK و Cancel

دکمه های بله و خیر

دکمه های بله، خیر و لغو

دکمه های توقف، تکرار و نادیده گرفتن

VbAbortRetryIgnore

دکمه های تلاش مجدد و لغو.

علامت اطلاعات

علامت سوال

علامت تعجب

به عنوان مثال. نمایش یک پیام در مورد تاریخ فعلی.

MsgBox "امروز در تقویم" و تاریخ، "توجه"

در نتیجه پنجره زیر نمایش داده می شود (شکل 3.1).

پس از کلیک بر روی OK، کادر پیام بسته می شود و اجرای برنامه بلافاصله پس از فراخوانی MsgBox از دستور از سر گرفته می شود.

3.3.2. تابع جعبه ورودی

تابع جعبه ورودیمقادیر متغیر را با استفاده از پنجره ورودی وارد می کند و دستور زیر را دارد:

متغیر_نام = جعبه ورودی(پیام[، عنوان] )

استدلال ها:

پیام - استدلال مورد نیاز یک پیام اطلاعاتی را در پنجره تنظیم می کند که معمولاً معنای مقدار وارد شده را توضیح می دهد.

سرفصل - عنوان پنجره را تنظیم می کند.

به عنوان مثال، مقدار متغیر N را از صفحه کلید وارد کنید و مقدار پیش فرض 10 را ارائه دهید.

برای این کار می توانید از عملگر زیر استفاده کنید:

N = InputBox ("N"، "ورودی ورودی"، 10)

در نتیجه پنجره زیر برای وارد کردن مقدار متغیر N نمایش داده می شود (شکل 3.2).

اگر مقدار پیش‌فرض مناسب کاربر باشد، پس از کلیک بر روی دکمه OK، پنجره ورودی بسته می‌شود، متغیر N روی 10 تنظیم می‌شود و اجرای برنامه با عبارت بلافاصله در پشت تماس از سر گرفته می‌شود. جعبه ورودی.

اگر مقدار پیش فرض برای کاربر مناسب نیست، قبل از کلیک بر روی دکمه OK، باید مقدار مورد نظر را برای متغیر N وارد کنید.

3 .4. عبارت IF شرطی

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

اگروضعیتسپسOPERATOR_1ElseOPERATOR_2

OPERATOR_1اجرا می شود اگر وضعیتدرست است، در غیر این صورت اجرا می شود OPERATOR_2. در این حالت عبارت If...Then...Else در یک خط نوشته می شود.

وضعیتیک عبارت بولی است. نتیجه یک عبارت همیشه Boolean است. یک عبارت می تواند ساده یا پیچیده باشد. هنگام نوشتن شرایط ساده، می توان از تمام عملیات رابطه ای ممکن فهرست شده در جدول استفاده کرد. 3.2.

جدول3 .2. روابط منطقی

عملیات

نام

بیان

نتیجه

درست است اگر A برابر B باشد

اگر A برابر با B نباشد درست است

درست است اگر A بزرگتر از B باشد

اگر A کمتر از B باشد درست است

بزرگتر یا مساوی با

اگر A بزرگتر یا مساوی B باشد درست است

کمتر یا مساوی با

اگر A کمتر یا مساوی B باشد درست است

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

جدول3 .3. عملیات منطقی

نام

بیان

نتیجه

بولی
نفی

منطقی و

منطقی OR

در یک دستور شرطی، استفاده از یک بلوک از دستورات به جای هر یک از دستورات مجاز است. در این مورد، عملگر شرطی به نظر می رسد:

اگروضعیتسپس

BLOCK_OPERATORS_1

BLOCK_OPERATORS_2

پایان If

یک دستور شرطی می تواند چندین شرط را آزمایش کند. در این مورد، عملگر شرطی به نظر می رسد:

اگرCONDITION_1سپس

BLOCK_OPERATORS_1

اگر دیگرCONDITION_2سپس

BLOCK_OPERATORS_2

دیگر

پایاناگر

مثال 1. بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.3.

مثال 2.بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.4.

3.5. اپراتور Case را انتخاب کنید

عملگر Select Case زمانی مفید است که شما نیاز به انجام اقدامات مختلف بسته به مقدار برخی عبارت‌ها که دارای مجموعه محدودی از مقادیر معتبر هستند، می‌باشد. همچنین به عبارات شرطی مربوط می شود، اما شکل متفاوتی دارد:

Case را انتخاب کنیدبیان تحت آزمون

موردVALUES_1

OPERATORS_1

موردارزش ها_ 2

اپراتورها_ 2

. . .

موردVALUES_N

اپراتورها

[ مورددیگر

در غیر این صورت_ اپراتورها]

پایان انتخاب کنید

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

تایپ کنید ارزش هاباید با نوع مطابقت داشته باشد TEST_EXPRESSION.

ابتدا محاسبه می شود بیان تحت آزمون. اگر مقدار آن با یکی از مقادیر مطابقت داشته باشد VALUES_I، سپس آنها برآورده می شوند OPERATORS_I پایان انتخاب کنید. اگر مقدار آن با هیچ یک از مقادیر مطابقت نداشته باشد VALUES_I، سپس آنها برآورده می شوند ELSE_OPERATORSو کنترل به اپراتور ایستاده پس از آن منتقل می شود پایان انتخاب کنید

به عنوان مثال.بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.5 که مقدار متغیر S را بسته به مقدار متغیر n تعیین می کند.

3.6. عبارات حلقه

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

برایCOUNTER=START_VALUEتیoCON_VALUEمرحلهSTEP

OPERATOR_BLOCK

OPERATOR_BLOCK

بعدیشمارنده

حلقه For…Next از میان مقادیر یک متغیر حلقه می زند شمارنده، که یک پارامتر حلقه است، از مقدار اولیه تا نهایی با مرحله تغییر مشخص شده. این تضمین می کند که بلوک دستورات بدنه حلقه با هر مقدار شمارنده جدید اجرا می شود. اگر مرحلهSTEPدر طراحی وجود ندارد، سپس به طور پیش فرض فرض می شود که گام برابر با 1 است. با توجه به اپراتور خروج برایمی توانید از دستور حلقه قبل خارج شوید شمارندهبه آخرین مقدار می رسد.*

برای تکرار از طریق اشیاء از گروهی از اشیاء مشابه، به عنوان مثال، سلول های یک محدوده یا عناصر آرایه، استفاده از عملگر حلقه راحت است. برای…هر... بعدی.

برای هر کدامعنصردرگروه

BLOCK_ اپراتورها

OPERATOR_BLOCK

بعدیعنصر

در VBA، سایر عملگرهای حلقه برای سازماندهی حلقه ها با تعداد تکرار نامشخص استفاده می شوند:

حلقه ها با پیش شرط - انجام دهیددر حالی کهحلقه,

انجام دهیدتا اینکهحلقه;

حلقه ها با شرط پست - انجام دهیدحلقهدر حالی که,

انجام دهیدحلقهتا اینکه.

در زیر نحو این دستورات حلقه آمده است:

"حلقه با پیش شرطانجام دهید در حالی که حلقه

در حالی که انجام دهیدوضعیت

OPERATOR_BLOCK

OPERATOR_BLOCK

"حلقه با پیش شرطانجام دهید تا اینکه حلقه

انجام دهیدتا اینکهوضعیت

OPERATOR_BLOCK

OPERATOR_BLOCK

"حلقه با شرط پستانجام دهید حلقه در حالی که

BLOCK_ اپراتورها

OPERATOR_BLOCK

حلقه در حالی کهوضعیت

"حلقه با شرط پستانجام دهید حلقه تا

BLOCK_ اپراتورها

OPERATOR_BLOCK

حلقه تاوضعیت

اپراتور انجام دهیددبلیوهیله ... حلقهتضمین می کند که یک بلوک از عبارات چندین بار تکرار می شود تا زمانی که وضعیتمشاهده می شود و اپراتور



اخبار دیگر

اپراتور مشروط

اپراتور مشروط VBA به شما امکان می دهد شرایط خاصی را بررسی کنید و بسته به نتایج بررسی، یک یا عمل دیگری را انجام دهید. بنابراین، عملگر شرطی وسیله ای برای انشعاب فرآیند محاسباتی است.

در VBA دو نوع دستور شرطی وجود دارد: خطی و بلوکی.

1. دستور شرطی خطی برای اجرای هر یک از دستورات در صورت درست بودن برخی از شرط ها استفاده می شود.

ساخت نحوی یک عملگر خطی دو شکل دارد: غیر جایگزین، جایگزین.

ساختار یک عملگر شرطی غیر جایگزین (نسخه کوتاه):

اگر<условие>سپس<оператор 1>

ساختار عبارت شرطی جایگزین (نسخه کامل):

اگر<условие>سپس<оператор 1>دیگر<оператор 2>

کجا

اگر، سپس، دیگری - کلمات رزرو شده (اگر، پس، در غیر این صورت)؛

<условие>- بیان دلخواه از نوع منطقی؛

<оператор 1>, <оператор 2>- هر عملگر زبان VBA.

شغل ابتدا عبارت شرطی ارزیابی می شود<условие>. اگر نتیجه ای داشته باشددرست است (درست)، سپس درست است<оператор 1>، A<оператор 2>پرش کرد. اگر نتیجه ای داشته باشدنادرست (نادرست)، برعکس،<оператор 1>پرش شده و اجرا می شود<оператор 2>.

2. عملگر شرطی بلوک زمانی استفاده می شود که اگر شرط درست باشد، باید چندین دستور برنامه اجرا شود (یک بلوک از دستورات). عملگر بلوک دو شکل دارد: بدون مخالف و جایگزین.

ساختار اپراتور بلوک غیرقابل رقابت (نسخه کوتاه)

اگر<условие>سپس

<оператор1>

<оператор2>

…………….

<оператор n >

پایان اگر

کجا

پایان اگر - پایان یک بلوک عبارت را نشان می دهداگر

ساختار بیانیه بلوک جایگزین:

اگر<условие>سپس

<оператор1>

<оператор2>

…………….

<оператор n >

دیگر

<оператор1>

<оператор2>

…………….

<оператор n >

پایان اگر

مثال 1.

بیان مشکل. یک رویه سفارشی برای محاسبه معادله فرم در یک ماژول استاندارد ایجاد کنیدتبر 2 + bx + c = 0.

1. داده های اولیه:

a , b , c  R

نتیجه: x1, x2  R .

2. رویه سفارشی زیر را در ماژول پروژه استاندارد تایپ کنید:

Private Sub yravnenie ()

a = InputBox("a=", a)

b = InputBox("b=", b)

c = InputBox("c=", c)

d = b^2 - 4 * a * c

اگر d >= 0 سپس

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

MsgBox (x1)

MsgBox (x2)

دیگر

MsgBox ("بدون راه حل")

پایان اگر

پایان فرعی

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

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

فرمت بیانیه تو در تواگر:

اگر<условие1>سپس

اگر<условие2>سپس

<оператор1>

<оператор2>

…………….

<оператор n >

دیگر

<оператор1>

<оператор2>

…………….

< оператор n>

پایان اگر

پایان اگر

مثال 2.

بیان مشکل. یک تابع سفارشی در یک ماژول استاندارد برای یافتن حداکثر بین سه عدد داده شده ایجاد کنید y 1 = a +2* b ; y 2 = a * b + c ; y 3 = c 2 + 1.

تکنولوژی اجرای وظایف:

1. داده های اولیه:

a , b , c  R

نتیجه: حداکثر  R.

2. تابع سفارشی زیر را در ماژول استاندارد پروژه تایپ کنید:

تابع y (a,b,c)

y1 = a+2*b

y2 = a*b+c

y3 = c^2+1

اگر y1 > y2 سپس

اگر y1 > y3 پس y = y1 در غیر این صورت y = y3

دیگر

اگر y2 > y3 پس y = y2 در غیر این صورت y = y3

پایان اگر

تابع پایان

3. محاسبه ریشه های یک معادله درجه دوم با داده های اولیه دلخواه.

هنگام استفاده از دستورات تو در تواگر مهم است که گزینه های ترکیب شرایط را اشتباه نگیرید. قانونی که باید به خاطر بسپارید این است: جایگزیندیگر متعلق به نزدیکترین اپراتور در نظر گرفته می شوداگر ، که شعبه ندارددیگر

در VBA طراحی شده برای عملیات چند اپراتوراگر . این عملگرها در مواردی استفاده می شوند که علاوه بر شرایط اصلی نیاز به در نظر گرفتن شرایط بیشتری باشد. برای این کار از طرح زیر استفاده می شود:اگر ... سپس ... ElseIf . بر خلاف عبارات تودرتو، ساخت چند عبارتاگر به شما امکان می دهد در صورت ارزیابی شرایط اصلی، یک شرط اضافی را بررسی کنیدنادرست

فرمت ضبط:

اگر<условие1>سپس

<оператор1>

اگر دیگر<условие2>سپس

<оператор2>

دیگر

<.оператор3>

پایان اگر

مثال 3.

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

قوانین محاسبه کمیسیون

حجم فروش هفتگی، مالش.

کمیسیون، %

0 تا 9999

از 10000 تا 19999

از 20000 تا 39999

بیش از 40000

تکنولوژی اجرای وظایف:

1. داده های اولیه:

فروش  Z .

نتیجه: کمیسیون ها R.

2. یک تابع سفارشی برای محاسبه کمیسیون در ماژول استاندارد ایجاد کنید:

کمیسیون عملکرد (فروش)

اگر فروش<= 9999 Then

کمیسیون = فروش * 0.08

فروش ElseIf<= 19999 Then

کمیسیون = فروش * 0.1

فروش ElseIf<= 39999 Then

کمیسیون = فروش * 0.12

دیگر

کمیسیون = فروش * 0.14

پایان اگر

تابع پایان

3. محاسبه کنید.