VBA类模块应用方法介绍,这一点很重要

VBA中类模块是一个很重要的难点,如果没有深入研究,通常不会涉及到,但是,想要提高编程方面的能力,类模块的应用,必须要学会。

当然了,既然是难点就并不容易学会。

本节介绍一个方法,如何实现单选按钮选择之后的一些操作。

也就是说通过类模块来实现OptionButton控件的Click事件。

当单击选择按钮之后,将把选择内容显示在右侧窗体中。

这个示例,可实现单项选择功能,应用十分广泛。

默认窗体如上图所示,什么都没有选择,当选择之后如下图所示。

重点看一下类模块内容,其代码有点复杂,比较难理解,但是其理论就是建立一个事件过程。

如下图所示:

类模块(Opts)代码:

Option ExplicitPublic WithEvents OptObj As MSForms.OptionButton'定义按钮对象Public WithEvents ForObj As MSForms.UserForm'定义窗体对象Private Sub OptObj_Click() Dim id As Long, i As Integer id = VBA.Mid(OptObj.Name, 13, VBA.CInt(VBA.Len(OptObj.Name) - 12)) If ForObj.Controls('OptionButton' & id).Value = True Then ForObj.Controls('TextBox1').Value = ForObj.Controls('Label' & id).Caption End If For i = 1 To getCount(ForObj) If i <> id Then ForObj.Controls('OptionButton' & i).Enabled = False ForObj.Controls('Label' & i).Enabled = False End If Next iEnd Sub

上述代码要在一个类模块中,名称为:Opts,模块名很关键,一定要和主窗体中定义的一样,不然不能使用。后面代码可以看到如何使用。

窗体代码:

Option ExplicitDim Opt() As OptsDim Forx() As OptsPrivate Sub UserForm_Initialize()Dim x As IntegerDim xOpt As Objectx = 1For Each xOpt In Me.Controls    If TypeName(xOpt) = 'OptionButton' Then        ReDim Preserve Opt(x)        ReDim Preserve Forx(x)        Set Opt(x) = New Opts        Set Forx(x) = New Opts        Set Forx(x).ForObj = Me        Set Forx(x).OptObj = xOpt        x = x + 1    End IfNext xOptEnd Sub

上述代码将对象名建立为数组形式,由于选择项条数可能存在不确定性,所以数组方式更加灵活。

也就是说,不管有多少个选项,此内容是不需要更改的 ,可以任意添加OptionButton控件,而无需考虑为其定义类。

(0)

相关推荐

  • Excel VBA 7.75行列冻结完结篇,行列同时操作

    行列冻结完结篇,行列同时操作 点击上方"Excel和VBA",选择"置顶公众号" 致力于原创分享Excel的相关知识,源码,源文件打包提供 一起学习,一起进步~ ...

  • VBA类模块初步

    这里简单地介绍VBA中的类模块,使大家能够在应用程序中创建并使用简单的类. 类是对象的"模板".对象可以是任何事物,而类不会做任何事情,也不会占用内存,只有当类成为对象并使用Set ...

  • [VBA]类模块

    使用类模块可以创建自定义的类,使用此类作为模板创建对象. 类模块包含一系列的属性,方法和事件,用来和其他对象或创建对象的代码交互. · 属性   有两类属性,第一类为Public类型的模块级变量,第二 ...

  • VBA 类模块理解和使用总结

    目 录 VBA 类模块理解和使用总结 一.类的概念 二.类的定义 三.类详细定义 关于封装 关于多态 关于异常 关于自定义事件 四.结论: VBA 类模块理解和使用总结 一.类的概念 记得有人总结,V ...

  • 隔壁大叔炒股养家的关键方法,有一点很关键...

    隔壁大叔炒股养家的关键方法,有一点很关键,如果股民能学以致用,相信你也能做到,适合所有操作中短线的散户. 大叔比较喜欢做短线,喜欢研究各种指标,在炒股之路上也翻了不少跟头,炒股不简单但是也不难,找到适 ...

  • 西瓜嫁接育苗其实一点都不难!3种常用嫁接方法介绍

    一.西瓜嫁接栽培的意义 提高西瓜抗枯萎病的能力.嫁接栽培能有效防止西瓜因枯萎病造成的死秧,从而解决西瓜地不能重茬连作的问题. 提高西瓜的耐低温能力.嫁接苗根系强大,耐低温性能强,这对于西瓜早春保护地栽 ...

  • 菱机妙用 | 伺服系统 Motorizer软件介绍及滚珠丝杆模块选型方法

    本 | 期 | 看 | 点 伺服系统 Motorizer软件整体介绍 伺服系统 Motorizer滚珠丝杠模块选型介绍 看点一 伺服系统 Motorizer软件整体介绍 点击视频快速掌握设置方法 灵活 ...

  • 如何用代码创建类模块,VBA编程进阶学习,千万别错过

    Excel vba编程进入深水阶段,那就对底层的一些代码构建有一定的了解. 类模块就是其重要的一环,可以利用类模块做一些十分有用的事情. 其实在VBA实际应用中,离不开类模块的运用,只有我们并不知道而 ...

  • 6类儿童玩具的除菌方法介绍

    铁皮玩具 先用肥皂水擦洗,清水冲干净后再放在阳光下晒干. 2.绒毛玩具 清洗前,将玩具身上的缝线拆开一点,把填充物取出来,放到太阳下曝晒.玩具干了后再把填充物塞进去缝好.这样做虽然麻烦点,但可以防止填 ...

  • “皮肌炎、类风关、痛风”的常用对药介绍【一点资讯】

    陈湘君工作室 肖相如频道 导读:今天学习陈湘君先生治疗免疫.代谢类疾病的经验药对. 芙蓉叶首载于<本草纲目>,其味微辛,气平. 李时珍谓其"气平而不寒不热.味微辛而性滑涎黏,其治 ...