Vis alle installerte fonter (Excel) ved hjelp av VBA i Microsoft Excel

Anonim

Makroen nedenfor viser en liste over alle installerte fonter. Merk! Hvis du har mange fonter installert,
Makroen kan slutte å svare på grunn av mangel på tilgjengelig minne. Hvis dette skjer kan du prøve
prøve for Word senere i dette 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 Skriftstørrelse mellom 8 og 30 ", _" Velg prøve skriftstørrelse ", 12,,,,,, 1) Hvis fontSize = 0 Avslutt deretter Sub If fontSize 30 Deretter fontSize = 30 Angi FontNamesCtrl = Application.CommandBars (" Formatering "). FindControl (ID: = 1728) 'Hvis Font -kontroll mangler, opprett en midlertidig kommandolinje Hvis FontNamesCtrl er ingenting, sett deretter FontCmdBar = Application.CommandBars.Add ("TempFontNamesCtrl", _ msoBarFloating, False, True) Angi FontNamesCtrl = FontCmdBar.Controls. Legg til (ID: = 1728) Slutt hvis Application.ScreenUpdating = False fontCount = FontNamesCtrl.ListCount Workbooks.Add 'list skriftnavn i kolonne A og skrifteksempel i kolonne B For i = 0 Til FontNamesCtrl.ListCount - 1 fontName = FontNamesCtrl.List (i + 1) Application.StatusBar = "Listing 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 = TFormula. Application.StatusBar = False If Not FontCmdBar Is Nothing Then FontCmdBar.Delete Set FontCmdBar = Nothing Set FontNamesCtrl = Nothing 'add heading Columns (1) .AutoFit With Range ("A1") .Formula = "Installed fonts:" .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 = " Skrifteksempel: ".Font.Bold = True .Font.Size = 12 End With With Range (" B "& StartRow &": B "& _ StartRow + fontCount) .Font.Size = fontSize End With With Range (" A "& StartRow &": B "& _ StartRow + fontCount) .VerticalAlignment = xlVAl ignCenter End With Range ("A4"). Velg ActiveWindow.FreezePanes = True Range ("A2"). Velg ActiveWorkbook.Saved = True End Sub