Checking if a font is installed (2007)

D

dave.cuthill

I have been using the attached function to determine if a specific
font is installed. It seems to work fine is I have my macro security
set at "Enable all Macros" but when I set the macro security to
"Disable all macros with notification" I get an error at For i=0 to
Fontlist.listcount - 1 when I am prompted and allow macros to run.


Runtime error '-2147467259 (80004005): Method 'ListCount of object
_commandbarcombox failed ...

This always ran fine in 2003.

Function FontIsInstalled(sFont) As Boolean
' Returns True if sFont is installed
FontIsInstalled = False
Set FontList =
Application.CommandBars("Formatting").FindControl(ID:=1728)

' If Font control is missing, create a temp CommandBar
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
FontIsInstalled = True
On Error Resume Next
TempBar.Delete
Exit Function
End If
Next i

' Delete temp CommandBar if it exists
On Error Resume Next
TempBar.Delete
End Function
 
J

Jim Cone

It works for me in xl2007.
Try declaring your variables.
The 1728 control can be either a CommandBarControl or a CommandBarComboBox.
You are also missing a line continuation character after "Set FontList ="

You may also want to try resetting the Toolbar...
Application.CommandBars("Formatting").Reset
--
Jim Cone
Portland, Oregon USA
http://tinyurl.com/TrialVersions
(commercial excel programs)




<[email protected]>
wrote in message
news:8970ec0e-3ce7-4d35-b688-1a333384d76c@g26g2000vba.googlegroups.com...
 
D

dave.cuthill

I have this executing as part of a workbook open event. It errors when
macros are disabled and prompted but not when they are enabled without
prompting. I will try some of your suggestions but I don't see why in
one case I get the error but not in the other.
 
D

dave.cuthill

On Error Resume Next
Set FontList =
Application.CommandBars("Formatting").FindControl(ID:=1728)

Seems to resolve the problem - I guess possibly since maybe the
formatting commandbar is not loaded for some reason when the fontlist
is trying to be set to it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top