Prikažite sve instalirane fontove (Word) pomoću VBA u programu Microsoft Excel

Anonim

Donje makronaredbe prikazat će popis svih instaliranih fontova. Bilješka! Ako imate instalirano mnogo fontova,
makro može prestati reagirati zbog nedostatka dostupne memorije.

Sub ShowInstalledFonts () Dim FontNamesCtrl Kao CommandBarControl, FontCmdBar Kao CommandBar, tFormula Kao String Dim fontName As String, i As Long, fontCount As Long, fontSize As Integer Dim stdFont As String fontSize = 0 fontSize = Unos u okvir I 30 ", _" Odaberite veličinu uzorka fonta ", 12) Ako je fontSize = 0 Zatim zatvorite Sub Ako je fontSize 30 Tada fontSize = 30 Postavite FontNamesCtrl = Application.CommandBars (" Oblikovanje "). FindControl (ID: = 1728) Ako je FontNamesCtrl Ništa Zatim postavite FontCmdBar = Application.CommandBars.Add ("TempFontNamesCtrl", _ msoBarFloating, False, True) Postavi FontNamesCtrl = FontCmdBar.Controls.Add (ID: = 1728) Završi ako Application.ScreenUpdating = FalseConComntCountScountRec. Dodaj stdFont = ActiveDocument.Paragraphs (1) .Range.Font.Name 'dodaj naslov With ActiveDocument.Paragraphs (1) .Range .Text = "Instalirani fontovi:" Završi s LS 2 "Nazivi fontova na popisu i primjer fonta u svakom drugom retku Za i = 0 Za FontNamesCtrl.ListCount - 1 fontName = FontName sCtrl.List (i + 1) Ako je i Mod 5 = 0 Tada Application.StatusBar = "Font unosa" & _ Format (i / (fontCount - 1), "0 %") & "" & _ fontName & "…" S ActiveDocument.Paragraphs (ActiveDocument.Paragraphs.Count) .Range .Text = fontName .Font.Name = stdFont Završi s LS 1 tFormula = "abcdefghijklmnopqrstuvwxyz" Ako je aplikacija.Međunarodna (wdProductLanguage & trodimenzionalna Ako je tFormula = tFormula & UCase (tFormula) tFormula = tFormula & "1234567890" s ActiveDocument.Paragrafi (ActiveDocument.Paragraphs.Count). Raspon .Text = tFormula .Fonta.Naziv .Size = fontSize Application.StatusBar = False Ako nije FontCmdBar je ništa Tada FontCmdBar.Delete Set FontCmdBar = Ništa nije postavljeno FontNamesCtrl = Ništa ActiveDocument.Saved = True Application.ScreenUpdating = True Application.ScreenRefresh End Sub Private Sub Integer (lC) dodaje lPrebroji nove stavke na kraju dokumenta Dim i As Integer With ActiveDo cument.Content For i = 1 To lCount .InsertParagraphAfter Next i End With End Sub