textbox控件|Excel vba 动态添加文本框

textbox控件|Excel vba 动态添加文本框)

Excel文本框使用率很高,如何动态添加呢?方法其实很简单,下面做一个例子来解释一下,相对比较容易理解,没有什么难度。(文章结尾附代码,可下载学习)

动态效果图

textbox控件(Excel vba 动态添加文本框

新建两个文本框来做示例,设置不同背景颜色,默认情况下是白色背景,也可以设置没有背景色,就是透明色,不过一般不设置透明色,如果喜欢也可以设置。

textbox控件|Excel vba 动态添加文本框

人机接口

文本框的用处就是可以建立一下人机对话的输入窗口,给定一个值,然后电脑会根据这个值进行计算,然后反馈一个信息,本质上就是这么回事。

其实这样考虑,电脑毕竟是台机器,离智能还很遥远,人工智能是根据一定的算法对数据进行整理、统计、归纳,最终做出类人行为结果的一种方法过程。

人工智能就不需要文本框为个东西了,需要语音接口,人机接口方式,或者说,人和电脑之间的联系不再是面向屏幕的一种方式。

更理想化的方式可能就是芯片植入人体,机器人植入人体等等。总之,是不需要文本框这种低级交互方式了。

textbox控件|Excel vba 动态添加文本框

我们科技还没那么发达,所以依然需要来做这样的低级交互,文本框有一种自由度,可以方便地输入一些字符、数字告诉电脑,你想做什么?

至于,人工智能式的语音交互,其实我个人是不怎么赞赏的,科技发展到那个地步,感觉很奇怪,有一天作为人的地位可能不再可靠,被机器取代也是一个必然过程。

textbox控件|Excel vba 动态添加文本框

在我看来,现代科技的一个方向就是人和意识进行分离。

什么意思呢,人分为肉体和意识两部分,就像电脑分为硬件和软件一样。软件就是人的意识,软件可以安装在任何电脑上运行,而人的意识却不能达到此类效果。

现代科技就是想把你的意识从人体本身进行分离,然后安装到一台机器上,用机器来替代人的肉体。

这样说可能清楚了,不过,真的要发生这种事情,我想也不是一种可以保证是完美的事情。虽说,有点科幻性质,但是大概也不能不如此想象,或许在不久的将来变成事实。

textbox控件|Excel vba 动态添加文本框

人机接口技术已经突破性发展,马斯克有一个脑机接口企业Neuralink公司已经宣布,研发出脑机接口系统,可实现人脑与人工智能的实时连接和共存。

整个系统需要通过一台机器,进行头骨穿刺,在头骨上钻出一个小孔,然后植入芯片,缝上传输线,继而变成一个数据接口,使得人脑可以通过这一接口来控制智能设备。例如,你的手机。

这种场景在电影里可以看到,比如阿凡达,无论如何,这样的科技正在发生,不能回避也不应该回避,是否应该为之努力,那就要看是否像电影里一样,人类和机器进行交互方式改变。

textbox控件|Excel vba 动态添加文本框

个人不太喜欢这样的人机交互方式,感觉被束缚了。既然可以用来交互,也可以用来被控制,那样的情况下,人类管理方式就发生改变了。

想象一下,一个人生下来,就被植入芯片,然后你的行为,被某些人看得一清二楚,整个人类都将变成透明状态。或者说,绝大数的权利争夺将被改变游戏规则。

似乎想多了,这里只介绍一个文本框控件,牵扯出一个脑机接口概念,这不是扯吗?

函数代码

Function newAddText(tColor As Long, Tvalue As String, T As Integer, L As Integer, W As Integer, H As Integer)

Dim tObj As Object

Set tObj = Me.Controls.Add("Forms.TextBox.1", "Te01") '''新建 文本框

With tObj

.Top = T

.Left = L

.Width = W

.Height = H

.BorderStyle = 1

.Text = Tvalue

.Font.Size = 50

.Font.Name = "微软雅黑"

.Font.Bold = True

.MultiLine = True '''多行输入

.EnterKeyBehavior = True '''回车换行

.ScrollBars = 3

' .BackColor = RGB(251, 121, 171)

.BackColor = tColor

.ForeColor = RGB(255, 255, 255)

End With

End Function

调用方式

Private Sub CommandButton1_Click()

Dim Tvalue As String

Tvalue = "新建文本框1"

Call newAddText(1293091, Tvalue, 20, 20, 450, 100)

End Sub

推荐阅读