Trabajar con bibliografías

Introducción

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. Puede usar estos objetos y agregar propiedades y métodos en el modelo de objetos de Word para agregar fuentes a las listas de fuentes, citar fuentes en un documento y administrar fuentes. 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 código 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.

  1. En la cinta de opciones Referencias, haga clic en Administrar fuentes.

  2. En el cuadro de diálogo Administrador de fuentes, haga clic en Nuevo.

  3. En el cuadro de diálogo Crear fuente, seleccione el tipo de fuente que se va a crear. En este ejemplo, seleccione Libro.

  4. Rellene los campos de fuentes, como se muestra en la siguiente tabla:

    Field Valor
    Autor Diego Arteaga Torreira
    Título Bibliografías de estilos
    Año 2006
    Ciudad Guadalajara
    Editorial Adventure Works Press
    Nombre de etiqueta And01
  5. Puede ver y agregar información a los campos adicionales si activa la casilla de verificación Mostrar todos los campos bibliográficos.

  6. Haga clic en Aceptar.

  7. Cierre el cuadro de diálogo Administrador de fuentes.

  8. Inicie el Editor de Visual Basic (Alt+F11).

  9. Muestre la ventana Inmediato (Ctrl+G).

  10. 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. (Vea la documentación Visual Studio o la documentación Windows en MSDN para obtener información sobre cómo generar identificador mediante programación). Word genera GUID cuando los usuarios agregan o editan un origen. Si no agrega ningún GUID en XML y un usuario edita una fuente, Word genera uno. 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 cuáles son los elementos requeridos porque no tienen ningún campo equivalente editable correspondiente en el cuadro de diálogo Crear fuente. Si se omiten uno o más elementos necesarios, se produce 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 fuentes a las listas de fuentes maestra y 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 fuentes

Puede que haya veces que desee compartir una lista de fuentes con otros usuarios de la organización. Cuando agregue fuentes a la lista general, Word las agrega a un archivo denominado "sources.xml" situado 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 repetición única y no cambia ni 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 fuentes general

Puede establecer el criterio de ordenación en el cuadro de diálogo Administrador de orígenes 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 mostrada 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 en el 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 por 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.