查找名称中包含 "Arial" 的所有字体

Find All Fonts with "Arial" in their Name

下面的代码找到字体 "Arial",但我想找到标题中所有的 Arial 字体(所以 "Arial Rounded"、"Arial Unicode" 等)。我应该可以使用通配符吧?我一定不知道它去了哪里。有人可以帮我回显其中包含 "Arial" 的所有字体吗?

Const FONTS = &H14&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(FONTS)
Set objFolderItem = objFolder.Self

Set colItems = objFolder.Items
For Each objItem In colItems
    If objItem = "Arial" Then
        Wscript.Echo objItem.Name
    End If
Next

你几乎已经掌握了。您只需要检查项目的名称是否包含(子)字符串 "Arial":

For Each objItem in colItems
    If InStr(LCase(objItem.Name), "arial") > 0 Then
        WScript.Echo objItem.Name
    End If
Next

名字小写是为了比较case-insensitive.

(有点笨拙)InStr 比较的替代方法是使用正则表达式测试项目名称:

Set re = New RegExp
re.Pattern = "arial"
re.IgnoreCase = True

For Each objItem in colItems
    If re.Test(objItem.Name) Then
        WScript.Echo objItem.Name
    End If
Next