VBA Excel 实践(三)Excel控件及Excel控件的初始化

本文详细介绍了VBA中窗体与控件的使用,包括标签、文本框、复合框、列表框、复选框、选项按钮和命令按钮等控件的属性、方法及初始化示例。通过实例演示了如何在UserForm的Init事件中进行控件的初始化,如文本框内容、复选框状态、复合框和列表框选项的设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

我们还是要回顾下我们要干什么?我们的目标是做一个具有查询及显示查询结果的工具。上一章介绍了窗体及其属性、事件、方法等,这个东西只能算是画个查询条件的框框,里面的具体查询条件怎么填呢。

从我们见过的软件分析,要写一个查询条件的输入,必须有输入框吧,有可能有选择框吧,有可能有多选、单选框吧,你得有确定按钮吧,本章主要描述这些东西及其初始化

一、综述

控件其实也是窗体,是上篇中的窗体的儿子、继承者。目前我们常用的有标签(Lable),文本框(TextBox),复合框(ComboBox),列表框(ListBox),复选框(CheckBox),选项按钮(OptionButton),命令按钮(CommandButton),等等。

因为控件和窗体是继承关系,所以控件的属性和窗体差不多,如位置、大小、字体相关、图片相关、鼠标相关等。但是龙生九子,子子不同,他们又会生出具有各自特点的属性。

二、属性

上面说了,龙生九子,子子不同。所以控件在继承窗体的属性时,不是全部继承,一般都是根据自身的功能去继承父亲的某些特点。同时,儿子也会生出一些自己的共性特点(属性)。

  • 新属性:
textalign文本对齐方式

1 fmTextAlignLeft

2 fmTextAlignCenter

3 fmTextAlignRight

对于listbox只对编辑框起作用

AutoSize

控件调节自身大小

ture

false

true表示自动调整,当然不同的空间自动调整的含义不同

AutoTab

当用户在文本框或组合框的文本框区域输入了最大允许字符数时,是否自动跳格

ture

false

MaxLength 属性规定了在文本框或组合框的文本框区域内所允许的最大字符数

TabIndex

按tab键时TabIndex表示第几个跳到该控件

整数

 
TabStopTabStop表示按tab键时是否忽略该控件

ture

false

true 表示接受tab

ControlSource

标识用于设置或储存控件中 Value 属性的数据位置。ControlSource 属性可接受 Microsoft Excel 工作表区域

一般写excel单元格excel单元格和控件对应的value可以互相影响。意思就是你改一个另外一个就会跟着改
ControlTipText

指定当用户将鼠标指针放在控件上但未按下时所显示的文本

  

 

 

 

 

 

 

 

 

 

 

 

 

三、方法

AddItem,RemoveItem方法等

四、控件初始化示例

 对于控件的初始化,我们一般在UserForm的init事件中进行。初始化控件时,可对控件的属性进行赋值。本次示例对checkbox,textbox,listbox,combobox进行了初始化操作,分别进行了:复选框选定初始化,文本框内容初始化,复合框内容初始化,列表框内容初始化。

赋值效果,及代码如下:

  • 效果:

  • 代码: 
Dim MyArray(6, 3)
'文本框初始化:属性赋值
Private Sub testboxinit()
    TextBox1.Text = "TextBox1"
    TextBox1.Enabled = False
    TextBox1.Locked = False
    TextBox2.Text = "TextBox2"
End Sub
'复选框初始化:名称赋值,是否选定
Private Sub checkboxinit()
    CheckBox1.Caption = "Enabled"
    CheckBox1.Value = True
    
    CheckBox2.Caption = "Locked"
    CheckBox2.Value = False
End Sub
'复合框初始化:内容初始赋值
Private Sub comboxinit()
    Dim j As Integer

    For j = 1 To 9
        ComboBox1.AddItem "Choice " & j
    Next j
    ComboBox1.AddItem "Chocoholic"
End Sub
'列表框初始化:内容初始赋值
Private Sub listboxinit()
    Dim i As Single
     '第一个列表框包含三个数据列
    ListBox1.ColumnCount = 3
     '第二个框包含六个数据列
     ListBox2.ColumnCount = 6

    '把整数值加载到 MyArray 的第一列
    For i = 0 To 5
        MyArray(i, 0) = i
    Next i

    '加载 MyArray 的列 2 和列 3
    MyArray(0, 1) = "Zero"
    MyArray(1, 1) = "One"
    MyArray(2, 1) = "Two"
    MyArray(3, 1) = "Three"
    MyArray(4, 1) = "Four"
    MyArray(5, 1) = "Five"

    MyArray(0, 2) = "Zero"
    MyArray(1, 2) = "Un ou Une"
    MyArray(2, 2) = "Deux"
    MyArray(3, 2) = "Trois"
    MyArray(4, 2) = "Quatre"
    MyArray(5, 2) = "Cinq"

    '把数据加载到 ListBox1 和 ListBox2
    ListBox1.List() = MyArray
    ListBox2.Column() = MyArray
End Sub

Private Sub UserForm_Initialize()
    
    Call testboxinit
    Call comboxinit
    Call listboxinit
    Call checkboxinit
   
End Sub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值