2016-01-13 52 views
0

下面的代碼找到字體「Arial」,但我希望在標題中找到所有Arial字體(如「Arial Rounded」,「Arial Unicode」等)。我應該可以使用通配符嗎?我不知道它在哪裏。有人能幫我回應所有字體中有「Arial」的字體嗎?查找名稱中包含「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 

回答

1

你幾乎已經擁有它了。你只需要檢查,如果該項目的名稱中包含(子)字符串「宋體」:

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

名字的lowercasing是使比較不區分大小寫。

到(有點笨拙)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 
相關問題