VBA编程中的一些对象,有一个功能需要我们进行设置,比如,不想让某个控件选择或者让这个控件失效。
这个功能还是很实用的,本文介绍两个属性,可以实现这样的功能。
一个是Enabled属性,另一个是Locked属性。
英文翻译,Enabled为"使能",也是大多工业设备中经常用到的一个英文单词。
Locked为"锁定"。
理解其含义之后,使用就简单多了。
如下图示例:
我们利用两个选择框来控制第一个文本框的Enabled,和Locked状态。第二个文本框为说明文本。
也就是当要选择Enabled"使能"的时候,就可以编辑文本,当不选择的时候文本框失去编辑功能。
失去编辑功能字体颜色会变成灰色,文本框内容也不能选择。
当我们选择Locked的时候,实现锁定文本,文本框颜色不变,可以选择也可以通过键盘操作复制(Ctrl C),但不能进行删除、修改、添加、插入等编辑操作。
具体我们看代码来时行理解。
首先在VBE中新建一个窗体,并添加2个CheckBox控件,2个TextBox控件。
窗体代码:
Private Sub UserForm_Initialize()
TextBox1.Text = "可变属性"
TextBox1.Enabled = True
TextBox1.Locked = False
CheckBox1.Caption = "Enabled 属性"
CheckBox1.Value = False
CheckBox2.Caption = "Locked 属性"
CheckBox2.Value = False
TextBox2.Text = "TextBox2"
End Sub
CheckBox1代码
Private Sub CheckBox1_Change()
If Me.CheckBox1.Value Then
TextBox2.Text = "有效:可以修改"
TextBox1.Enabled = CheckBox1.Value
Else
TextBox2.Text = "无效:不能修改"
TextBox1.Enabled = CheckBox1.Value
End If
End Sub
CheckBox2代码
Private Sub CheckBox2_Change()
If Me.CheckBox2 Then
TextBox2.Text = "锁定:不可修改内容"
TextBox1.Locked = CheckBox2.Value
Else
TextBox2.Text = "解锁:可修改内容"
TextBox1.Locked = CheckBox2.Value
End If
End Sub
Enabled和Locked属性在很多控件中可以使用,并不一定是这两种控件,所以在编程过程有条件地使用还是可以达到想的结果的。
END