How To Determine Selected Control from Array of Option Buttons

Article translations Article translations
Article ID: 147673 - View products that this article applies to.
This article was previously published under Q147673
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

SUMMARY

This article describes a function you can use to determine which option button in a control array is selected.

MORE INFORMATION

A common programming task in Visual Basic, given a control array of option buttons, is to determine which option button in the array is selected. The option button that is selected will have its Value property set to True, while all others will have Value properties of False. This article outlines a short function that will return the index of the selected option button when it is passed a reference to a control array of option buttons. It will work correctly even when some indexes are skipped or not present in the control array. In addition, to avoid logic errors in writing code, it will fail and return a -1 if it is passed a control array of another type of object (like a check box). The function was contributed by Bruce McKinney, author of Hardcore Visual Basic, which is published by Microsoft Press.

The code for the function is:
Function GetOption(opts As Object) As Integer
    On Error GoTo GetOptionFail
    Dim opt As OptionButton
    For Each opt In opts
        If opt.Value Then
            GetOption = opt.Index
            Exit Function
        End If
    Next

GetOptionFail:
    GetOption = -1

End Function
				
This function can be called like this:
myVariable = GetOption(optMyButtons)   'Control syntax OK
myVariable = GetOption(optMyButtons()) 'Array syntax OK
				

Properties

Article ID: 147673 - Last Review: February 28, 2014 - Revision: 2.1
APPLIES TO
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
Keywords: 
kbnosurvey kbarchive kbhowto KB147673

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com