Creating Macros for a Slide-In Prompt and to Renumber | CodeGuru

Creating Macros for a Slide-In Prompt and to Renumber

Environment: Developer Studio v6.0, v5.0 When using the Developer Studio IDE, I have always missed some of the functionality I added to my CodeWright environment using a custom .dll I wrote several years back. The two most useful functions I missed most were called SlideInPrompt and Renumber. The SlideInPrompt macro inserts a text string into […]

Written By
CodeGuru Staff
CodeGuru Staff
Sep 13, 2002
2 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Environment: Developer Studio v6.0, v5.0

When using the Developer Studio IDE, I have always missed some of the functionality I added to my CodeWright environment using a custom .dll I wrote several years back. The two most useful functions I missed most were called SlideInPrompt and Renumber.

The SlideInPrompt macro inserts a text string into a selected column. If only one column was selected, the selected column is left intact and the text inserted at the beginning of the column. If more than one column is selected, the text under the column is deleted before the text is inserted.

The Renumber macro will sequentially renumber a selected column. It will prompt for a beginning number, delete the selected column, and then sequentially ordered numbers are inserted in its place.

The combination of these two macros are great time savers. Here is an example of how you might use them.

Simply select a blank column (hold down your Alt key while selecting, or press CTRL+SHIFT+F8 to go into column mode), and activate the SlideInPrompt macro (I have it tied to CTRL->). Enter your text, such as:

GetDlgItem(IDC_RADIO1)->Enable(FALSE);

You will end up with a column of text like this:

GetDlgItem(IDC_RADIO1)->Enable(FALSE);
GetDlgItem(IDC_RADIO1)->Enable(FALSE);
GetDlgItem(IDC_RADIO1)->Enable(FALSE);
GetDlgItem(IDC_RADIO1)->Enable(FALSE);
GetDlgItem(IDC_RADIO1)->Enable(FALSE);
GetDlgItem(IDC_RADIO1)->Enable(FALSE);

Now comes the renumber macro. Highlight the columns of 1’s and active the Renumber macro. It will prompt for a starting number; enter “1” and the column will be renumbered sequentially.

I had to calculate the number of columns selected because I couldn’t find a function to return it. Anybody have any ideas on this?

To use this macro, simply highlight it and save it as a .dsm file in the “C:Program FilesMicrosoft Visual StudioCommonMSDev98Macros” folder. Select Tools, Customize and go to the Add-Ins and Macros tab. Click the Browse button and select the macro.

‘——————————————————————
‘ FILE DESCRIPTION: Two Macros: SlideInPrompt() slides text intoselection; Renumber() renumbers a column of numbersEric Sanders, February 12, 2001
‘——————————————————————
Sub SlideInPrompt()
    SlideString = InputBox (Enter Slide-In string:)
    If SlideString <> “” Then
        SlideIn(SlideString)
    End If
End Sub
Function SlideIn(ByVal SlideString)
    nStartLine = ActiveDocument.Selection.TopLine
    nEndLine = ActiveDocument.Selection.BottomLineCalculate how many columns have been selectedNo direct function to retreive this?
    nChars = len(ActiveDocument.Selection)
    nColumns = ((nChars2 * (nEndLinenStartLine + 1)) _
                            / (nEndLinenStartLine + 1))We cut to force cursor to the top left
    ActiveDocument.Selection.CutIf we only selected one column, then we want the originaltext so put it back
    if nColumns = 1 then
        ActiveDocument.Selection.Paste
    end ifNow go through the column adding our string
    nStartColumn = ActiveDocument.Selection.CurrentColumn
    For i = nStartLine To nEndLine
        ActiveDocument.Selection.MoveTo i, nStartColumn
        ActiveDocument.Selection = SlideString
    Next
End Function
Sub Renumber()
    BegNum = InputBox (Enter beginning number)
    If BegNum <> “” Then
        If IsNumeric(BegNum) Then
            nBegNum = Int(BegNum)
            RenumberColumnSelection(nBegNum)
        End If
    End If
End Sub
Function RenumberColumnSelection (ByVal nBegNum)
    nStartLine = ActiveDocument.Selection.TopLine
    nEndLine = ActiveDocument.Selection.BottomLine
    ActiveDocument.Selection.Delete
    nStartColumn = ActiveDocument.Selection.CurrentColumn
    For i = nStartLine To nEndLine
        ActiveDocument.Selection.MoveTo i, nStartColumn
    ActiveDocument.Selection = nBegNum
    nBegNum = nBegNum + 1
    Next
End Function

Downloads

Source Code (renumber.dsm) – 5kb

September 13, 2002


CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.