Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Inserting a File Name without an Extension.
Written by Allen Wyatt (last updated April 15, 2020)
This tip applies to Word 97, 2000, 2002, and 2003
You can use the FILENAME field to insert the current document's file name in your document. The exact way you use this field is described in other issues of WordTips. You can use field switches to specify whether you want the field results to include the full path for the file, or not. One thing you cannot specify, however, is whether you want the results to exclude the file extension.
One way you can control this is by configuring Windows to either display or hide filename extensions. You do that within Windows itself by displaying a folder on your hard drive and then choosing Tools | Folder Options and displaying the View tab.
Scroll through the list of viewing settings, and make sure that the Hide Extensions for Known File Types is set the way you want it. If the check box is clear, then Windows (and Word) always displays the file extension. If it is checked, then the file extension is not displayed.
This approach works great as long as the documents are being viewed on your system. If the document is opened on someone else's system, then the FILENAME field will display the file extension according to the configuration of Windows that they have set up; this may be a drawback.
An easy way to insert the file name without the extension is to use a different field. For instance, you could use File | Properties to set the Title field to the document name (type it in manually) without the extension. You could then use the DOCPROPERTY field to recall that title and insert it in your document.
If you need to insert the document name quite often, the best way to do it is with a macro. Consider the following single-line macro:
Sub InsertFileName() Selection.InsertBefore Text:=Left(ActiveDocument.Name, _ Len(ActiveDocument.Name) - 4) End Sub
Run this macro, and the name of your document (without the file extension) is inserted before whatever is selected in your document. The macro examines the document name, and then strips the last four characters (the period and file extension) from the name. This is what is inserted.
Using this approach is very easy, but it isn't dynamic. This means that if the document name is changed, then the text in the document still reflects the old document name, not the new one. The way around that is to simply run the macro again to insert the new document name at whatever point you want it to appear.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (292) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Inserting a File Name without an Extension.
Learning Made Easy! Quickly teach yourself how to format, publish, and share your content using Word 2013. With Step by Step, you set the pace, building and practicing the skills you need, just when you need them! Check out Microsoft Word 2013 Step by Step today!
Need a series of documents that include an individual's name or a company name? Here's a handy little macro that will ...
Discover MoreWord has a feature called AutoRecover that helps you when Word or Windows crashes. If your Normal template gets messed up ...
Discover MoreIf you need to change text in many documents at the same time, Word isn't the best tool to use. Here's some ideas on ways ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2017-05-22 05:10:09
EDIT:
Actually I forgot the important extra
VBA.
bit on my Len ....
This would be my unpolished version
Selection.InsertBefore Text:=VBA.Left$(ActiveDocument.Name, VBA.Len(ActiveDocument.Name) - 4)
:)
2017-05-22 05:05:49
I would tend to prefer the “unpolished” in a final code. I would tend to prefer to keep it simpler to follow later as well as possibly being a bit quicker.
I might then in the ‘Comments hidden to the right include a fuller version and fuller explanation
The following is how I would do it. The uncommented part is almost the same as Allen’s ( If you copy it all to the code window it does not look as bad as the ‘Commented parts going off to the right in a long single row, and so you only see them for later reference if you scroll to the right ). So my opinion best of both worlds.
Sub InsertFileNameEP()
Selection.InsertBefore Text:=VBA.Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4) ' Text:=VBA.Strings.Left$(ActiveDocument.Name, (VBA.Strings.InStrRev(ActiveDocument.Name, ".", -1, vbBinaryCompare) - 1)) ' The $ sometimes thought to a bit quicker as it expects a string as argument, it may then error - for the case of Null as argument. I get the length of up to the extension point by InStrRev looking from right but counting position from the left ( in the string , looking from the right for a point character "." , -1 means start looking from the last character , vbBinaryCompare is case sensitive and possibly a bit quicker ) then take away 1 to get the length to just before the point VBA. Will ensure we go to the correct Library, as sometimes (in XL mostly between XL2007 and XL2010 I have seen codes have errored for string functions as they go to the wrong default library )
End Sub
Allen’s version is fine in my opinion to demo the basic idea. My long ‘comments are just a personal preference
Alan
:-)
2017-05-21 05:13:19
Petyka
Wow. Removing the extension by subtracting 4 from the length. How unpolished...
2016-06-12 13:17:02
Vik
How do I append the value (in a bookmark), to the file name?
Say, file name is 123.doc.
bookmark value is Richard
I need result , filename to be changed to 123Richard.doc ?
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments