Trabajar con bibliografías
El modelo de objetos de Word incluye distintos objetos diseñados para automatizar la creación de bibliografías. En la siguiente tabla aparecen los principales objetos de la característica Bibliografía de Word. Use estos objetos y propiedades y métodos adicionales en el modelo de objetos de Word para agregar orígenes a las listas de origen, citar orígenes en un documento y administrar orígenes. Los objetos del modelo de Word que puede usar para administrar las fuentes bibliográficas se muestran en la siguiente tabla.
Objeto | Descripción |
---|---|
Source | Fuente individual, como un libro, un artículo periodístico o una entrevista. |
Sources | Colección de objetos Source. |
Bibliography | Lista de las fuentes citadas en el documento (la lista actual) o lista de las fuentes disponibles de la aplicación (en la lista general). |
Descripción del XML de origen
Las fuentes se agregan a la lista de fuentes con cadenas XML mediante programación. En función del tipo de fuente que desee agregar, cambia la estructura XML requerida. Para determinar la estructura XML de un tipo de fuente, puede agregar el mismo tipo de fuente gradualmente y, a continuación, ver el XML devuelto. En los siguientes pasos se describe cómo hacerlo.
En la cinta de opciones Referencias, haga clic en Administrar fuentes.
En el cuadro de diálogo Administrador de fuentes, haga clic en Nuevo.
En el cuadro de diálogo Crear fuente, seleccione el tipo de fuente que se va a crear. En este ejemplo, seleccione Libro.
Rellene los campos de fuentes, como se muestra en la siguiente tabla:
Campo Valor Autor Diego Arteaga Torreira Título Bibliografías de estilos Año 2006 Ciudad Guadalajara Editorial Adventure Works Press Nombre de etiqueta And01 Para ver y agregar información a campos adicionales, active Mostrar todos los campos bibliográficos.
Haga clic en Aceptar.
Cierre el cuadro de diálogo Administrador de fuentes.
Inicie el Editor de Visual Basic (Alt+F11).
Muestre la ventana Inmediato (Ctrl+G).
Pegue y ejecute el siguiente código.
Sub GetBibliographyXML() Dim strXml As String Dim objSource As Source Set objSource = Application.Bibliography.Sources( _ Application.Bibliography.Sources.Count) Debug.Print objSource.XML End Sub
Después de efectuar los pasos anteriores, la ventana Inmediato contiene el siguiente código XML.
<b:Source xmlns:b="http://schemas.microsoft.com/office/word/2004/10/bibliography">
<b:Tag>And01</b:Tag>
<b:SourceType>Book</b:SourceType>
<b:Guid>{6D86D06C-9022-4932-8D4C-84C2B0843381}</b:Guid>
<b:LCID>0</b:LCID>
<b:Author>
<b:Author>
<b:NameList>
<b:Person>
<b:Last>Dixon</b:Last>
<b:First>Andrew</b:First>
</b:Person>
</b:NameList>
</b:Author>
</b:Author>
<b:Title>Stylish Bibliographies</b:Title>
<b:Year>2006</b:Year>
<b:City>Chicago</b:City>
<b:Publisher>Adventure Works Press</b:Publisher>
</b:Source>
Los elementos Guid y LCID son opcionales, pero les puede proporcionar valores si lo desea. El valor del elemento Guid debe ser un valor GUID válido, que pueda generar fuera del modelo de objetos de Word mediante programación. (Consulte la documentación de Visual Studio o la documentación de Windows en MSDN para obtener información sobre cómo generar id. mediante programación). Word genera GUID cuando los usuarios agregan o editan un origen. Si no agrega un GUID al XML y un usuario edita un origen, Word genera un GUID. De esta forma, Word puede determinar la fuente más reciente, en función del valor del GUID, y preguntar si el usuario quiere que Word actualice la fuente obsoleta para mantener la continuidad entre las listas maestra y actual.
El LCID especifica el idioma de la fuente. (Vea MSDN para obtener los valores de identificación de idioma válidos.) Word usa el LCID para saber cómo mostrar una fuente citada en la bibliografía de un documento. Por ejemplo, una fuente puede estar escrita en francés, otra en inglés y una más en japonés. En el LCID, Word determina cómo mostrar los nombres (por ejemplo, Apellido, Nombre en inglés), la puntuación que se usa (por ejemplo, coma en un idioma y punto y coma en otro) y las cadenas que se usan (por ejemplo, si se usa "et al" u otras formas traducidas y localizadas).
Después de quitar los elementos opcionales, puede tener una estructura parecida a la estructura XML siguiente. (Puede determinar qué elementos son necesarios porque no tienen un campo editable correspondiente en el cuadro de diálogo Crear origen . La omisión de uno o más elementos necesarios genera un error en tiempo de ejecución).
<b:Source xmlns:b="http://schemas.microsoft.com/office/word/2004/10/bibliography">
<b:Tag>And01</b:Tag>
<b:SourceType></b:SourceType>
<b:Author>
<b:Author>
<b:NameList>
<b:Person>
<b:Last></b:Last>
<b:First></b:First>
</b:Person>
</b:NameList>
</b:Author>
</b:Author>
<b:Title></b:Title>
<b:Year></b:Year>
<b:City></b:City>
<b:Publisher></b:Publisher>
</b:Source>
Ahora que dispone de la estructura básica de código XML fuente de un libro, puede agregar fuentes de libros adicionales a la fuente general y la lista de fuentes actual. Puede buscar elementos adicionales si activa la casilla de verificación Mostrar todos los campos bibliográficos.
Nota:
Como alternativa, puede obtener el XML del archivo de origen bibliográfico denominado "sources.xml" ubicado en C:\Users\<user>\AppData\Roaming\Microsoft\Bibliography
. Este archivo guarda la lista de fuentes general de un usuario.
Agregar orígenes a la lista de orígenes maestros y a la lista de origen actual
Agregar fuentes a la lista de fuentes general es parecido a agregar fuentes a la lista de fuentes actual, salvo que se tiene acceso a la colección Sources desde objetos principales distintos. Para agregar una fuente a la lista de fuentes general, se tiene acceso a la colección Sources desde la propiedad Bibliography del objeto Application. Para agregar una fuente a la lista de fuentes actual, se tiene acceso a la colección Sources desde la propiedad Bibliography del objeto Document.
En el siguiente ejemplo se usa una estructura básica determinada previamente para agregar otra fuente de libro a la liste de fuentes general.
Sub AddBibSource()
Dim strXml As String
strXml = "<b:Source xmlns:b=""http://schemas.microsoft.com/" & _
"office/word/2004/10/bibliography""><b:Tag>Mor01</b:Tag>" & _
"<b:SourceType>Book</b:SourceType><b:Author><b:Author>" & _
"<b:NameList><b:Person><b:Last>Hezi</b:Last>" & _
"<b:First>Mor</b:First></b:Person></b:NameList></b:Author>" & _
"</b:Author><b:Title>The New Office</b:Title>" & _
"<b:Year>2006</b:Year><b:City>Seattle</b:City>" & _
"<b:Publisher>Adventure Works Press</b:Publisher>" & _
"</b:Source>"
Application.Bibliography.Sources.Add strXml
End Sub
Puede cambiar la línea Application.Bibliography.Sources.Add strXml
a ActiveDocument.Bibliography.Sources.Add strXml
Si se inserta una fuente, mediante programación, en la lista de fuentes general, no se agrega automáticamente a la lista de fuentes actual. Sin embargo, para agregar una cita a un documento, la fuente debe estar incluida en la lista de fuentes actual. Puede copiar manualmente una o varias fuentes desde la lista general a la lista actual mediante el cuadro de diálogo Administrador de fuentes o puede copiar mediante programación una o varias fuentes de la lista general a la lista actual. En el ejemplo siguiente, se copian todas las fuentes de la fuente general en la fuente actual. Después de agregar las fuentes a la lista actual, puede insertar citas de esas fuentes en un documento.
Sub CopyToCurrentList()
Dim objSource As Source
Dim strXml As String
On Error Resume Next
For Each objSource In Application.Bibliography.Sources
strXml = objSource.XML
ActiveDocument.Bibliography.Sources.Add strXml
Next
End Sub
Nota:
El valor de la propiedad Tag debe ser único en las fuentes de la lista actual. De este modo, la línea On Error Resume Next
es necesario para permitir que el código omita las fuentes de la lista general que tienen valores de etiqueta en conflicto en la lista actual. Puede modificar este código para capturar instancias cuando Word no pueda copiar una fuente desde la lista general a la lista actual.
Compartir la lista de origen
Puede que haya veces que desee compartir una lista de fuentes con otros usuarios de la organización. Al agregar orígenes a la lista maestra, Word los agrega a los nombres de archivo "sources.xml" ubicados en C:\Users\<user>\AppData\Roaming\Microsoft\Bibliography\sources.xml
. Puede compartir este archivo con otros usuarios si les da el archivo, que los usuarios pueden cargar manualmente desde el cuadro de diálogo Administrador de fuentes o mediante programación a través de código.
Nota:
Cuando un usuario carga un archivo de origen, se trata de una aparición única y no cambia la lista maestra existente ni su lista actual. Se pueden agregar manualmente elementos en el archivo de fuentes compartido a la lista actual mediante el cuadro de diálogo Administrador de fuentes.
Puede cargar una fuente compartida mediante programación. En el siguiente ejemplo se muestra cómo cargar un archivo de fuentes compartido que está en un recurso compartido o en un equipo local.
Sub LoadSharedSource()
Application.LoadMasterList "\\server\public\sources.xml"
End Sub
Nota:
Si se comparte el archivo de fuentes source.xml, se comparte el archivo de fuentes únicamente de la lista de fuentes general. Las fuentes ubicadas en la fuente actual están situadas en un almacén de datos del documento. Puede tener acceso a este archivo si guarda un documento y abre el archivo DOCX resultante en una aplicación de compresión de archivos, como WinZip. Puede encontrar el archivo de fuentes en la ruta de acceso "customXml" con el nombre de archivo (o parecido a) "item1.xml". Si debe compartir las fuentes de un documento con otros usuarios, puede compartir este archivo de la misma forma que lo haría con el archivo de fuentes de la lista general, de la forma descrita previamente.
Ordenar la lista de origen maestro
Puede establecer el criterio de ordenación en el cuadro de diálogo Administrador de origen mediante la propiedad BibliographySort . The BibliographySort property can be a String value of "Author", "Tag", "Title", or "Year". This object does not alter the sorting of sources in the document's bibliography. The following example sorts the sources by title.
Sub SortBibliography()
Options.BibliographySort = "Title"
End Sub
Insertar citas
Puede insertar una cita bibliográfica mediante el método Add de la colección Fields. En el siguiente ejemplo, se inserta una cita en el cursor de la fuente agregada previamente. El texto del campo es igual que el valor de etiqueta o el valor del elemento Etiqueta, que en este caso es "Die06". (Vea el código XML en la subrutina AddBibSource que se mostró anteriormente para la cadena XML "<b:Tag>Mor01</b:Tag>"). El valor del elemento Tag también corresponde a la propiedad Tag de un objeto Source .
Sub InsertBibCitation()
Selection.Fields.Add Selection.Range, _
wdFieldCitation, "Mor01"
End Sub
Aplicar un estilo bibliográfico
Después de insertar una bibliografía en un documento, puede establecer el estilo bibliográfico. Word da formato a varios estilos distintos de bibliografías. Puede establecer el estilo bibliográfico mediante la propiedad BibliographyStyle . Esta propiedad puede ser uno de los siguiente valores de tipo String:
APA
Guadalajara
GB7714
GOST - Orden de nombre
GOST - Orden de título
ISO 690 - Fecha del primer elemento
ISO 690 - Referencia numérica
MLA
SISTO2
Turabian
Nota:
Estos valores se incluyen en Word, pero se pueden agregar nuevos valores en cualquier momento del futuro a medida que se definen nuevos estilos bibliográficos.
En el siguiente ejemplo se establece el estilo bibliográfico predeterminado en el estilo MLA.
Sub SetBibliographyStyle()
Options.BibliographyStyle = "MLA"
End Sub
Nota:
También puede definir su propio estilo de documentación en XML. El directorio C:\Program Files\Microsoft Office\Office15\1033\Bibliography\Style
contiene un archivo XSL para cada estilo de documentación del equipo. Abra cualquier archivo para obtener un ejemplo de cómo crear su propio XSLT. Cualquier usuario puede compartir un archivo XSL de estilo bibliográfico propio si lo deja en la carpeta citada anteriormente de su equipo.
Insertar una bibliografía
Como ocurre con las citas, las bibliografías usan campos. Para insertar una bibliografía, debe insertar un campo con una constante wdFieldBibliography especificada para el tipo de campo. El siguiente código inserta una bibliografía en un documento activo en la posición del cursor. En este ejemplo, se supone que el cursor está situado al final del documento o en una página nueva.
Sub InsertBibliography()
Selection.Fields.Add Selection.Range, _
wdFieldBibliography
End Sub
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.