با عملگرها (Operators) در محیط اکسل در مقاله ی فرمول نویسی در اکسل آشنا شدیم، در اکسل، عملگرها به دو دسته ی عملگرهای مقایسه ای و عملگرهای عملیاتی تقسیم می شدند، عملگرها در ویژوال بیسیک علاوه بر عملگرهای مقایسه ای و عملیاتی، شامل عملگرهای منطقی نیز میباشند که مانند عملگرهای مقایسه ای نتیجه ی آنها یک متغیر Boolean (متغیری که مقدار آن True یا False است) میباشد. برخی عملگرها در ویژوال بیسیک و محیط اکسل یکسان هستند و تفاوتی با هم ندارند، در ادامه به تفصیل در این مورد صحبت خواهیم نمود.
دسته بندی عملگرها در ویژوال بیسیک
شکل زیر تمام عملگرها در ویژوال بیسیک (Operators in VBA) را نشان میدهد، همانطور که قبلاً اشاره شد عملگرها در ویژوال بیسیک به سه دسته ی مقایسه ای (Comparison)، عملیاتی (Arithmetic) و منطقی (Logical) تقسیم میشوند:
عملگرهای عملیاتی در ویژوال بیسیک
با عملگرا یا اپراتورهای عملیاتی آشنا هستیم، این عملگرها برای انجام اعمال ریاضی مورد استفاده قرار میگیرند، عملگر تقسیم صحیح یا Integer Division یا \ مانند تقسیم معمولی عمل مینماید با این تفاوت که تنها جز صحیح “خارج قسمت” تقسیم را نمایش میدهد و عملگر Mod برای بدست آوردن باقیمانده تقسیم یک عدد بر عدد دیگر استفاده میشود، مانند تابع Mod که در توابع ریاضی در اکسل با آن اشنا شدیم.
عملگر & برای در کنار هم قرار دادن دو متغیر رشته ای یا عددی مورد استفاده قرار میگیرد و معادل تابع CONCATENATION در توابع متنی در اکسل عمل میکند.
عملگر & (String Concatenation) عملاً یک عملگر عملیاتی محسوب نمیگردد ولی به این علت که در اولویت بندی عملگرها، اولویتی بالاتر ازتمام عملگرهای مقایسه ای و منطقی دارد در دسته بندی ها جز عملگرهای عملیاتی قرار میگیرد.
عملگرهای منطقی در ویژوال بیسیک
با عملگر ها یا اپراتورهای منطقی کم و بیش آشنا هستیم، خروجی این عملگرها متغیر Boolean است، دو عبارت در سمت چپ و راست یک عملگر منطقی از نظر ویژوال بیسیک یا True هستند و یا False، البته Null هم حالت سومی است که در بررسی عملگرهای منطقی با آن سر و کار داریم. Syntax کلی عملگرهای منطقی مشابه زیر است:
1 |
Result = Expression1 “Logical Operator” Expression2 |
با توجه به True، False و یا Null بودن هریک از Expression1 یا Expression2 و با توجه به نوع عملگر به کار رفته بین این دو، خروجی مورد نظر (مقدار Result که میتواند True، False و یا Null باشد) بدست میاید. عملگرهای منطق در ادامه مورد بررسی قرار گرفته اند.
اپراتور Not در ماکرو نویسی در اکسل
سینتکس این اپراتور به صورت زیر است:
1 |
Result = Not expression |
خروجی اپراتور Not در جدول زیر نشان داده شده است:
اپراتور AND در ماکرو نویسی در اکسل
سینتکس اپراتور AND به صورت زیر است:
1 |
Result = Expression1 And Expression2 |
خروجی اپراتور AND در جدول زیر نشان داده شده است:
اپراتور Or در ماکرو نویسی در اکسل
سینتکس اپراتور Or به صورت زیر است:
1 |
Result = Expression1 Or Expression2 |
خروجی اپراتور Or در جدول زیر نشان داده شده است:
اپراتور Xor در ماکرو نویسی در اکسل
سینتکس اپراتور Xor به صورت زیر است:
1 |
[Result =] Expression1 Xor Expression2 |
اگر تنها یک و فقط یکی از دو Expression درست (True) باشد، خروجی برابر True است. در صورتی که هریک از عبارات (Expressions) نول (Null) باشد، خروجی Null است. خروجی اپراتور Xor در جدول زیر نشان داده شده است:
اپراتور Eqv در ماکرو نویسی در اکسل
این اپراتور دقیقاً برعکس اپراتور Xor عمل میکند. سینتکس اپراتور Eqv یا Logical Equivalence به صورت زیر است:
1 |
Result = Expression1 Eqv Expression2 |
در صورتی که هریک از عبارات (Expressions) نول (Null) باشد، خروجی Null است، در غیر اینصورت خروجی اپراتور Eqv در جدول زیر نشان داده شده است:
به عبارتی، اگر هر دو Expression1 و Expression2 به صورت یکسان باشند (هر دو True باشند یا هر دو False باشند) خروجی این عملگر True است، در غیر اینصورت False است.
اپراتور Imp در ماکرو نویسی در اکسل
سینتکس اپراتور اپراتور Imp یا Logical Implication به صورت زیر است:
1 |
Result = Expression1 Imp Expression2 |
خروجی اپراتور Imp در جدول زیر نشان داده شده است:
عملگرهای مقایسه ای در ویژوال بیسیک
با عملگرهای مقایسه ای آشنا هستیم، عملگرهای > ، < ، <>، = ، => و =< کاربرد مشخصی دارند و همواره در کد نویسی ها مورد استفاده قرار گرفته اند، از این عملگرها برای مقایسه بین اعداد استفاده میشود. نکته ی مهم در مورد این عملگرها اینست که در صورتی که هریک از طرفین مقایسه شده با یکدیگر Null باشد، خروجی مقایسه برابر با Null خواهد بود.
دو عملگر Is و Like علاوه بر عملگرهای مقایسه ای شناخته شده در ویژوال بیسیک وجود دارند، در این بخش این دو عملگر مورد بررسی قرار میگیرند:
عملگر Is در ویژوال بیسیک
این عملگر برای مقایسه ی دو Object یا شی در کدهای ویژوال بیسیک مورد استفاده قرار میگیرد. سینتکس این عملگر مانند زیر است:
1 |
Result = object1 Is object2 |
در صورتی که هر دو Object به یک object اشاره کنند خروجی مقایسه برابر True و در غیر اینصورت False خواهد بود.
عملگر Like در ویژوال بیسیک
این عملگر برای مقایسه ی دو String در کدهای ویژوال بیسیک مورد استفاده قرار میگیرد. سینتکس این عملگر مانند زیر است:
1 |
Result = string Like pattern |
در صورتی که String با Pattern یکسان باشد خروجی مقایسه برابر True و در غیر اینصورت False خواهد بود. اگر هریک از String یا Pattern برابر Null باشد، خروجی مقایسه Null خواهد بود.