首页 > 其他分享 >VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)

VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)

时间:2024-09-04 18:23:23浏览次数:13  
标签:VBA 教程 文本框 窗体 事件 mBOX 中类

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)

VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)_VBA



【分享成果,随喜正能量】身心是我们修行的代表,你是不是真修行,修得怎么样,一看你的相、看你的身体就知道了。你的功夫就在你脸上、就在你行为上,你怎么能骗人?


念佛的人,功夫从从相貌上看,从体质上看。真正修行的人念佛功夫得力,相貌就改变了,身体就强壮了!确实,我们的相貌会随着我们修行的功夫转变。


你一天念几万声佛号,每天读几部经,你的心地清净慈悲,没有恶念,你的相貌自然就会变成慈祥,你功夫愈深,相貌也愈好。你这修行功夫骗不了人,一看就晓得。。

第十五讲 利用类方法和事件,让文本框在激活时改变颜色(上)

大家好,今天继续讲解类的方法和事件。到这一讲,我们基本已经了解了如何利用类,如何利用类的事件。

如果想利用类,必须在类模块中建立类,类的名称是可以改为自己需要的名称;建立类后还要实例化类,把类转化为一个实体对象,如果不对类进行实例化,是没有任何意义的;一般情况下,可以在窗体的构建中进行类的实例化;如果要让这个实体对象响应类的事件,那么要在类的声明中进行对象的声明,在类模块中进行事件的响应,在窗体模块中进行对象的必要关联。

下面仍是以实例为基础,进行类模块实际问题的讲解。


实例:在窗体中,让每一个文本框在激活时发生颜色的改变。


思路的分析:让窗体中的文本框关联上同一个类,可以执行统一的类事件。在窗体中把必要的文本框和这个类及将执行响应的类事件进行关联。


在这讲及其后的几讲中,我们讲解上述需求的实现过程:


1 搭建类模块及类事件

我们建立一个类模块mytebox,并在类模块中声明一个响应事件的对象Mbox,作为我们要干预文本框的一个对象集合。


Public WithEvents mBOX As MSForms.TextBox

Private Sub mBOX_Change()

m = mBOX.Text

If m = "" Then m = 0

If m > 100 Then

MsgBox ("已经超过100"): DoEvents

End If

End Sub

Private Sub mBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

For i = 2 To 4

With UserForm7.Controls("TextBox" & i)

.ForeColor = 0 '(黑色)

.BackColor = 16777215 ' (白色)

TT = .Text

End With

Next

mBOX.BackColor = 16711680 ' (蓝色)

mBOX.ForeColor = 16777215 '白色

End Sub


代码截图:

VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)_Text_02




2 代码的讲解及窗体初始化效果

1) 在上述代码中Public WithEvents mBOX As MSForms.TextBox是对要响应类对象事件的对象进行了声明。

2) 上面的对象共有两个事件,其一是mBOX_Change其二是mBox_MouseDown。

3) 我们先看第一个事件mBOX_Change。当对象发生改变时,将执行下面的操作:

m = mBOX.Text

If m = "" Then m = 0

If m > 100 Then

MsgBox ("已经超过100"): DoEvents

首先要把mBOX.Text的值提取出来,进行判断,如果是空值按0处理,如果是大于100将进行提示:已经超过100.

4) mBox_MouseDown过程。

For i = 2 To 4

With UserForm7.Controls("TextBox" & i)

.ForeColor = 0 '(黑色)

.BackColor = 16777215 ' (白色)

TT = .Text

End With

Next

mBOX.BackColor = 16711680 ' (蓝色)

mBOX.ForeColor = 16777215 '白色


对于textbox的第2到第4个,首先把每个文本框进行初始化,然后对于激活状态的文本框进行着色设置。背景为蓝色,前景为白色。


运行初始化时的窗体的界面:

VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)_VBA_03



VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)_文本框_04


今日内容回向:

1 类的事件是如何被对象响应的?

2 类事件被声明后,如何才能应用?


(待续)


本讲内容参考程序文件:VBA-CLASS(1-28).xlsm









VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)_文本框_05



我20多年的VBA实践经验,全部浓缩在下面的各个教程中:




VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)_VBA_06






标签:VBA,教程,文本框,窗体,事件,mBOX,中类
From: https://blog.51cto.com/u_16912668/11919555

相关文章

  • Java中类与类之间的关系
    一.类与类之间有哪些关系1.继承关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指......
  • VBA字典与数组第十八讲:VBA中静态数组的定义及创建
    《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。这套字典教程共两册,一共八十四讲,今后一段时间会给大家陆续推出修订后的教程内容......
  • VBA数据库解决方案第十四讲:如何在数据库中动态删除和建立数据表
    《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64......
  • VBA代码解决方案第十七讲:如何选择一个工作表,如何选择多个工作表
    《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。这套教程共三册,一百四十七讲,内容覆......
  • C++创建GUI按钮\文本框(Windows)不用QT!!!
    一定要的:#include<windows.h>剩下的: 过程:LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){switch(Message){ caseWM_CREATE:{ /*略*///HWND名称=CreateWindow(类型,显示的字,WS_CHILD|WS_VISIBLE,x,y,宽,......
  • VBA 匹配单元格中的E、N文本,替换写测试用例编号
    '匹配单元格中的E、N文本,替换写测试用例编号SubGetColumnBText()DimtextAsStringDimtargetNAsStringDimtargetEAsStringDimi,j,n,eAsIntegerDimpositionNAsIntegerDimpositionEAsIntegerDimwsAsWorksheetSetws=ThisWorkbook.Worksheets("she......
  • 【python】PyQt5中富文本框QTextEdit的详细教程与应用实战
    ✨✨欢迎大家来到景天科技苑✨✨......
  • VBA语言専攻简介0831
    VBA语言専攻简介0831在当今世界,几乎没有任何工作是没有计算机的。有些工作需要定期重复相同的过程,最好将它们自动化。一旦任务自动化,只需单击一个按钮即可运行。VBA是实现自动化工作的最为简单的方式,它不需要其他工具,因为它已经与MicrosoftOffice软件集成。VBA是VisualBasicfor......
  • VBA技术资料MF195:屏蔽工作表中的粘贴输入
    我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解,从简单的入门、到入门后的提高、到数据库、到字典、到WordVBA的应用、到高级......
  • 【VBA】通常関数
    Start'ログ出力1(引数)PublicSubLogInfo1(strAsString)CallLogInfo2(Now,str)EndSub'ログ出力2(引数)PublicSubLogInfo2(keyAsString,valueAsString)CallLogInfo3(key,value,":")EndSub'ログ出力3(引数)PublicSubLogInfo3(key......