Trabalhar com Bibliografias

O modelo de objeto Word inclui vários objetos projetados para automatizar a criação de Bibliografias. A tabela a seguir lista os principais objetos do recurso Bibliografia do Word. Use esses objetos e propriedades e métodos adicionais no modelo de objeto do Word para adicionar fontes às listas de origem, citar fontes em um documento e gerenciar fontes. Os objetos no modelo do Word para que você use para o gerenciamento de Bibliografia fontes são mostradas na tabela a seguir.

Objeto Descrição
Source Uma fonte individual, como um livro, artigo de jornal ou entrevista.
Sources Uma coleção de objetos Source.
Bibliography A lista de fontes citadas no documento (a lista atual) ou a lista de fontes disponíveis no aplicativo (na lista mestra).

Entender o XML de origem

As fontes são adicionadas às listas de origem programaticamente usando cadeias de caracteres XML. Dependendo do tipo de origem que você deseja adicionar, a estrutura XML necessária muda. Para determinar a estrutura XML de um tipo de origem, você pode adicionar o mesmo tipo de origem manualmente e exibir o XML retornado. As etapas a seguir descrevem como fazer isso.

  1. Na faixa Referências, clique em Gerenciar Fontes.

  2. Na caixa de diálogo Gerenciador de Fonte, clique em Novo.

  3. Na caixa de diálogo Criar Fonte, selecione o tipo de fontes a serem criadas. Para este exemplo, selecione Livro.

  4. Preencha os campos fonte, conforme mostrado na tabela a seguir:

    Campo Valor
    Autor Andrew Dixon
    Título Stylish Bibliographies
    Ano 2006
    Cidade Chicago
    Editora Adventure Works Press
    Nome da marca And01
  5. Exibir e adicionar informações a campos adicionais verificando Mostrar Todos os Campos de Bibliografia.

  6. Clique em OK.

  7. Feche a caixa de diálogo Gerenciador de Fonte.

  8. Inicie o Editor do Visual Basic (Alt + F11).

  9. Exiba a janela Immediate (Ctrl+G).

  10. Cole e execute o seguinte 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

Depois de seguir as etapas anteriores, a janela Immediate conterá o seguinte 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>

Os elementos de Guid e LCID são opcionais, mas você pode fornecer valores para que eles se desejar. O valor do elemento de Guid deve ser um GUID válido, o qual você poderá gerar programaticamente fora do modelo de objeto do Word. (Consulte a documentação do Visual Studio ou a documentação do Windows no MSDN para obter informações sobre programaticamente gerando ID.) Word gera GUIDs quando os usuários adicionar ou editar uma fonte. Se você não adicionar um GUID ao XML e um usuário editar uma fonte, o Word gerará um GUID. Isso permite que o Word para determinar a fonte que é mais recente, com base no valor do GUID e para solicitar se o usuário deseja que o Word para atualizar a fonte desatualizada para manter a continuidade entre a lista mestra e a lista atual.

A LCID especifica o idioma para a fonte. (Consulte MSDN para obter valores de identificação de idioma válidos.) O Word usa a LCID para saber como exibir uma fonte citada em uma bibliografia do documento. Por exemplo, uma fonte pode ser escrita em francês e uma em japonês. A partir da LCID, o Word determina como exibir os nomes (por exemplo, Sobrenome, Nome para inglês), qual pontuação usar (por exemplo, usando vírgula em um idioma e uma ponto-e-vírgula em outro), e quais sequências de caracteres usar (por exemplo, se deve usar "et al" ou outra forma localizada).

Após a remoção dos elementos opcionais, você poderá ter uma estrutura similar à seguinte estrutura XML. (Você pode determinar quais elementos são necessários porque eles não têm um campo editável correspondente na caixa de diálogo Criar Fonte . Omitir um ou mais elementos necessários gera um erro de tempo de execução.)

<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>

Agora que você tem a estrutura básica do XML da fonte para um livro, você pode adicionar fontes de livro adicionais à lista mestra de fontes e a lista de fontes atual. Você pode localizar elementos adicionais verificando a caixa de seleção Mostrar Todos os Campos de Bibliografia.

Observação

Como alternativa, você pode obter o XML do arquivo de origem bibliografia chamado "sources.xml" localizado em C:\Users\<user>\AppData\Roaming\Microsoft\Bibliography. Esse arquivo armazena a lista mestra de fontes para um usuário.

Adicionar fontes à lista de origem mestra e à lista de origem atual

A adição de fontes à lista mestra de fontes é similar à adição de fontes à lista de fontes atual, com a exceção que você acessa a coleção Sources de objetos principais diferentes. Para adicionar uma fonte à lista mestra de fontes, você acessa a coleção Sources da propriedade Bibliography do objeto Application. Para adicionar uma fonte à lista de fontes atual, acesse a coleção Sources a partir da propriedade Bibliography do objeto Document.

O exemplo a seguir usa a estrutura básica determinada anteriormente para adicionar outra fonte de livro à lista mestra de fontes.

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

Você pode alterar a linha Application.Bibliography.Sources.Add strXml para ActiveDocument.Bibliography.Sources.Add strXml

A inserção de uma fonte por programação na lista mestra de fontes não a adiciona automaticamente à lista de fontes atual. Entretanto, para adicionar uma citação a um documento, a fonte deverá ser relacionada na lista de fontes atual. Você poderá copiar manualmente uma ou mais fontes a partir da lista mestra para a lista atual usando a caixa de diálogo Gerenciador de Fontes ou você poderá copiar por programação uma ou mais fontes da lista mestra para a lista atual. O exemplo a seguir copia todas as fontes da fonte mestra para a fonte atual. Após as fontes serem adicionadas em sua lista atual, você poderá inserir citações àquelas fontes de um 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

