如何用vba给用户窗体动态的添加控件? 您所在的位置:网站首页 vba窗体添加图片怎么添加不了 如何用vba给用户窗体动态的添加控件?

如何用vba给用户窗体动态的添加控件?

2024-04-11 07:41| 来源: 网络整理| 查看: 265

如何用vba给用户窗体动态的添加控件? 2019年4月4日 作者:水星Excel 18,030 次浏览 4条评论

在vba中也可以使用窗体。

在窗体的设计状态下,可以添加各种控件。

有时候我们希望通过vba代码在窗体中动态的添加控件,而不是事先在窗体中添加控件再写代码。

在vba中可以使用UserForm对象的Controls.Add方法动态添加控件,它的语法如下:

Set Control = object.Add( ProgID [, Name [, Visible]])

其中ProgID参数为要添加的控件的程序标识符,Name参数为要添加的控件的名称, Visible参数设置该控件是否可见。

常见的控件的ProgID如下:

CheckBox Forms.CheckBox.1 ComboBox Forms.ComboBox.1 CommandButton Forms.CommandButton.1 Frame Forms.Frame.1 Image Forms.Image.1 Label Forms.Label.1 ListBox Forms.ListBox.1 MultiPage Forms.MultiPage.1 OptionButton Forms.OptionButton.1 ScrollBar Forms.ScrollBar.1 SpinButton Forms.SpinButton.1 TabStrip Forms.TabStrip.1 TextBox Forms.TextBox.1 ToggleButton Forms.ToggleButton.1

如下的代码将在用户窗体UserForm1中添加10个标签控件和10个文本框控件:

Sub QQ1722187970() Dim oLB As Control Dim oTextBox As Control Dim oCombox As Control With UserForm1 For i = 1 To 10 '添加标签控件 Set oLB = .Controls.Add("Forms.Label.1", "LB" & i, True) With oLB .Caption = "第" & i & "个标签" .Left = 50 .Top = 30 + (i - 1) * 40 End With '添加文本框控件 Set oTextBox = .Controls.Add("Forms.TextBox.1", "Txt" & i, True) With oTextBox .Left = 50 + 100 .Top = 30 + (i - 1) * 40 .Width = 300 .Height = 30 End With Next i .Show End With End Sub

如下图所示,其中两个命令按钮是在设计状态下添加的。

当控件是在vba代码的运行阶段动态添加的,如果要访问控件的内容,需要用如下的加感叹号的引用形式:

userform1!thebox.text

比如要读取上图中的第一个文本框的内容,可以使用如下的代码:

MsgBox UserForm1!Txt1.Text

其中Txt1为动态添加文本框时指定的名称。

其它相关文章推荐:如何在VB.NET中使用打开选择文件和打开选择文件夹对话框?如何用vba对剪贴板进行读写操作?如何用vba在工作表中创建添加表单控件、窗体控件、 ActiveX控件?如何在自定义功能区时添加编辑框(editBox)的控件?自定义excel ribbon 功能区时startFromScratch属性的作用如何在vb.net中使用ado.net? 分类 :  VBA , 窗体、控件 标签 :  .Controls.Add , 动态删除 , 动态添加 , 控件 , 窗体        

声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有