Office Word:使用VBA为每个字母添加不同的颜色

时间:2013-01-15 12:48:45

标签: vba

我有一个doc(docx)文件,我希望每个单词的每个字母都有不同的颜色。

字母a(A) - 红色 字母b(B) - 颜色为蓝色 等

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我讨厌VBA在办公室,因为出于某种原因,他们决定不更新VBA就像他们为visual studio的宏界面更新它时所做的那样...因为与旧文档的兼容性......但是,我认为这应该得到你开始了,因为我说的,它应该适用于任何版本的有vba的单词,我把这个代码放在一个名为“NewMacro”的新模块中 - 如果你使用Office 2010,那么宏可以通过“查看“最右边的”功能区“宏”面板(右侧的“窗口”面板)..然后只需在宏名称下键入名称ColorizeLetter,然后单击“创建”按钮并在下面添加此代码(Sub ColorizeLetter()将请放在这里,我只是为了完整性而添加它,或者如果你已经有一个现有模块,并且知道如何在没有宏窗口的情况下进行操作)。此外,我假设此时只有一个文档是打开的,如果处理多个文档,特定文档,则需要添加功能(只需修改“Set X =”行即可)。

Sub ColorizeLetter()
'
' ColorizeLetter Macro
'
'
Dim D As Range
Dim C As Characters
Dim X As Document

Set X = Word.Documents.Item(1)

For I = 1 To X.Words.Count
    Set D = X.Words.Item(I)
    For J = 1 To D.Characters.Count
       S$ = D.Characters.Item(J).Text
       Select Case S$
        Case "A"
            D.Characters.Item(J).Font.ColorIndex = wdRed
        Case "B"
            D.Characters.Item(J).Font.ColorIndex = wdBlue
       End Select


    Next
Next
End Sub

只需在Select Case块中为其他字符添加你想要的颜色,你应该很高兴.....希望这会有所帮助。