Creación de una lista de fuentes de documentos (Microsoft Word)
Word le permite usar las fuentes que están instaladas en el sistema que está usando. Las fuentes se instalan dentro de Windows, por lo que están disponibles no solo para Word, sino para todos los programas instalados en su sistema.
Cuando crea un documento en su sistema, es fácil saber qué fuentes se están utilizando; la lista de fuentes se limita a las disponibles en el sistema. Sin embargo, si recibe un documento de otra persona, es posible que el sistema de la otra persona tenga instaladas fuentes diferentes a las suyas. Esto significa que su documento de Word podría formatearse con fuentes que ni siquiera tiene en su sistema.
Si desea generar una lista de fuentes utilizadas en un documento (a diferencia de una lista de fuentes disponibles en un sistema), tiene un par de opciones. En primer lugar, puede abrir el documento de Word en un editor de texto y buscar en las partes del documento que normalmente no ve en Word. Cerca del final del archivo, debería ver una lista de fuentes utilizadas en el documento. Sin embargo, si hace esto, debe tener mucho cuidado de no realizar ningún cambio en el documento de Word mientras está abierto en su editor de texto. Hacerlo puede hacer que el documento ya no se pueda usar en Word.
Una solución basada en Word es simplemente mirar cada carácter en un documento y verificar qué fuente se usa para formatear el carácter. Es necesario un enfoque carácter por carácter porque cada carácter podría formatearse con una fuente diferente y VBA no le permite acceder a una colección de fuentes en relación con el documento en sí; parece que no se mantiene dicha colección. Por lo tanto, el más seguro (y el más lento)
El método es simplemente recorrer cada carácter y crear su propia lista. La siguiente macro de VBA realiza la tarea:
Public Sub ListFontsInDoc() Dim FontList(199) As String Dim FontCount As Integer Dim FontName As String Dim J As Integer, K As Integer, L As Integer Dim X As Long, Y As Long Dim FoundFont As Boolean Dim rngChar As Range Dim strFontList As String FontCount = 0 X = ActiveDocument.Characters.Count Y = 0 ' For-Next loop through every character For Each rngChar In ActiveDocument.Characters Y = Y + 1 FontName = rngChar.Font.Name StatusBar = Y & ":" & X ' check if font used for this char already in list FoundFont = False For J = 1 To FontCount If FontList(J) = FontName Then FoundFont = True Next J If Not FoundFont Then FontCount = FontCount + 1 FontList(FontCount) = FontName End If Next rngChar ' sort the list StatusBar = "Sorting Font List" For J = 1 To FontCount - 1 L = J For K = J + 1 To FontCount If FontList(L) > FontList(K) Then L = K Next K If J <> L Then FontName = FontList(J) FontList(J) = FontList(L) FontList(L) = FontName End If Next J StatusBar = "" ' put in new document Documents.Add Selection.TypeText Text:="There are " & _ FontCount & " fonts used in the document, as follows:" Selection.TypeParagraph Selection.TypeParagraph For J = 1 To FontCount Selection.TypeText Text:=FontList(J) Selection.TypeParagraph Next J End Sub
Obviamente, cuanto más largo sea el documento, más tardará la macro en terminar. (Ejecuté la macro en un documento de 1,100 páginas y me tomó aproximadamente 46 minutos. En un documento de 5 páginas me tomó menos de un minuto). Cuando termina, la macro crea un nuevo documento que contiene una lista ordenada de las fuentes utilizadas.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.
link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (13313) se aplica a Microsoft Word 2007, 2010 y 2013.
Puede encontrar una versión de este consejo para la interfaz de menú anterior de Word aquí:
link: / word-Creating_a_Document_Font_List [Creación de una lista de fuentes de documentos]
.