VBA用户控件
窗体相关
1.显示窗体
UserForm1.show [vbModeless]
vbModeless 可选参数,参数设定后,变成无模式窗体。窗体保持显示状态,仍可操作Excel文件。
UserForms.add("UserForm1").show
2.加载窗体
Load UserForm1
窗体保存在内存中,并不显示。窗体比较复杂时,可使用。
3.卸载窗体
Unload UserForm1
4.隐藏窗体
UserForm1.Hide
5.与显示和卸载窗体相关的事件
Initialize: 窗体初始化,发生在窗体加载和显示之前,但是,如果之前窗体隐藏状态,就不会发生此事件。
Activate: 显示窗体时发生的事件。
Deactivate: 窗体处于非活动状态时发生的事件,但是如果隐藏了窗体,就不会发生此事件。
QueryClose: 卸载窗体前发生事件。
Terminate: 卸载窗体后发生事件。
6.没有标题栏的窗体
Dim lngWindow as Long, lFrmHdl as Long
lFrmHdl = FindWindowA(vbNullSting, Me.Caption)
lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
lngWindow = lngWindow And (Not WS_CAPTION)
Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
Call DrawMenuBar(lFrmHdl)
GetWindowLong, SetWindowLong,DrawMenuBar和FindWindowA是4个API函数
列表控件
1.添加列表项目
ListBox1.AddItem "Column1"
ListBox1.AddItem "Column2"
ListBox1.RowSource = "Ranges"
Ranges: 制定某个单元格或区域
2.列表索引
ListBox1.ListIndex
3.复选项目
MultiSelect = 0,1,2
0: 单选
1: 空格键或单击鼠标,可以选中或取消列表框某个条目
2: Shift键多选
1或2的场合,ListBox1.Selected(n),ListBox1.List(n)取得选中项目。
-1: 未选中列表中项目
图片控件相关
1.图片的凸起效果
Image1.SpecialEffect = fmSpecialEffectRaised
取消凸起效果
Image1.SpecialEffect = fmSpecialEffectFlat
Shape相关
1.Shape文本框做成
Set A_Shape = Sheet1.Shapes.AddShape(msoShapeFlowchartDecision,left,top,10,30)
A_Shape.Name = "First"
A_Shape.TextFrame.Charaters.Text = "First"
2.Shape读取文本
Dim B_Shape as Shape
For each B_Shape in Sheet1.Shapes
' 方法1
sTemp = B_Shape.TextFrame.Characters.Text
' 方法2
sTemp = B_Shape.OLEFormat.Object.Text
Next
3.Shape写入文本
Sheet1.Shapes("Rectangle 1").Select
Selection.Characters.Text = "Second"
Next