Kuva kõik installitud fondid (Excel), kasutades Microsoft Excelis VBA -d

Anonim

Allpool olev makro kuvab kõigi installitud fontide loendi. Märge! Kui teil on installitud palju fonte,
makro võib vaba mälu puudumise tõttu reageerida. Kui see juhtub, võite proovida
Wordi näidis hiljem selles dokumendis.

Sub ShowInstalledFonts () Const StartRow As Integer = 4 Dim FontNamesCtrl kui CommandBarControl, FontCmdBar nagu CommandBar, tFormula As String Dim fontName As String, i As Long, fontCount As Long, fontSize As Integer fontSize = 0 fontSize = Application.InputBox ("Sisestage Sample Fondi suurus vahemikus 8 ja 30 ", _" Vali fondi suuruse näidis ", 12,,,,, 1) Kui fontSize = 0 Siis Välju Sub Kui fontSize 30 Siis fontSize = 30 Määra FontNamesCtrl = Application.CommandBars (" Vormindamine "). FindControl (ID: = 1728) 'Kui fondikontroll puudub, looge temp CommandBar Kui FontNamesCtrl pole midagi, siis määrake FontCmdBar = Application.CommandBars.Add ("TempFontNamesCtrl", _ msoBarFloating, False, True) Määra FontNamesCtrl = FontControlsBar. Lisa (ID: = 1728) End If Application.ScreenUpdating = False fontCount = FontNamesCtrl.ListCount Workbooks.Add 'nimekirja fondinimed veerus A ja fondinäide veerus B For i = 0 To FontNamesCtrl.ListCount - 1 fontName = FontNamesCtrl.List (i + 1) Application.StatusBar = "Kirje font" & _ Vorming (i / (fontCount - 1), "0 %") & "" & _ fontName & "…" Lahtrid (i + StartRow, 1) .Formula = fontName With Cells (i + StartRow, 2) tFormula = " abcdefghijklmnopqrstuvwxyz "Kui Application.International (xlCountrySetting) = 47 Siis tFormula = tFormula &" æøå "End If tFormula = tFormula & UCase (tFormula) tFormula = tFormula &" 1234567890 ".FormulaFormameFormame Application. = Tõsi .Font.Size = 14 Lõpeta vahemikuga ("A3"). Formula = "Fondi nimi:". Font.Bold = True .Font.Size = 12 Lõpeta vahemikuga ("B3") .Formula = " Fondi näide: ".Font.Bold = True .Font.Size = 12 Lõpeta vahemikuga (" B "& StartRow &": B "& _ StartRow + fontCount) .Font.Size = fontSize Lõpp koos vahemikuga (" A "& StartRow &": B "& _ StartRow + fontCount) .VerticalAlignment = xlVAl ignCenter End With Range ("A4"). Valige ActiveWindow.FreezePanes = True Range ("A2"). Valige ActiveWorkbook.Saved = True End Sub