Text in Fußnoten Umwandeln mit Makro?

Hallo,

ich schreibe derzeit an einer Hausarbeit. Dafür benutze ich das ziemlich großartige Programm Mindmanager von www.mindjet.de . Mit dem Programm lassen sich komplexe Themen anhand von Mindmaps anschaulich und übersichtlich nichtlinear darstellen und bearbeiten. Das Ergebnis kann dann unkompliziert in eine Word-Datei konvertiert werden und fertig.

Nachteil der Anwendung ist nur, dass Fußnoten nicht unterstützt werden. Derzeit schließe ich alles was später als Fußnote erscheinen soll, mit solchen [] eckigen Klammern ein. Jetzt wäre es natürlich genial, wenn ich am Ende nicht hunderte von diesen Klammern manuell suchen müsste und per hand ausschneiden und als Fußnote einfügen.

Kann mir jemand von euch sagen, wie ein makro aussieht, das:

  1. Text zwischen zwei [Klammern] findet
  2. Den Text ausschneidet
  3. Den Text als Fußnote an derselben Stelle einfügt
  4. Die eckigen Klammern löscht?

Ich bin jetzt schon dankbar :smile:

Hi adone,

der folgende Code scheint zu funktionieren. Kopiere unter allen Umständen Deine Datei, bevor Du mit dem Code experimentierst!!!
Gruß Wilhelm

Sub TestFussnotenErzeugen()
'***Der Codeschnipsel scheint zu funktionieren, wenn Du a u s s c h l i e ß l i c h die _
zukünftigen Fußnotentext in eckigen Klammern in Deinem Text hast.
'***Findet den geklamerten Text***
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = „[“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Extend
Selection.Extend Character:="]"
Selection.Cut
'***Fügt den zwischengespeicherten Text als Fußnote ein***
With ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _
ActiveDocument.Content.End)
With .FootnoteOptions
.Location = wdBottomOfPage
.NumberingRule = wdRestartContinuous
.StartingNumber = 1
.NumberStyle = wdNoteNumberStyleArabic
End With
.Footnotes.Add Range:=Selection.Range, Reference:=""
End With
Selection.PasteAndFormat (wdPasteDefault)
ActiveWindow.ActivePane.Close
'***Wiederholt die ersten beiden Schritte, bis keine Klammern mehr gefunden werden***
On Error GoTo Ende
Call TestFussnotenErzeugen
Ende:
End Sub

Vielen Dank. Leider gibt es Probleme mit dem makro.
Zunächst hat Word ein Problem mit dem „With“ in:

End With

Das habe ich dann einfach mal gelöscht.

Anschließend verschluckt der Compiler sich an:

ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _
ActiveDocument.Content.End)

Ideen?

Hi Adone,

Vielen Dank. Leider gibt es Probleme mit dem makro.
Zunächst hat Word ein Problem mit dem „With“ in:

End With

Das habe ich dann einfach mal gelöscht.

keine gute Idee.

Anschließend verschluckt der Compiler sich an:

ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _
ActiveDocument.Content.End)

Ideen?

ja, nimm den Code wie er gepostet wurde, der Unterstrich bedeutet, diese Codezeile geht in der nächsten Zeile weiter.

Entferne diese Unterstriche am Ende einer Codezeile und mache aus jeder mehrzeiligen Codezeile einen Einzeiler.

Dann müßte m.E. der Fehler wegen „End With“ weg sein, sofern ich richtig geschaut habe beim Überflug über den Code.

Gruß
Reinhard

Hi,
die 1. Version habe ich eben mal ausgetestet. Bei mir läuft sie einwandfrei. Allerdings wurden die Klammern mit in die Fußnoten genommen. Deswegen hier Vers. 2. Weiter kann ich nicht helfen.

Gruß Wilhelm

Sub TestFussnotenErzeugen()
'***Der Codeschnipsel funktioniert, wenn Du a u s s c h l i e ß l i c h die _
zukünftigen Fußnotentexte in eckigen Klammern in Deinem Text hast.
'***Findet den geklamerten Text***
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = „[“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Extend
Selection.Extend Character:="]"
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Cut
Selection.Delete Unit:=wdCharacter, Count:=1

'***Fügt den zwischengespeicherten Text als Fußnote ein***
With ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _
ActiveDocument.Content.End)
With .FootnoteOptions
.Location = wdBottomOfPage
.NumberingRule = wdRestartContinuous
.StartingNumber = 1
.NumberStyle = wdNoteNumberStyleArabic
End With
.Footnotes.Add Range:=Selection.Range, Reference:=""
End With
Selection.PasteAndFormat (wdPasteDefault)
ActiveWindow.ActivePane.Close
'***Wiederholt die ersten beiden Schritte, bis keine Klammern mehr gefunden werden***
On Error GoTo Ende
Call TestFussnotenErzeugen
Ende:
End Sub