Visual Studio – amazing macros
September 6, 2010 Leave a comment
For example, I found myself continuously typing my name and the date as a comment for every small change that I made to code I was reviewing code. This helped my team working at another location to see the changes I had made. Visual Studio macros to the rescue! I wrote a simple macro which helped me save some time (and frustration) -
Dim dtCurrDate As Date
dtCurrDate = Now
DTE.ActiveDocument.Selection.Text = "//Karan " + dtCurrDate.ToString()
The output of the above macro will be //Karan 9/6/2010 11:06:47 PM. This is a great way to insert comments at the places where you make changes to code. The inserted time provides even more accuracy to the reader.
Some more examples of macros are -
What the above macro does is clean your current solution ( delete intermediate files ) and then rebuilds the solution.
The above macro can be used to #ifdef / #endif out a section of code.
An easy way to create your macro if you don’t know how to write code in basic is to use the built in macro recorder. Use “Ctrl+Shift+R” to record your macro and “Ctrl+Shift+P” to play the macro back. If you want to save this macro then you can go to Tools –> Macros –> Save Macro. This will save the macro to a file and can be viewed using the Macro Explorer (View –> Other Windows –> Macro explorer).
If you are comfortable with coding in basic, then the best way is to create your own macros is to launch the Macro Editor (Tools –> Macros –> Macros IDE) or Alt+F11, then type your macro.
Another great idea is to assign your macro a shortcut, so that you can invoke your macro without digging through menus. To assign macro shortcuts, go to Tools –> Options. From the Dialog that launches go to Environment –> Keyboard and set your shortcut.
The above macros are really simple macros. Visual Studio 2008 comes with many pre-installed macros. Right click –> edit these to view their source code so that you learn from these great examples.
The above macros have been tested on Visual Studio 2008 but the basic idea should work for other versions as well. Let me know in the comments if you know or would like to share some of your own macros.