分享

做了个好玩的VBA自动绘制窗体

 互利互读一辈子 2024-02-15 发布于北京
写VBA久了,总少不了绘制窗体,一个一个按钮,文本框绘制对齐总是有点麻烦,今天我们来学习下,如何使用VBA自动绘制窗体,下面我们来看看制作效果

通过视频我们可以看出,运行代码后,可自动绘制窗体,绘制了7个按钮,7个文本框,这样就避免了手动创建排列控件。

下面我们来看看代码,在运行代码前,首先要勾选以下引用

工具-勾选引用Microsoft Visual Basic for Applications Extensibility 5.3

下面我们来看看代码:

图片

Sub CreateUserForm() Application.ScreenUpdating = False Dim VBcomp As VBComponent Set VBcomp = ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm) '新增Module1 With VBcomp.Properties .Item('Font')('Size').Value = 11 .Item('Font')('Name').Value = '微软雅黑' .Item('Font')('Bold').Value = True .Item('BackColor').Value = RGB(254, 253, 253) .Item('BorderColor').Value = RGB(0, 0, 0) .Item('Width').Value = 350 .Item('Height').Value = 320 .Item('Caption') = '这是自动创建的Caption' End With Dim cmd As CommandButton, tBox As Object For i = 1 To 7 Set cmd = VBcomp.Designer.Controls.Add('Forms.CommandButton.1') With cmd .BackStyle = fmBackStyleTransparent .Caption = 'AutoButton' & i .ForeColor = RGB(0, 0, 0) .Left = 20 .Top = 10 (i - 1) * 40 .Width = 80 .Height = 30 End With Set tBox = VBcomp.Designer.Controls.Add('Forms.TextBox.1') With tBox .BackStyle = fmBackStyleTransparent .ForeColor = RGB(0, 0, 0) .Left = 120 .Top = 12 (i - 1) * 40 .Width = 180 .Height = 26 End With Next i Application.ScreenUpdating = TrueEnd Sub

第4行:创建用户窗体

第5-14行:通过VBComponent.Properties设置用户窗体的属性

第16行:通过循环创建控件

第17行:在窗体上创建按钮

第18-26行:设置按钮的格式、位置

第27行:在窗体上创建文本框

第28-35行:设置文本框的格式、位置

好了,本期教程就到这里啦

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多