#1
|
|||
|
|||
Transfer text to footnotes
Hi!
I'm using a macro to transform every bit of green text in a document into footnotes. A person within the community of a software I use kindly shared the code to this macro. It's the followin one: Quote:
I'm running a Microsoft Word 2016 (Office 365) in Windows 8.1. Please note that the macro is working; it just doesn't transform the several pieces into footnotes all at once. Best regards, Thiago |
#2
|
||||
|
||||
For a much more efficient macro, try:
Code:
Sub Demo() Application.ScreenUpdating = False Dim Rng As Range, FtNt As Footnote With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = "" .Replacement.Text = "" .Forward = True .Format = True .Font.ColorIndex = wdGreen .Wrap = wdFindStop .MatchWildcards = True .Execute End With Do While .Find.Found Set Rng = .Duplicate .Collapse wdCollapseStart Set FtNt = .Footnotes.Add(.Duplicate) Rng.Start = FtNt.Reference.End FtNt.Range.FormattedText = Rng.FormattedText Rng.Delete If .End = ActiveDocument.Range.End Then Exit Sub .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Thank you!
I've tried, but unfortunately the file keeps loading while the macro runs endlessly. Could it be because I'm running Microsoft Word 2016 (Office 365)? PS: I've just replaced the old code for this new one. I don't know if I should do something else. I've just opened the Macro dialog window and then I've clicked "edit"; so I was able to do the replacement. |
#4
|
||||
|
||||
I don't understand your 'the file keeps loading while the macro runs endlessly' comment. The macro doesn't load any files. All it does is find all green text in the active document and convert that text to footnotes. The Word version is of no consequence
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
Sorry, I didn't express myself correctly. I mean I run the macro, but instead of converting all the green text into footnotes, MS Word begins to not respond anymore (this is what I meant by "the macro runs endlessly"). It crashes, so to speak.
|
#6
|
||||
|
||||
I am unable to reproduce that behaviour, regardless of where the content might be in the document body.
Can you attach the problem document to a post (delete/obfuscate anything sensitive)?
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#7
|
|||
|
|||
Sure!
I'm attaching the file I was using as a test. Now it seems that when I run the macro nothing happens. I'm pretending to edit a large document (probably 30k words). I also don't know if the amount of words would matter in this case. |
#8
|
|||
|
|||
I've just realized that I've used a different shade of green in the document I've previously attached. That's the reason why nothing has happened when I tried to run the macro.
Now I'm sending the same document, but with the appropriate green color. Now you'll see the behavior I've mentioned early: you run the macro and the MS Word stops responding. Thank's in advance, Thiago |
#9
|
||||
|
||||
The problem with your document is that it has trailing spaces & paragraph breaks formatted green. The following code revision will take care of that (plus tabs & line breaks):
Code:
Sub Demo() Application.ScreenUpdating = False Dim Rng As Range, FtNt As Footnote With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = "" .Replacement.Text = "" .Forward = True .Format = True .Font.ColorIndex = wdGreen .Wrap = wdFindStop .MatchWildcards = True .Execute End With Do While .Find.Found If .Characters.Last Like "[" & vbCr & vbTab & Chr(11) & Chr(160) & " ]" Then .Characters.Last.Font.Reset .End = .End - 1 End If Set Rng = .Duplicate .Collapse wdCollapseStart Set FtNt = .Footnotes.Add(.Duplicate) Rng.Start = FtNt.Reference.End FtNt.Range.FormattedText = Rng.FormattedText Rng.Delete If .End = ActiveDocument.Range.End Then Exit Sub .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#10
|
|||
|
|||
Wow! This is truly amazing! It works perfectly. Thank you very much!
|
#11
|
|||
|
|||
Hi there!
Sorry for taking back an old thread. The macro below transforms text in green color into footnotes. Code:
Sub Demo() Application.ScreenUpdating = False Dim Rng As Range, FtNt As Footnote With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = "" .Replacement.Text = "" .Forward = True .Format = True .Font.ColorIndex = wdGreen .Wrap = wdFindStop .MatchWildcards = True .Execute End With Do While .Find.Found If .Characters.Last Like "[" & vbCr & vbTab & Chr(11) & Chr(160) & " ]" Then .Characters.Last.Font.Reset .End = .End - 1 End If Set Rng = .Duplicate .Collapse wdCollapseStart Set FtNt = .Footnotes.Add(.Duplicate) Rng.Start = FtNt.Reference.End FtNt.Range.FormattedText = Rng.FormattedText Rng.Delete If .End = ActiveDocument.Range.End Then Exit Sub .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub This is normal text.[!This should be turned into a footnote.!] This is normal text. This is normal text... And so on. Is that possible? Thank's in advance, Thiago |
#12
|
||||
|
||||
Change:
Code:
.Text = "" .Replacement.Text = "" .Forward = True .Format = True .Font.ColorIndex = wdGreen Code:
.Text = "\[\!*\!\]" .Replacement.Text = "" .Forward = True .Format = False
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#13
|
|||
|
|||
Fantastic! Thank you very much!
If it's not too much trouble: would there also be a macro to do just the opposite (turn footnotes into delimited fragments between "[!" and "!]" in the body of the text)? |
#14
|
||||
|
||||
Simple:
Code:
Sub Demo() Application.ScreenUpdating = False With ActiveDocument Do While .Footnotes.Count > 0 With .Footnotes(1) .Reference.InsertAfter "[!" & .Range.FormattedText & "!]" .Delete End With Loop End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#15
|
|||
|
|||
macropod, thank you very very much! And sorry for the late reply.
Thiago |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to change superscript footnotes into genuine Word footnotes | Knounte29 | Word VBA | 41 | 01-16-2020 04:48 PM |
Help with Tracking: Bold in body text, but not in Footnotes | Bobbety | Word | 3 | 05-17-2015 11:17 PM |
word 2007 - footnotes and text box | glggluig | Word | 1 | 08-10-2014 04:09 AM |
All my footnotes turned to blue underlined text. | bww | Word | 0 | 07-11-2013 08:35 AM |
create footnotes from custom text | mosrozen | Word VBA | 2 | 06-14-2012 06:59 AM |