converter lista bibliográfica do Word codificada

converter lista bibliográfica do Word codificada

Tenho um documento Word bastante grande, com cerca de 250 páginas. Referências/citações de palavras não utilizadas. As referências feitas no documento são de texto simples:

Tarptautinės savižudybių prevencijos asociacijos (angl. Associação Internacional para a Prevenção do Suicídio (IASP) recomendados [18, 36, 202]. Tyrimais nustatyta, jog geresni expertų savižudybių intervencijos įgūdžiai susiję su specifiniais savižudybių mais arba tiesioginiu specialų darbu su savižudiškais pacientais [19, 176, 177].

A lista bibliográfica é inserida manualmente no final do documento.

  1. Abbas MAF, Abu Zaid LZ, Hussaein M. Ansiedade e Depressão entre Equipes de Enfermagem na King Fahad Medical City, Reino da Arábia Saudita. AIMS Ciências Médicas 2015; 2(4): 303–309.
  2. Ahmed-Little Y.Implicações do trabalho por turnos para médicos juniores. BMJ 2007; 334:777–778.
  3. Ahola K, Honkonen T, Pirkola S, Isometsa E, Kalimo R, Nykyri E et al. Dependência do álcool em relação ao esgotamento entre a população trabalhadora finlandesa // Os Autores. Compilação de diário. Sociedade para o Estudo do Dependência 2006;11:1438 – 1443.
  4. Ajzen I. Natureza e atitudes operacionais. Revisão Anual de Psicologia 2001;52:27–58.

...

250.

Existe uma maneira, exceto ir uma por uma entrada, para criar uma lista bibliográfica adequada?

Responder1

Acabei escrevendo um script VB

Sub ChangeText()


    Dim cDoc As Word.Document
    Dim cRng As Word.Range
    Set cDoc = ActiveDocument
    Set cRng = cDoc.Content
    cRng.Find.ClearFormatting

    'Dim dic As Dictionary
    'Set dic = New Dictionary

    Dim c As Object
    Set c = CreateObject("Scripting.Dictionary")
    c.Add "x1", "1"
    c.Add "x2", "62"
    c.Add "x3", "2"

With cRng.Find
    .Forward = True
    .Text = "["
    .Wrap = wdFindStop
    .Execute
    Do While .Found

        cRng.Collapse Word.WdCollapseDirection.wdCollapseEnd
        cRng.MoveEndUntil Cset:="]", Count:=Word.wdForward

        Dim TextStr As String
        Dim Result() As String
        TextStr = cRng.FormattedText.Text
        Result() = Split(TextStr, ",")
        For i = LBound(Result()) To UBound(Result())
                Dim temp As String
                temp = CStr(LTrim(Result(i)))
                Result(i) = c(temp)
        Next i
        Debug.Print "before: " & cRng.FormattedText.Text

        cRng.FormattedText.Text = Join(Result, ", ")
        Debug.Print "after:" & cRng.FormattedText.Text
        cRng.Collapse Word.WdCollapseDirection.wdCollapseEnd
        .Execute
    Loop
End With        
End Sub

informação relacionada