Observação

[!OBSERVAçãO] O valor da propriedade Tag deverá ser exclusivo nas fontes da lista atual. Portanto, a linha On Error Resume Next será necessária para permitir que o código ignore as fontes da lista mestra que tenham valores de marcas conflitantes com a lista atual. Você poderá modificar esse código para capturar instâncias quando o Word não puder copiar uma fonte da lista mestra para a lista atual.

Compartilhar sua lista de origem

Poderá haver casos em que você deseje compartilhar uma lista de fontes com outras pessoas da empresa. Quando você adiciona fontes à lista mestra, o Word as adiciona a um nome de arquivo "sources.xml" localizado em C:\Users\<user>\AppData\Roaming\Microsoft\Bibliography\sources.xml. Você poderá compartilhar este arquivo com outras pessoas fornecendo a elas o arquivo, que os usuários poderão então carregar manualmente a partir da caixa de diálogo Gerenciador de Fontes ou por programação por meio do código,

Observação

Quando um usuário carrega um arquivo de origem, essa é uma ocorrência única e não altera a lista mestra existente ou sua lista atual. É possível adicionar manualmente os itens no arquivo de fontes compartilhado para a lista atual usando a caixa de diálogo Gerenciador de Fontes.

Você pode carregar, por programação, uma fonte compartilhada. O exemplo a seguir mostra como carregar um arquivo de fontes compartilhado que está localizado em uma pasta de compartilhamento de um computador local.

Sub LoadSharedSource() 
    Application.LoadMasterList "\\server\public\sources.xml" 
End Sub

Observação

[!OBSERVAçãO] O compartilhamento do arquivo source.xml compartilha somente as fontes na lista mestra de fontes. As fontes localizadas na fonte atual estão localizadas em um repositório de dados do documento. Você pode acessar este arquivo salvando um documento e abrindo o arquivo DOCX resultante em um aplicativo de compactação de arquivos, como o WinZip. Você pode localizar o arquivo de fontes no caminho "customXml" com um nome de arquivo (ou similar a) "item1.xml". Se você precisar compartilhar as fontes em um documento com outros usuários, poderá compartilhar este arquivo da mesma forma como compartilharia o arquivo de fontes da lista mestra, conforme descrito anteriormente.

Classificar a lista de fontes mestras

Você pode definir a ordem de classificação na caixa de diálogo Gerenciador de Fonte usando a propriedade BibliographySort. A propriedade BibliographySort pode ser um valor String de "Autor", "Marca", "Título" ou "Ano". Este objeto não altera a classificação de fontes na bibliografia do documento. O exemplo a seguir classifica as fontes por título.

Sub SortBibliography() 
    Options.BibliographySort = "Title" 
End Sub

Inserir citações

Você pode inserir uma citação de bibliografia usando o método Add para a coleção Fields. O exemplo a seguir insere uma citação no cursor para a fonte que você adicionou anteriormente. O texto para o campo se iguala ao valor da marca ou ao valor do elemento da Marca, que nesse caso é "Mor01". (Consulte o código XML na sub-rotina AddBibSource mostrada anteriormente para a cadeia de caracteres XML "<b:Tag>Mor01</b:Tag>".) O valor do elemento Tag também corresponde à propriedade Tag para um objeto Source .

Sub InsertBibCitation() 
    Selection.Fields.Add Selection.Range, _ 
        wdFieldCitation, "Mor01" 
End Sub

Aplicar um estilo de bibliografia

Após a inserção de uma bibliografia em um documento, você poderá definir o estilo de bibliografia. O Word formata vários estilos diferentes de bibliografias. Você pode definir o estilo de bibliografia usando a propriedade BibliographyStyle. Essa propriedade pode ser um dos seguintes valores de String:

  • APA

  • Chicago

  • GB7714

  • GOST - Classificação de Nome

  • GOST - Classificação de Título

  • ISO 690 - Primeira Data do Elemento

  • ISO 690 - Referência numérica

  • MLA

  • SISTO2

  • Turabian

Observação

[!OBSERVAçãO] Esses valores estão incluídos na Word, mas novos valores podem ser adicionados em qualquer ponto no futuro medida que novos estilos de Bibliografia são definidos.

O exemplo a seguir define o estilo de bibliografia padrão para o estilo MLA.

Sub SetBibliographyStyle() 
    Options.BibliographyStyle = "MLA" 
End Sub

Observação

[!OBSERVAçãO] Você também pode definir seu próprio estilo de documentação em XML. O diretório C:\Program Files\Microsoft Office\Office15\1033\Bibliography\Style contém um arquivo XSL para cada estilo de documentação em seu computador. Abra qualquer arquivo para obter um exemplo de como criar seu próprio XSLT. Qualquer usuário pode compartilhar um arquivo de XSL de estilo de Bibliografia personalizado, colocando-o para a pasta acima em seu próprio computador.

Inserir uma bibliografia

Como as citações, as bibliografias usam campos. Para inserir uma bibliografia, você precisa inserir um campo com uma constante wdFieldBibliography especificada para o tipo de campo. O código a seguir insere uma bibliografia no documento ativo no cursor. Este exemplo assume que o cursor seja localizado no fim do documento ou em uma nova página.

Sub InsertBibliography() 
    Selection.Fields.Add Selection.Range, _ 
        wdFieldBibliography 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.