如何使用VBA获取已安装字体
VBA编程中,也许会遇到需要显示一个字体列表以供用户选择,或者有时需要检测指定字体是否已安装。这里水文工具集给出一个实用的VBA过程GetInstalledFonts,它通过Excel格式化工具条上的字体控件来获取字体列表。
这一过程主要使用到了FindControl方法,具体代码如下:
'================================
' VBA中获取已安装字体
'
'
'================================
Sub GetInstalledFonts()
Set FontList = Application. _
CommandBars("Formatting"). _
FindControl(ID:=1728)
If FontList Is Nothing Then
Set TempBar = Application.CommandBars.Add
Set FontList = TempBar.Controls.Add(ID:=1728)
End If
Range("A:A").ClearContents
For i = 0 To FontList.ListCount - 1
Cells(i + 1, 1) = FontList.List(i + 1)
Next i
On Error Resume Next
TempBar.Delete
End Sub
VBA中检测指定字体是否已安装的函数过程
Function IsFontInstalled(sFont) As Boolean
IsFontInstalled = False
Set FontList = Application. _
CommandBars("Formatting"). _
FindControl(ID:=1728)
If FontList Is Nothing Then
Set TempBar = Application.CommandBars.Add
Set FontList = TempBar.Controls.Add(ID:=1728)
End If
For i = 0 To FontList.ListCount - 1
If FontList.List(i + 1) = sFont Then
IsFontInstalled = True
On Error Resume Next
TempBar.Delete
Exit Function
End If
Next i
On Error Resume Next
TempBar.Delete
End Function
使用示例
MsgBox IsFontInstalled("Comic Sans MS")


