Visa alla installerade teckensnitt (Excel) med VBA i Microsoft Excel

Anonim

Makrot nedan visar en lista över alla installerade teckensnitt. Notera! Om du har många teckensnitt installerade,
makrot kan sluta svara på grund av brist på tillgängligt minne. Om detta händer kan du prova
prov för Word senare i det här dokumentet.

Sub ShowInstalledFonts () Const StartRow As Integer = 4 Dim FontNamesCtrl As CommandBarControl, FontCmdBar As CommandBar, tFormula As String Dim fontName As String, i As Long, fontCount As Long, fontSize As Integer fontSize = 0 fontSize = Application.InputBox ("Enter Sample Teckensnittsstorlek mellan 8 och 30 ", _" Välj exempelstorlekstorlek ", 12,,,,,, 1) Om fontSize = 0 Avsluta sedan Sub If fontSize 30 Sedan fontSize = 30 Ange FontNamesCtrl = Application.CommandBars (" formatering "). FindControl (ID: = 1728) 'Om teckensnittskontroll saknas, skapa en tillfällig kommandofält om FontNamesCtrl är ingenting, ställ sedan in FontCmdBar = Application.CommandBars.Add ("TempFontNamesCtrl", _ msoBarFloating, False, True) Ställ in FontNamesCtrl = FontCmdBar.Controls. Lägg till (ID: = 1728) Avsluta om Application.ScreenUpdating = False fontCount = FontNamesCtrl.ListCount Workbooks.Add 'list fontnamn i kolumn A och typsnitt i kolumn B För i = 0 To FontNamesCtrl.ListCount - 1 fontName = FontNamesCtrl.List (i + 1) Application.StatusBar = "Listning font" & _ Format (i / (fontCount - 1), "0 %") & "" & _ fontName & "…" Cells (i + StartRow, 1) .Formula = fontName With Cells (i + StartRow, 2) tFormula = " abcdefghijklmnopqrstuvwxyz "If Application.International (xlCountrySetting) = 47 Then tFormula = tFormula &" æøå "End If tFormula = tFormula & UCase (tFormula) tFormula = tFormula &" 1234567890 ".Formula = EndFormula. Application.StatusBar = False If Not FontCmdBar Is Nothing Then FontCmdBar.Delete Set FontCmdBar = Nothing Set FontNamesCtrl = Nothing 'lägg till rubrikkolumner (1) .AutoFit With Range ("A1") .Formula = "Installerade typsnitt:" .Font.Bold = True .Font.Size = 14 End With With Range ("A3") .Formula = "Font Name:" .Font.Bold = True .Font.Size = 12 End With With Range ("B3") .Formula = " Teckensnittsexempel: ".Font.Bold = True .Font.Size = 12 Sluta med intervall (" B "& StartRow &": B "& _ StartRow + fontCount) .Font.Size = fontSize Sluta med intervall (" A "& StartRow &": B "& _ StartRow + fontCount) .VerticalAlignment = xlVAl ignCenter End With Range ("A4"). Välj ActiveWindow.FreezePanes = True Range ("A2"). Välj ActiveWorkbook.Saved = True End Sub