Looping VBA Case Statement

Currently I have the same code in each Case statement and sometimes I have to repeat it 50 times, is there a way to simplify this: For each one I am having to create 40 frames each one names VarFrame1...VarFrame40 as well I am creating this code in Visual Basic 6.5 in Excel

For iVar = 1 To nrVars
    Select Case iVar
    Case 1
        VarFrame1.Caption = varInfo(iVar).varName
        VarFrame1.Top = lastRow
        VarFrame1.Left = leftMargin
        VarFrame1.Height = 12
        VarFrame1.Visible = True
    Case 2
        VarFrame2.Caption = varInfo(iVar).varName
        VarFrame2.Top = lastRow
        VarFrame2.Left = leftMargin
        VarFrame2.Height = 12
        VarFrame2.Visible = True

.... to Case 50

End Select

 lastRow = lastRow + 15

    Dim res As Boolean
Select Case varInfo(iVar).varType
    Case "RadioButton"
        nrOptionButtonVals = nrOptionButtonVals + 1
        res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
    Case "RadioButtonOther"
        nrOptionButtonVals = nrOptionButtonVals + 1
        res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
    Case "DropDown"
        res = SetUpDropDown(lastRow, iVar, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
    Case "CheckBox"
        nrCBButtonVals = nrCBButtonVals + 1
        res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
    Case "CheckBoxOther"
        nrCBButtonVals = nrCBButtonVals + 1
        res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
    Case "TextEntry"
        res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
    Case "DateEntry"
        res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
    Case "NumberEntry"
        res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
    End Select
    lastRow = lastRow + 10
Next iVar
QuitButton.Top = lastRow
lastRow = lastRow + 30
PhraseDisplay.Height = lastRow + 50

DisplayCorrectedPhrase
SetUpForm = True
End Sub

Updated with Tim Williams Comments:

Public Function SetUpForm(ByRef thePhrase As String) As Boolean
    Dim nrVars, iVar, lastRow As Integer

    nrVars = Utilities.getNrPhraseVariables(thePhrase)
    ReDim varInfo(0 To nrVars)
    PhraseBoxOriginal.Text = thePhrase

    For iVar = 1 To nrVars
    varInfo(iVar).varName = Utilities.getPhraseVariable(thePhrase, iVar)
    varInfo(iVar).varIndex = PhraseVars.getPhraseVarIndex(varInfo(iVar).varName)
    varInfo(iVar).varType = PhraseVars.getTypeFromIndex(varInfo(iVar).varIndex)
    varInfo(iVar).varOptions = PhraseVars.getOptionsFromIndex(varInfo(iVar).varIndex)
    varInfo(iVar).varOptionText = PhraseVars.getOptionTextFromIndex(varInfo(iVar).varIndex)
    varInfo(iVar).varValue = Utilities.getVarOption("", 0) ' Get the default option string
    Next iVar

    nrOptionButtonVals = 0
    lastRow = 115
    For iVar = 1 To nrVars

      With Me.Controls("VarFrame" & iVar)
        .Caption = varInfo(iVar).varName
        .Top = lastRow
        .Left = leftMargin
        .Height = 12
        .Visible = True
      End With

    Next iVar
        lastRow = lastRow + 15

        Dim res As Boolean
    Select Case varInfo(iVar).varType
        Case "RadioButton"
            nrOptionButtonVals = nrOptionButtonVals + 1
            res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
        Case "RadioButtonOther"
            nrOptionButtonVals = nrOptionButtonVals + 1
            res = SetUpOptionButtons(lastRow, iVar, nrOptionButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
        Case "DropDown"
            res = SetUpDropDown(lastRow, iVar, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
        Case "CheckBox"
            nrCBButtonVals = nrCBButtonVals + 1
            res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, False)
        Case "CheckBoxOther"
            nrCBButtonVals = nrCBButtonVals + 1
            res = SetUpCBButtons(lastRow, iVar, nrCBButtonVals, varInfo(iVar).varOptions, varInfo(iVar).varOptionText, True)
        Case "TextEntry"
            res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
        Case "DateEntry"
            res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
        Case "NumberEntry"
            res = SetUpTextEntry(lastRow, iVar, varInfo(iVar).varType, varInfo(iVar).varOptions, varInfo(iVar).varOptionText)
        End Select
        lastRow = lastRow + 10
    Next iVar
    QuitButton.Top = lastRow
    lastRow = lastRow + 30
    PhraseDisplay.Height = lastRow + 50

    DisplayCorrectedPhrase
    SetUpForm = True
    End Sub

Answers


For iVar = 1 To nrVars     

  With Me.Controls("VarFrame" & iVar)        
    .Caption = varInfo(iVar).varName         
    .Top = lastRow         
    .Left = leftMargin         
    .Height = 12         
    .Visible = True 
  End With

Next iVar

Need Your Help

UIView categories and drop shadow — being applied twice

ios objective-c uiview categories objective-c-category

I've created a category on UIView that allows me to add a drop shadow to the view. My code for the shadow looks like this:

Replace newlines with <p> paragraph and with <br /> tags

c# .net html string newline

So I know how to replace newlines in my C# code. But replacing a newline for a &lt;br /&gt; tag isn't always very correct.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.