نحوه نوشتن ماکرو

هر زبان برنامه‌نویسی جهت برنامه نویسی قواعد خاص خود را دارد و VBA نیز از این ماجرا مثتثنی نیست.

با استفاده از زبان Vba می‌توان به ایجاد روال(Procedure) یا توابع(Function) پرداخت، روال برنامه ای است که یک سری فرایند را انجام می‌دهد و در طول این فرایند اشیایی را تغییر می‌دهد، ولی تابع مقادیری را به عنوان ورودی می‌پذیرید (در بعضی از موارد، توابع ورودی ندارند، مثل تابع Rand() در اکسل)، و بعد از یک سری تغییرات و محاسبات، مقداری را به عنوان خروجی می‌دهد.

 

روال

روال‌ها با کلمه Sub آغاز می‌شوند و بعد از با یک فاصله اسم روال می‌آید وبعد از اسم روال ( ) آورده می‌شود که در صورت ننوشتن، خود VBE آن را اضافه می‌نماید. در انتها با زدن اینتر، به صورت خودکار در خط بعد کلمه End sub نوشته می‌شود که بیانگر انتهای محدوده مربوط به روال می‌باشد، به عبارت دیگر، اجزای روال در خطوط میان Sub و End Sub قرار می‌گیرند.

 

جهت ایجاد نام روال‌ها (و همچنین توابع) قوانین وجود دارد که در زیر به آنها اشاره می‌شود.

  • در نام روال‌ها می‌توان از اعداد و حروف استفاده نمود ولی اولین حرف نام روال‌ها باید حرف انگلیسی باشد.
  • در نام روال نمی‌توان از فاصله یا هر گگونه علامت ریاضی استفاده نمود.
  • VBA میان حروف کوچک و بزرگ، تفاوت قائل نمی‌شود.
  • نمی‌توان از علائم، !، #، $، % و & در نام روال استفاده نمود.
  • ماکسیمی طولی که می‌توان برای نام روال انتخاب نمود، تعداد 255 متغیر می‌باشد، که البته هیچ آدم عاقلی اسم معقولی با این تعداد کاراکتر و بدون استفاده از فاصله ایجاد نمی‌کند. J

توابع

همانطور که گفته شد توابع، مقادیری را به عنوان ورودی دریافت می‌نمایند و با ایجاد تغییرات بر روی‌‌‌ آنها خروجی مناسب را ایجاد می‌نمایند، توابع همواره با عبارت Function آغاز می‌شوند و بعد از آن با آوردن یک فاصله نام تابع آورده می‌شود و بعد از نام تابع تعداد ورودی دریافتی توسط تابع در داخل پرانتز آورده می‌شود. مثلا اگر تابعی با اسم zarb باشد که دو مقدار ورودی دریافت نماید و مقدار حاصل ضرب آنها را به عنوان خروجی بدهد، داریم.

Function zarb(a, b)
zarb = a * b
End Function

a ورودی اول و b ورودی دوم می‌باشد. همانطور که گفته شد، توابع باید مقداری را به عنوان خروجی بدهد و در طول برنامه نیاز است این مقدار در داخل متغیری با اسم تابع ذخیره شود، به عبارت دیگر در توابع باید مقدار مطلوب در داخل ضرفی با نام تابع ریخته شود.