Εμφάνιση όλων των εγκατεστημένων γραμματοσειρών (Excel) χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

Η παρακάτω μακροεντολή θα εμφανίσει μια λίστα με όλες τις εγκατεστημένες γραμματοσειρές. Σημείωση! Εάν έχετε εγκαταστήσει πολλές γραμματοσειρές,
η μακροεντολή μπορεί να σταματήσει να ανταποκρίνεται λόγω έλλειψης διαθέσιμης μνήμης. Εάν συμβεί αυτό, μπορείτε να δοκιμάσετε το
δείγμα για το Word αργότερα σε αυτό το έγγραφο.

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 = Εφαρμογή InputBox (" Μέγεθος γραμματοσειράς μεταξύ 8 και 30 ", _" Επιλέξτε Δείγμα μεγέθους γραμματοσειράς ", 12,,,,, 1) Εάν fontSize = 0 Έπειτα εξέλθετε από το στοιχείο Εάν fontSize 30 Τότε fontSize = 30 Ορίστε FontNamesCtrl = Application.CommandBars (" Μορφοποίηση "). FindControl (ID: = 1728) 'Εάν λείπει ο έλεγχος γραμματοσειράς, δημιουργήστε ένα temp CommandBar If FontNamesCtrl Is Nothing then Set FontCmdBar = Application.CommandBars.Add ("TempFontNamesCtrl", _ msoBarFloating, False, True) Set FontNamesCtrl = FontNamesCtrl = FontNamesCtrl = FontNamesCtrl = Προσθήκη (ID: = 1728) Τέλος εάν Application.ScreenUpdating = False fontCount = FontNamesCtrl.ListCount Workbooks.Add 'λίστα γραμματοσειρών στη στήλη A και παράδειγμα γραμματοσειράς στη στήλη B Για i = 0 To FontNamesCtrl.ListCount - 1 fontName = FontNamesCtrl.List (i + 1) Application.StatusBar = "Γραμματοσειρά καταχώρισης" & _ Μορφή (i / (fontCount - 1), "0 %") & "" & _ fontName & "…" Κελιά (i + StartRow, 1). Τύπος = fontName With Cells (i + StartRow, 2) tFormula = " abcdefghijklmnopqrstuvwxyz "If Application.International (xlCountrySetting) = 47 Τότε tFormula = tFormula &" End "End If tFormula = tFormula & UCase (tFormula) tFormula = tFormula &" 1234567890 ".Formula = tFormula. Application.StatusBar = Λάθος Αν Όχι FontCmdBar Είναι Τίποτα Τότε FontCmdBar.Delete Set FontCmdBar = Τίποτα δεν Ρυθμίσεις FontNamesCtrl = Τίποτα δεν προσθέτει στήλες επικεφαλίδας (1) .AutoFit With Range ("A1") .Formula = "Εγκατεστημένες γραμματοσειρές:" .Font.Bold = True .Font.Size = 14 Τέλος με εύρος ("A3"). Formula = "Όνομα γραμματοσειράς:" .Font.Bold = True .Font.Size = 12 Τέλος με εύρος ("B3"). Formula = " Παράδειγμα γραμματοσειράς: ".Font.Bold = True .Font.Size = 12 Τέλος με εύρος (" B "& StartRow &": B "& _ StartRow + fontCount) .Font.Size = fontSize End With With Range (" A "& StartRow &": B "& _ StartRow + fontCount) .VerticalAlignment = xlVAl ignCenter End With Range ("A4"). Select ActiveWindow.FreezePanes = True Range ("A2"). Select ActiveWorkbook.Saved = True End Sub