Using Caller Property of Form Controls

How to use the caller property of form controls like the form button to create a button that works like multiple buttons based on its captions.
Watch the training video:


Watch this video on YouTube.

Here’s the complete VBA code:

Sub usingCaller()
Application.ScreenUpdating = False
With ActiveSheet.Buttons(Application.Caller)

If .Caption = “SHOW ALL DETAILS” Then
With Range(“C5:I18”)
.EntireColumn.Hidden = False
.EntireRow.Hidden = False
End With

ElseIf .Caption = “MONTHLY TOTAL SALES” Then
Range(“D:H”).EntireColumn.Hidden = True


ElseIf .Caption = “ITEMS YEARLY TOTALS” Then
Range(“D:G”).EntireColumn.Hidden = False
Rows(“6:17”).Hidden = True


End If

End With

Application.ScreenUpdating = True

End Sub


Further Reading:

Application.Caller Property

Published by

Dinesh Kumar Takyar

Welcome to! My aim is to help you learn MS Excel including VBA. I always felt that a good way to learn something was to find solutions to problems in that domain. That is why I share these Excel videos with you. Mostly these are questions asked during my corporate training sessions. I've been training individuals and companies in computers since 1991. I did my B. Sc. (Vordiplom), M. Sc. (Diplom) and Ph.D. (Dr. rer. nat.) from Hamburg, Germany. The best thing about solving some of my visitor's questions is that I also gain new insights. For more Excel VBA solutions you may like to visit my YouTube channel: For a structured Excel VBA training course online you can visit:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.