وقتی ماکرو می نویسید، از یک زبان برنامه نویسی به نام Visual Basic for Applications (VBA) استفاده می کنید. این زبان مبتنی بر زبان برنامه نویسی بیسیک با پسوندهای مخصوص Word است. یکی از ویژگی های زبان این است که می توانید از زیر روال ها در برنامه های خود استفاده کنید. به عنوان مثال، کد زیر را که در VBA نوشته شده است در نظر بگیرید:
Sub Macro1()
TestSub
End Sub
Sub TestSub()
StatusBar = "In the macro"
End Sub
ماکرو Macro1 کاری جز فراخوانی یک زیربرنامه (TestSub) انجام نمی دهد که به نوبه خود پیامی را در نوار وضعیت چاپ می کند. سپس زیر روال کنترل را به برنامه اصلی برمی گرداند.
شما می توانید به تعداد دلخواه زیربرنامه در یک ماکرو داشته باشید. هدف از هر کدام باید انجام کارهای مشترک باشد تا مجبور نباشید همیشه یک کد را بازنویسی کنید. همچنین می توانید پارامترهایی را به زیربرنامه های خود ارسال کنید. سپس این پارامترها می توانند توسط زیربرنامه شما اعمال شوند. به عنوان مثال، موارد زیر را در نظر بگیرید. ماکروهای زیر:
Sub Macro1()
A = 1
PrintIt A
End Sub
Sub PrintIt(x)
StatusBar = x
End Sub
این یک ماکرو ساده است که یک متغیر را تنظیم می کند و سپس آن را در یک فراخوانی زیر روال به PrintIt ارسال می کند. این زیربرنامه مقدار متغیر را در نوار وضعیت نمایش می دهد و سپس به برنامه فراخوانی باز می گردد. توجه داشته باشید که زیربرنامه از همان نام متغیری که ارسال شده است استفاده نمی کند. این به این دلیل است که VBA مقدار x (آنچه زیربرنامه انتظار دریافت آن را دارد) را مجدداً اختصاص می دهد تا با مقدار A (آنچه برنامه در حال ارسال به زیربرنامه است) مطابقت داشته باشد. نکته مهمی که در ارسال پارامترها به زیربرنامه ها باید به خاطر داشته باشید این است که برنامه شما باید همان تعداد پارامتری را که زیربرنامه انتظار دارد ارسال کند و پارامترها باید از انواع منطبق و با ترتیب مناسب باشند.