Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in


How to disable editing in textbox to prevent user inputting in Excel?

This article is talking about disabling editing in a textbox (ActiveX Control) or multiple textboxes (ActiveX Control) to prevent user inputting in Excel.

Disable editing in a textbox by changing its properties

Disable editing in multiple textboxes by VBA code

Disable editing in a textbox by changing its properties

This section will show you to change a textbox’s properties to disable editing of this textbox. Please do as follows.

1. Turn on the Design Mode by clicking Developer > Design Mode. See screenshot:

2. Right-click the textbox and click Properties from the context menu as below screenshot shown.

3. In the opening Properties dialog box, select False in the Enabled box and then close the Properties dialog box. See screenshot:

Now the selected textbox is gray and unable to edit.

Disable editing in multiple textboxes by VBA code

If you want to disable editing in multiple textboxes in a worksheet, please apply the below VBA code.

1. In the worksheet contains multiple checkboxes you need to disable editing, click Developer > Insert > Check Box (ActiveX Control) to insert a checkbox into the worksheet. See screenshot:

2. Right-click the checkbox and select View Code from the context menu. See screenshot:

3. In the Microsoft Visual Basic for Applications window, please replace the original code with below VBA code.

VBA code: Disable editing in multiple textboxes

Private Sub CheckBox1_Click()
    Dim xTextBox As OLEObject
    Dim xFlag As Boolean
    Dim I As Long
    Dim xArr
    xArr = Array("TextBox1", "TextBox2", "TextBox3")
    xFlag = True
    If Me.CheckBox1 Then xFlag = False
    For Each xTextBox In ActiveSheet.OLEObjects
        If TypeName(xTextBox.Object) = "TextBox" Then
            For I = 0 To UBound(xArr)
                If xTextBox.Name = xArr(I) Then
                    xTextBox.Enabled = xFlag
                End If
        End If
End Sub


1. In the code, CheckBox1 is the name of your inserted checkbox. And TextBox1, TextBox2, and TextBox3 are the textboxes you will disable editing in the worksheet. Please change them as you need.

2. For disabling editing for more textboxes, please add the textbox name embracing with double quotes into the line xArr = Array("TextBox1", "TextBox2", "TextBox3").

4. Then save and close the code, turn off the Design Mode, now, checking the checkbox will make all specified textboxes unable to edit in worksheet. See screenshot:

Note: If you uncheck the checkbox, the textboxes can be edited again.

Related articles:

Recommended Productivity Tools for Excel

Kutools for Excel Helps You Always Finish Work Ahead of Time, and Stand Out From Crowd

  • More than 300 powerful advanced features, designed for 1500 work scenarios, increasing productivity by 70%, give you more time to take care of family and enjoy life.
  • No longer need memorizing formulas and VBA codes, give your brain a rest from now on.
  • Become an Excel expert in 3 minutes, Complicated and repeated operations can be done in seconds, 
  • Reduce thousands of keyboard & mouse operations every day, say goodbye to occupational diseases now.
  • 110,000 highly effective people and 300+ world-renowned companies' choice.
  • 60-day full features free trial. 60-day money back guarantees. 2 years of free upgrade and support.

Brings Tabbed Browsing and Editing to Microsoft Office, Far More Powerful Than The Browser's Tabs

  • Office Tab is designed for Word, Excel, PowerPoint and Other Office Applications: Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.