获取VBA Excel 2010中所有字体的列表

获取VBA Excel 2010中所有字体的列表,vba,excel,Vba,Excel,我在excel VBA中工作,我想在组合框中获得所有字体的列表 有人能帮我吗 我尝试了此代码,但listcount中出现错误: FontList应返回索引为1的列表。不需要从0开始 Dim FontList Dim i As Long Set FontList = Application.CommandBars("Formatting").FindControl(ID:=1728) 'Put the fonts into column A For i = 1 T

我在excel VBA中工作,我想在组合框中获得所有字体的列表

有人能帮我吗

我尝试了此代码,但listcount中出现错误:


FontList
应返回索引为1的列表。不需要从0开始

Dim FontList
Dim i As Long
    
Set FontList = Application.CommandBars("Formatting").FindControl(ID:=1728)

'Put the fonts into column A
For i = 1 To FontList.ListCount
    Debug.Print FontList.List(i)
    Cells(Rows.Count, 1).End(xlUp)(2) = FontList.List(i)
    'combobox.AddItems FontList.List(i)
    If i > 50 Then Exit For
Next i
这将在的a列中构建字体列表。当这起作用时,删除注释,使其进入组合框


请注意,您将获得与主功能区上的字体列表下拉列表完全相同的字体列表。可能会有一些重复,因为该列表在默认标题和正文类别的列表顶部重复了两种字体。

字体列表应返回一个索引为1的列表。不需要从0开始

Dim FontList
Dim i As Long
    
Set FontList = Application.CommandBars("Formatting").FindControl(ID:=1728)

'Put the fonts into column A
For i = 1 To FontList.ListCount
    Debug.Print FontList.List(i)
    Cells(Rows.Count, 1).End(xlUp)(2) = FontList.List(i)
    'combobox.AddItems FontList.List(i)
    If i > 50 Then Exit For
Next i
这将在的a列中构建字体列表。当这起作用时,删除注释,使其进入组合框


请注意,您将获得与主功能区上的字体列表下拉列表完全相同的字体列表。可能会有一些重复,因为该列表在默认标题和正文类别的列表顶部重复了两种字体。

获取字体列表的另一种方法(从Word)


获取字体列表的另一种方法(从Word)


感谢您的回复,但在listCount中抛出相同的错误不起作用。。。对象的方法listcount“-commandbacombobox”失败。如果要可视化字体,请将其添加到以“Cells(Rows.Count)”开头的行下方:
Cells(Rows.Count,1)。End(xlUp)(2)。Font.Name=FontList.List(i)
感谢您的响应,但在listcount…对象的方法listcount上抛出相同的错误是无效的“-commandbacombobox”失败。如果要可视化字体,请将其添加到以“单元格(行数)开头的行下方:
单元格(行数,1)。End(xlUp)(2)。Font.Name=FontList.List(i)
可以获取字体的文件名吗?可以获取字体的文件名吗?
Option Explicit

Sub listFonts()
    Dim wd As Object, fontID As Variant

    Set wd = CreateObject("Word.Application")

    For Each fontID In wd.FontNames
        Sheet1.cmbFonts.AddItem fontID
    Next
    wd.Quit
    Set wd = Nothing
End Sub