Rodyti visus įdiegtus šriftus („Excel“) naudojant „Microsoft Excel“ VBA

Anonim

Žemiau esančioje makrokomandoje bus rodomas visų įdiegtų šriftų sąrašas. Pastaba! Jei įdiegta daug šriftų,
makrokomanda gali nustoti reaguoti, nes trūksta atminties. Jei taip atsitiks, galite pabandyti
„Word“ pavyzdys vėliau šiame dokumente.

Sub ShowInstalledFonts () Const StartRow As Integer = 4 Dim FontNamesCtrl kaip CommandBarControl, FontCmdBar kaip CommandBar, tFormula As String Dim fontName As String, i As Long, fontCount As Long, fontSize As Integer fontSize = 0 fontSize = Application.InputBox ("Įveskite Sample Šrifto dydis tarp 8 ir 30 ", _" Pasirinkite šrifto dydžio pavyzdį ", 12,,,,, 1) Jei fontSize = 0 Tada Išeikite iš Sub Jei fontSize 30 Tada fontSize = 30 Nustatykite FontNamesCtrl = Application.CommandBars (" Formatting "). „FindControl“ (ID: = 1728) „Jei trūksta šrifto valdymo, sukurkite laikiną„ CommandBar “, jei„ FontNamesCtrl “yra nieko, tada nustatykite„ FontCmdBar = Application.CommandBars.Add “(„ TempFontNamesCtrl “, _ msoBarFloating, False, True) Nustatykite FontNamesCtrl = FontControlsBar. Pridėti (ID: = 1728) End If Application.ScreenUpdating = False fontCount = FontNamesCtrl.ListCount Workbooks.Add 'šrifto pavadinimai A stulpelyje ir šrifto pavyzdys B stulpelyje (i + 1) Application.StatusBar = "Sąrašo šriftas" & _ Formatas (i / (fontCount - 1), "0 %") & "" & _ fontName & "…" Ląstelės (i + StartRow, 1) .Formula = fontName With Cells (i + StartRow, 2) tFormula = " abcdefghijklmnopqrstuvwxyz "If Application.International (xlCountrySetting) = 47 Tada tFormula = tFormula &" æøå "Pabaiga Jei tFormula = tFormula & UCase (tFormula) tFormula = tFormula &" 1234567890 ".Formula = tFormula.Formula = tFormula &" 1234567890 ".Forma. Application. = Tiesa. Šrifto pavyzdys: ".Font.Bold = True .Font.Size = 12 Pabaiga su diapazonu (" B "& StartRow &": B "& _ StartRow + fontCount) .Font.Size = fontSize Pabaigti su diapazonu (" A "& StartRow &": B "& _ StartRow + fontCount) .VerticalAlignment = xlVAl ignCenter End With Range ("A4"). Pasirinkite ActiveWindow.FreezePanes = True Range ("A2"). Pasirinkite ActiveWorkbook.Saved = True End Sub