Gostaria de uma macro no Office Word que sobrescreva todos os números de notas de rodapé na seção de notas de rodapé na parte inferior da página.
Nota: São os números das notas de rodapé na parte inferior da página que eu quero sobrescritos, não os números das notas de rodapé no texto principal. Veja a ilustração abaixo.
Este post fornece uma dica aparentemente importante. Mas está um pouco fora do tópico. Infelizmente, não posso fazer engenharia reversa para que isso funcione para mim, nem a IA consegue. Aqui está a parte útil, do usuário Timothy Rylatt:
Um documento do Word é construído a partir de um número de Story Ranges, um dos quais é o Footnotes Story. Para tornar o número da nota de rodapé não sobrescrito apenas nas notas de rodapé, você pode executar uma busca e substituição no Footnotes Story como abaixo.
Sub ApplyChicagoStyle()
With ActiveDocument.StoryRanges(wdFootnotesStory).Find
.Style = ActiveDocument.Styles(wdStyleFootnoteReference)
.Replacement.Style = ActiveDocument.Styles(wdStyleFootnoteText)
.Replacement.Font.Superscript = False
.Format = True
.Execute Replace:=wdReplaceAll
End With
End Sub
Ilustração de formato errado:
Texto principal com números de notas de rodapé no texto
1 [não sobrescrito, número da nota de rodapé na parte inferior] nota de rodapé texto inferior
O ChatGPT e o CoPilot chegaram bem perto. Abaixo estão suas macros para inspiração. Mas ambos falharam porque sobrescreveram o texto da nota de rodapé na parte inferior, e não os números em si. No entanto, essas IAs conseguiram escrever macros que sobrescreveram corretamente as notas de rodapé no texto principal. Talvez haja alguma formatação diferente na seção de notas de rodapé na parte inferior da página, o que os confunde?
Bate-papoGPT:
Sub SuperscriptFootnoteNumbers()
Dim footnote As Footnote
Dim fnRange As Range
' Loop through each footnote in the document
For Each footnote In ActiveDocument.Footnotes
' Get the range of the footnote's number (not the text)
Set fnRange = footnote.Range
' Superscript the first character, which is the footnote number
fnRange.Font.Superscript = True
Next footnote
End Sub
Co-piloto:
Sub SuperscriptFootnoteNumbersInText()
Dim footnote As Footnote
Dim rng As Range
Dim i As Integer
For Each footnote In ActiveDocument.Footnotes
Set rng = footnote.Range.Paragraphs(1).Range
i = 1
Do While IsNumeric(Mid(rng.Text, i, 1))
rng.Characters(i).Font.Superscript = True
i = i + 1
Loop
Next footnote
End Sub