Mostrar todas las fuentes instaladas (Excel) usando VBA en Microsoft Excel

Anonim

La siguiente macro mostrará una lista de todas las fuentes instaladas. ¡Nota! Si tiene muchas fuentes instaladas,
la macro puede dejar de responder debido a la falta de memoria disponible. Si esto sucede, puede probar el
ejemplo para Word más adelante en este documento.

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 Tamaño de fuente entre 8 y 30 ", _" Seleccionar tamaño de fuente de muestra ", 12,,,,, 1) Si fontSize = 0 Luego salga de Sub Si fontSize 30 Entonces fontSize = 30 Establezca FontNamesCtrl = Application.CommandBars (" Formato "). FindControl (ID: = 1728) 'Si falta el control de fuente, cree una barra de comando temporal Si FontNamesCtrl no es nada, entonces establezca FontCmdBar = Application.CommandBars.Add ("TempFontNamesCtrl", _ msoBarFloating, False, True) Establezca FontNamesCtrl = FontCmdBar.Controls. Agregar (ID: = 1728) End If Application.ScreenUpdating = False fontCount = FontNamesCtrl.ListCount Workbooks.Agregar 'lista de nombres de fuente en la columna A y ejemplo de fuente en la columna B Para i = 0 a FontNamesCtrl.ListCount - 1 fontName = FontNamesCtrl.List (i + 1) Application.StatusBar = "Listado de fuentes" & _ Formato (i / (fontCount - 1), "0%") & "" & _ fontName & "…" Celdas (i + StartRow, 1) .Formula = fontName Con celdas (i + StartRow, 2) tFormula = " abcdefghijklmnopqrstuvwxyz "If Application.International (xlCountrySetting) = 47 Entonces tFormula = tFormula &" æøå "Fin Si tFormula = tFormula & UCase (tFormula) tFormula = tFormula &" 1234567890 ".FormulaName .Formula = tFormula Siguiente. Application.StatusBar = False Si no FontCmdBar no es nada, entonces FontCmdBar.Delete Establecer FontCmdBar = Nada Establecer FontNamesCtrl = Nada 'agregar encabezado Columnas (1) .AutoFit con rango ("A1") .Formula = "Fuentes instaladas:" .Font.Bold = Verdadero .Font.Size = 14 Terminar con rango ("A3") .Fórmula = "Nombre de fuente:" .Font.Bold = Verdadero .Font.Size = 12 Terminar con rango ("B3") .Fórmula = " Ejemplo de fuente: ".Font.Bold = True .Font.Size = 12 Terminar con con rango (" B "& StartRow &": B "& _ StartRow + fontCount) .Font.Size = fontSize Terminar con con rango (" A "& StartRow &": B "& _ StartRow + fontCount) .VerticalAlignment = xlVAl ignCenter End With Range ("A4"). Seleccione ActiveWindow.FreezePanes = True Range ("A2"). Seleccione ActiveWorkbook.Saved = True End Sub