vbaexcel-2010

How can I dynamically construct a textbox object reference?


I asked a similar question Here and now I need to do the same thing again but this time using VBA in Excel 2010.

Essentially I have numerous text boxes with generic names (i.e. textbox1,textbox2 etc). How can I programically construct the object reference so that I can create a loop?

EDIT: It is a regular textbox on a worksheet. When I start a sub for this worksheet I can reference the textboxes with the following line:

TextBox1.LinkedCell = "B2"

Solution

  • This is what your after:

    Dim oleObj As OLEObject
    'Dim oleTxtBox As TextBox
    
    For Each oleObj In Sheet1.OLEObjects
        If oleObj.OLEType = xlOLEControl Then
            If Mid(oleObj.progID, 1, 14) = "Forms.TextBox." Then
                Set oleTxtBox = oleObj.Object
                oleTxtBox.PasswordChar = "*"
            End If
        End If
    Next
    

    Just using PasswordChar as an example field from the TextBox object, but it wouldn't actually left me Dim as a TextBox