Word ou LibreOffice / OpenOffice - Como inserir automaticamente o texto da nota de rodapé no corpo do documento na marca de referência da nota de rodapé?

1

Eu tenho alguns documentos docx que contêm muitas notas de rodapé, normalmente com um breve texto de nota de rodapé (por exemplo, "Richard 2010." ou "consulte a seção xy"). É muito mais conveniente tê-los no corpo do documento entre colchetes [] e no lugar da marca de referência da nota de rodapé. Eu não encontro uma função para isso no Word ou no LibreOffice. Eu acho que preciso de uma macro.

Eu vi aqui uma macro que converte comentários em notas de rodapé. São apenas dez linhas . Eu tentei por uma noite aprender algumas noções básicas de macro e modificar algumas macros existentes, mas falhei miseravelmente.

    
por user275786 21.11.2013 / 11:12

1 resposta

0

Um ponto de partida:

Sub bootNoteIntoBody()
Dim bScreenUpdating As Boolean
Dim oDoc As Document
Dim oNote As Footnote
Dim rng As Range
Dim strStyleName As String

bScreenUpdating = Application.ScreenUpdating
On Error GoTo finish
Application.ScreenUpdating = False
Set oDoc = ActiveDocument
For Each oNote In ActiveDocument.Footnotes
  ' choose your own maximum length
  If Len(oNote.Range.Text) < 20 Then
    Set rng = oNote.Reference
    With rng
      strStyleName = .Style
      .Text = "[" & cleanup(oNote.Range.Text) & "]"
      .Style = strStyleName
    End With
  End If
Next

finish:
Application.ScreenUpdating = bScreenUpdating

End Sub

Function cleanup(s As String) As String
' replace certain characters by space.
Dim i As Integer
Dim r As String
r = ""
For i = 1 To Len(s)
  Select Case AscW(Mid(s, i, 1))
    Case 1 To 31 ' and perhaps others
      r = r & " "
    Case Else
      r = r & Mid(s, i, 1)
  End Select
Next
cleanup = r
End Function
    
por 25.11.2013 / 16:31