Checking if a font is installed (2007)
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.
On Jan 5, 10:40*pm, wrote:
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.
On Jan 5, 4:43*pm, "Jim Cone" wrote:
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 USAhttp://tinyurl.com/TrialVersions
(commercial excel programs)
wrote in ...
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- Hide quoted text -
- Show quoted text -- Hide quoted text -
- Show quoted text -
|