You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Word字体名称传入Variant变量以实现字体示例宏?

修复Word VBA宏:获取所有可用字体并生成示例段落

问题原因

Application.FontNames 是Word的FontNames集合对象,并非直接可赋值的数组,因此直接用 fontList = Application.FontNames 会失败。需要先遍历集合,将每个字体名称存入数组。

修复后的完整宏代码

Sub CreateModernFontExamples()
    Dim fontList() As String
    Dim i As Integer
    Dim MyText As String
    Dim fontCount As Integer
    
    ' 获取可用字体总数并初始化数组
    fontCount = Application.FontNames.Count
    ReDim fontList(1 To fontCount)
    
    ' 遍历FontNames集合,将字体名称存入数组
    For i = 1 To fontCount
        fontList(i) = Application.FontNames(i)
    Next i
    
    MyText = "英镑符号是'£'。敏捷的棕狐跳过懒狗——这句经典句子展示了字母表的所有字母。数字序列可以试试1234567890,包含全部十个数字。还可以组合成:'狐狸在下午3点跳过围栏',在一句话中同时展示字母和数字。"
    
    ' 为每种字体创建新段落
    For i = LBound(fontList) To UBound(fontList)
        With ActiveDocument.Content.Paragraphs.Add
            .Range.Text = MyText & "(字体:" & fontList(i) & ")"
            .Range.Font.Name = fontList(i)
            .Range.Font.Size = 12 ' 可按需调整字号
        End With
    Next i
End Sub

关键修改点

  • 将 fontList 定义为字符串数组 Dim fontList() As String,而非Variant
  • 通过 Application.FontNames.Count 获取字体总数,用 ReDim 初始化数组大小
  • 循环遍历FontNames集合,逐个将字体名称存入数组
  • 优化了示例文本的中文表述,使内容更贴合中文场景

内容的提问来源于stack exchange,提问作者Nivek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:24:58