Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 01-23-2013, 09:04 AM
ndnd ndnd is offline Windows 7 32bit Office 2010 32bit
Novice
 
Join Date: Jan 2013
Posts: 5
ndnd is on a distinguished road
Default VBA code for Microsoft Word macro — select text and insert footnote


Hi everyone,

I am trying to automate a repeated task in MS Word by using a macro, which is as follows: In a Word document, I would like to select a word or a phrase using the mouse, and run a macro. The macro should (1) Insert a footnote at the end of my selected word or phrase, and (2) copy the selected text to the footnote, but italicised, and followed by a colon. Could anyone help me with the VB code for this? As a beginner, I don't really know where to start and am hoping that the community can help me with this.
Reply With Quote
  #2  
Old 01-23-2013, 09:17 AM
gmaxey gmaxey is offline Windows 7 32bit Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,427
gmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the rough
Default

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oFN As Footnote
Set oFN = Selection.Range.Footnotes.Add(Selection.Range, , Selection.Text & ":")
oFN.Range.Font.Italic = True
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #3  
Old 01-23-2013, 09:55 AM
ndnd ndnd is offline Windows 7 32bit Office 2010 32bit
Novice
 
Join Date: Jan 2013
Posts: 5
ndnd is on a distinguished road
Default

That's just the thing, Greg -- thanks ever so much. Just a couple of questions: (1) This italicises the whole phrase and the colon at the moment -- how could I ensure that the colon isn't italicised? (2) Is there a way in VB to get the cursor to focus on the footnote after the colon, i.e. at the point of insertion? I don't actually need the latter at the moment, but trying to learn what to do if I did need it!
Reply With Quote
  #4  
Old 01-23-2013, 10:03 AM
gmaxey gmaxey is offline Windows 7 32bit Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,427
gmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the rough
Default

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oFN As Footnote
Dim oRng As Word.Range
Set oFN = Selection.Range.Footnotes.Add(Selection.Range, , Selection.Text & ": ")
Set oRng = oFN.Range
oRng.MoveEnd wdCharacter, -1
oRng.Font.Italic = True
oRng.Collapse wdCollapseEnd
oRng.Move wdCharacter, 2
oRng.Select
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #5  
Old 01-23-2013, 10:23 AM
ndnd ndnd is offline Windows 7 32bit Office 2010 32bit
Novice
 
Join Date: Jan 2013
Posts: 5
ndnd is on a distinguished road
Default

Hi, I had to change
oRng.MoveEnd wdCharacter, -2 (rather than -1), so that the colon was not italicised since we add a whitespace after the colon before that, but apart from that, it works perfectly. Thanks!
Reply With Quote
  #6  
Old 01-23-2013, 11:08 AM
ndnd ndnd is offline Windows 7 32bit Office 2010 32bit
Novice
 
Join Date: Jan 2013
Posts: 5
ndnd is on a distinguished road
Default

A final question -- is it possible to use string manipulation on the selected text before putting it in the footnote? The reason I ask is this: quite often, I have to select a word or phrase with the punctuation that follows, because I want the footnote reference number to appear immediately after the punctuation. However, I don't want the punctuation to appear in the text when it is copied to the footnote -- I just want that unitalicised colon instead. So, I wondered whether there is a way to check the Selection.Text to see if there is a final punctuation, and if there is, to ignore that and copy the rest. Thanks.
Reply With Quote
  #7  
Old 01-23-2013, 12:55 PM
gmaxey gmaxey is offline Windows 7 32bit Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,427
gmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the rough
Default

Next time, please try to fully define your requirements up front?

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oFN As Footnote
Dim oRng As Word.Range
Dim strText As String
strText = Selection.Text
If Left(strText, 1) Like "[!?,.;:]" Then
  strText = Left(strText, Len(strText) - 1)
End If
Set oFN = Selection.Range.Footnotes.Add(Selection.Range, , strText & ": ")
Set oRng = oFN.Range
oRng.MoveEnd wdCharacter, -2
oRng.Font.Italic = True
oRng.Collapse wdCollapseEnd
oRng.Move wdCharacter, 2
oRng.Select
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #8  
Old 01-23-2013, 01:15 PM
ndnd ndnd is offline Windows 7 32bit Office 2010 32bit
Novice
 
Join Date: Jan 2013
Posts: 5
ndnd is on a distinguished road
Default

Thanks, Greg! I know -- it's just that I was trying to figure out the additional bits for myself, but obviously didn't do very well with that plan! This is perfect, though, and helps me see exactly how it should be done.
Reply With Quote
  #9  
Old 01-06-2015, 09:23 AM
potiphar potiphar is offline Windows 7 64bit Office 2010 32bit
Novice
 
Join Date: Jan 2015
Posts: 2
potiphar is on a distinguished road
Default

Apologies for resurrecting this thread. This is almost the macro I need also, but I need endnotes instead of footnotes, and I need the page number of the initial selection to be put before the selected text in the endnote.

From working with this, it looks like I can just change the footnote references to endnote, but how do I put the page number of the selection in the footnote?

Quote:
Originally Posted by gmaxey View Post
Next time, please try to fully define your requirements up front?

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oFN As Footnote
Dim oRng As Word.Range
Dim strText As String
strText = Selection.Text
If Left(strText, 1) Like "[!?,.;:]" Then
  strText = Left(strText, Len(strText) - 1)
End If
Set oFN = Selection.Range.Footnotes.Add(Selection.Range, , strText & ": ")
Set oRng = oFN.Range
oRng.MoveEnd wdCharacter, -2
oRng.Font.Italic = True
oRng.Collapse wdCollapseEnd
oRng.Move wdCharacter, 2
oRng.Select
End Sub
Reply With Quote
  #10  
Old 01-06-2015, 01:23 PM
gmaxey gmaxey is offline Windows 7 32bit Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,427
gmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the rough
Default

Try:

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oFN As Endnote
Dim oRng As Word.Range
Dim strText As String
strText = Selection.Text
Debug.Print Left(strText, 1)
If Left(strText, 1) Like "[\!?,.;:]" Then
  strText = Left(strText, Len(strText) - 1)
End If
Set oFN = Selection.Range.Endnotes.Add(Selection.Range, , Selection.Information(wdActiveEndPageNumber) & " " & strText & ": ")
Set oRng = oFN.Range
oRng.MoveEnd wdCharacter, -2
oRng.Font.Italic = True
oRng.Collapse wdCollapseEnd
oRng.Move wdCharacter, 2
oRng.Select
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #11  
Old 01-06-2015, 01:47 PM
potiphar potiphar is offline Windows 7 64bit Office 2010 32bit
Novice
 
Join Date: Jan 2015
Posts: 2
potiphar is on a distinguished road
Default

That does the trick, Greg! Thank you! Repped.
Reply With Quote
Reply

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Insert a footnote in PPT 2010 YooNaa Kim PowerPoint 1 06-17-2012 12:04 PM
Macro for microsoft Word blukava Word VBA 7 05-27-2012 02:43 PM
Macro to Insert Text Into Cells Having Multiple Lines revans611 Excel Programming 4 10-24-2011 10:15 AM
Formula to select description when code is entered Natasha Excel 1 09-25-2011 12:59 PM
Microsoft Word 2003/footnote compatibility bonanzajellybean Word 1 05-31-2011 03:31 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 03:03 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft