vba excel中不同颜色的TextBox中的每个字符

use*_*548 3 excel vba textbox

我正在寻找一种方式来显示在每一个字母文本框一内用户窗体中使用VBA不同的颜色。例如第一个字符红色,第二个蓝色,第三个...。有没有办法做到这一点?

L42*_*L42 6

使用TextBox Control是不可能的。但是,
如果您使用的是Excel 2010或更高版本,则可以使用InkEdit Control
它是工具 > 附加控件 (Excel VBE)下的附加控件

在此处输入图片说明

添加后,它将在您的工具箱中可用,如下所示。

在此处输入图片说明

然后,您可以使用它作为另一个控制用户窗体
要了解有关使用InkEdit 控件可以做什么的更多信息,请查看MSDN
顺便说一句,这是一个示例代码,它根据您键入时的位置为条目(每个字符)着色。

Private Sub InkEdit1_Change()

Dim i As Long

If Me.InkEdit1.Text <> "" Then
    For i = 1 To Len(Me.InkEdit1.Text)
        Me.InkEdit1.SelStart = i - 1 '~~> identifies the start of selection
        Me.InkEdit1.SelLength = 1 '~~> identifies the length of selection
        Select Case i
        Case 1: Me.InkEdit1.SelColor = RGB(255, 0, 0) '~~> colors 1st char Red
        Case 2: Me.InkEdit1.SelColor = RGB(0, 255, 0) '~~> colors 2nd char Green
        Case 3: Me.InkEdit1.SelColor = RGB(0, 0, 255) '~~> colors 3rd char Blue
        Case 4: Me.InkEdit1.SelColor = RGB(255, 255, 0) '~~> colors 4th char Yellow
        Case 5: Me.InkEdit1.SelColor = RGB(255, 0, 255) '~~> colors 5th char Indigo
        End Select
        Me.InkEdit1.SelStart = i '~~> this puts the cursor to end
    Next
End If

End Sub
Run Code Online (Sandbox Code Playgroud)

对于上面的示例,我将在控件中输入的字符数限制为
5。InkEdit都接受RGB颜色索引,但我很习惯使用RGB
您的问题缺乏详细信息,因此我无法提供更多信息;只是希望这对你有所帮助。
如果有的话,您的 Excel 版本不是 2010,我认为对于较低版本也有等效的控件。

结果:
在此处输入图片说明