XL97: Using the RefEdit Control with a UserForm

Last reviewed: March 13, 1998
Article ID: Q158402
The information in this article applies to:
  • Microsoft Excel 97 for Windows

SUMMARY

In Microsoft Excel 97, there is no Help topic for the RefEdit control. This article describes the RefEdit control and provides information about using the RefEdit control in a UserForm.

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 engineers 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.

A RefEdit control is similar in behavior and appearance to an edit box control with an InputType property that you set to xlReference. (The edit box control is available in Microsoft Excel 5.0 or 7.0 on the Forms toolbar in dialog sheets.) The RefEdit control differs from an edit box control in that the RefEdit control contains a button that allows you to collapse the UserForm to easily select a cell range.

Using an Edit Box

The RefEdit control imitates the behavior of the reference edit boxes that are built into Microsoft Excel. To illustrate how the built-in reference edit boxes work in Microsoft Excel, try the following steps:

  1. In a new worksheet, click Function on the Insert menu to display the Function Wizard.

  2. Click SUM in the Function Name list box and click OK.

Notice that the edit box for the first argument contains a button with a red arrow on the right side.

  1. Click the button with the red arrow in the edit box.

The Function Wizard collapses, which allows you to see more of your worksheet.

  1. Drag the pointer over cells in the worksheet.

The reference for the cells appears in the reference edit box.

  1. Click the button in the edit box to expand the Function Wizard.

  2. Click OK or Cancel.

The RefEdit control that you can use with your Microsoft Excel Visual Basic project is an ActiveX control. The filename for the RefEdit control is Refedit.dll. Microsoft Excel 97 is the only program that can use this ActiveX control.

Using the RefEdit Control on a UserForm

The following example illustrates how to create a UserForm that contains a RefEdit control and a CommandButton control. When the UserForm appears, you input a reference in the RefEdit control and click OK. When you click OK, the range that you referenced is formatted with a red background, and the UserForm is unloaded. To illustrate how the RefEdit control works in Microsoft Excel, try the following steps:

  1. In a new workbook, press Alt+F11 to activate the Visual Basic Editor.

  2. On the Insert menu, click UserForm.

This step inserts UserForm1 into your project. If the Toolbox is not displayed, click Toolbox on the View menu.

  1. In the Toolbox dialog box, click RefEdit, and draw the control on UserForm1.

To determine which button is the RefEdit button, move the pointer over the button and examining the name that appears in the ToolTip.

NOTE: If there is no RefEdit button in the Toolbox, use the following steps:

   a. On the Tools menu, click Additional Controls.

   b. In the Additional Controls dialog box, select the RefEdit.Ctrl check
      box, and then click OK.

  • In the Toolbox dialog box, click CommandButton and draw the CommandButton on UserForm1.

  • With the CommandButton selected, press F4 to display the Properties window. Change the Caption property of the control to OK.

  • Right-click CommandButton and click View Code.

  • Type the following code for the Click event of the CommandButton:

          Sub CommandButton1_Click()
    
              Dim SelRange as Range
              Dim Addr as String
    
              'Get the address, or reference, from the RefEdit control.
              Addr = RefEdit1.Value
    
              'Set the SelRange Range object to the range specified in the
              'RefEdit control.
              Set SelRange = Range(Addr)
    
              'Apply a red pattern to the SelRange.
              SelRange.Interior.ColorIndex = 3
    
              'Unload the userform.
              Unload Me
    
          End Sub
    
    

  • Press F5 to run the UserForm.

    The UserForm is displayed. Click the button in the RefEdit control. Notice that the UserForm collapses. Select a range of cells on the worksheet, and then click the RefEdit button to expand the UserForm.

    1. Click OK.

    The UserForm disappears, and the cells that you selected are formatted with a red background.

    REFERENCES

    For information about the properties and methods that you can use with a RefEdit control, use the following steps:

    1. Press F2 in the Visual Basic Editor.

    This step displays the Object Browser.

    1. In the Libraries list, click RefEdit.

    2. In the list of Classes, click RefEdit.

    3. Select any properties or method in the "Members of 'RefEdit'" list and press F1 to view a Help topic for the selected item.


  • Additional query words: XL97 8.0 8.00 Ref Edit user form
    Keywords : kbcode kbprg xlvbahowto xlvbainfo
    Version : WINDOWS:97
    Platform : WINDOWS


    THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

    Last reviewed: March 13, 1998
    © 1998 Microsoft Corporation. All rights reserved. Terms of Use.