XL97: List Box Click Event May Not Occur

ID: Q170305

The information in this article applies to:

SYMPTOMS

When you create a macro and attach it to the Click event for a ListBox control, the macro may not run when you click the list box.

CAUSE

When you create a Click event macro that is attached to a ListBox control, the macro runs only when the value in the ListBox control changes. The Click event does not occur if you click the same value in the control.

RESOLUTION

To run a macro whenever you click a ListBox control, use another event, such as the MouseDown or MouseUp event. For more information, please see the example in the "More Information" section in this article.

MORE INFORMATION

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support professionals can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

The following example uses the MouseUp event for a ListBox control on a UserForm:

1. Save and close all open workbooks, and then create a new workbook.

2. Enter the following on Sheet1:

      A1: a
      A2: b
      A3: c

3. Press ALT+F11 to start the Visual Basic Editor.

4. On the Insert menu, click UserForm to insert a UserForm into the

   project.

5. Draw a ListBox control on the UserForm and set the RowSource property
   to the following value:

      Sheet1!A1:A3

6. Double-click the ListBox control to display the module associated with
   the UserForm.

7. Enter the following code for the MouseUp event:

      Private Sub ListBox1_MouseUp(ByVal Button As Integer, _
         ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

         MsgBox "Current ListBox value: " & ListBox1.Value

      End Sub

8. Run the UserForm.

9. Click any item in the list box.

A message box appears with the value of the currently selected item.

REFERENCES

For more information about the Click event, click the Office Assistant in the Visual Basic Editor, type "click event," click Search, and then click to view "Click Event."

NOTE: If the Assistant is hidden, click the Office Assistant button on the Standard toolbar. If Microsoft Help is not installed on your computer, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q120802
   TITLE     : Office: How to Add/Remove a Single Office
               Program or Component

Additional query words: fire trigger
Keywords          : kbcode kbprg 
Version           : WINDOWS:97
Platform          : WINDOWS
Issue type        : kbprb

Last Reviewed: May 17, 1999