你是vba专家,我有一份wps word的文档需要处理,要求: 字体列表为: fontList = Array("星座文字A5", "星座文字A12", "几何标准体A3", "花型文字A1", "花型文字A2", "花型文字A3", "花型文字A4", "欧拉文字A4", "几何标准体B3", "华为文字A1", "星座文字A1", "星座文字B3", "几何方滑体A32 ") 查找相同颜色的字符,从字体列表中随机选择一个字体,应用为该字符的字体。 不同颜色的字符,选用的字体不同。 请写一个简单,高效,专业的VBA代码
时间: 2023-07-08 18:55:44 浏览: 179
以字体显示的字体下拉列表
5星 · 资源好评率100%
好的,以下是我为您编写的VBA代码:
```
Sub RandomFont()
'定义字体列表
Dim fontList As Variant
fontList = Array("星座文字A5", "星座文字A12", "几何标准体A3", "花型文字A1", "花型文字A2", "花型文字A3", "花型文字A4", "欧拉文字A4", "几何标准体B3", "华为文字A1", "星座文字A1", "星座文字B3", "几何方滑体A32")
'获取文档内容
Dim doc As Document
Set doc = ActiveDocument
'循环遍历文档中的每个字符
Dim i As Integer
For i = 1 To doc.Characters.Count
'获取当前字符的颜色和字体
Dim color As Long
color = doc.Characters(i).Font.Color
Dim font As String
font = doc.Characters(i).Font.Name
'如果当前字符的颜色和之前处理的字符颜色不同,则从字体列表中随机选择一个字体,并应用于该字符
If color <> preColor Then
Dim randomIndex As Integer
randomIndex = Int(Rnd() * (UBound(fontList) + 1))
font = fontList(randomIndex)
End If
'应用字体
doc.Characters(i).Font.Name = font
'记录上一个字符的颜色
preColor = color
Next i
End Sub
```
请注意,此代码需要在WPS Word中运行。您可以将其复制到一个新的VBA模块中,并使用快捷键F5来运行它。运行之前,请确保文档已保存。
阅读全文