ماکروها اغلب حاوی فرمول های ریاضی هستند. این فرمول ها گاهی اوقات می توانند بسیار پیچیده شوند. هر زمان که یک فرمول حاوی بیش از یک عملگر (مانند + یا -) باشد، VBA باید تشخیص دهد که به چه ترتیبی عملیات را انجام می دهد. اینجاست که مفهوم تقدم مطرح می شود. تقدم منطق ماکرو داخلی است که ترتیب انجام عملیات را تعیین می کند. این ترتیب عادی است:
اپراتور |
|
معنی |
^ |
|
توانمندی |
- |
|
نفی |
*و/ |
|
ضرب و تقسیم |
|
|
تقسیم عدد صحیح |
مد |
|
مدول |
+ و - |
|
جمع و تفریق |
توجه داشته باشید که دو ورودی در لیست اولویت وجود دارد که در آنها دو عملگر وجود دارد. ضرب و تقسیم نیز مانند جمع و تفریق در یک سطح تقدم هستند. اگر یک فرمول شامل دو یا چند عملگر در یک سطح تقدم باشد، عملگرها از چپ به راست در فرمول ارزیابی می شوند.
اگر می خواهید ترتیب ارزیابی یک فرمول را تغییر دهید، باید از پرانتز استفاده کنید. عملیات درون پرانتز قبل از عملیات خارج از آنها ارزیابی می شود. بنابراین، فرمولی مانند 3 * (4 + 2) نتیجه 18 را ایجاد می کند زیرا جمع درون پرانتز بر ضرب خارج از پرانتز اولویت دارد. اگر پرانتز حذف شده بود، 3 * 4 + 2 به 14 می رسید.