Loading
Word.Tips.Net WordTips (Menu Interface)

Limiting Directories in the FILENAME Field

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: Limiting Directories in the FILENAME Field.

The FILENAME field allows you to insert the name of the document file into the document itself. If you use the /p switch with the field, you get not only the file name, but also the full path for the file:

{ FILENAME /p }

As you can imagine, the path name can get rather long, depending on how your hard drive is organized and where you stored the document. For this reason, you may want to selectively choose which levels of the path are included in what FILENAME returns. For instance, the following may be the full path name for the document:

C:\My Documents and Settings\Level1\Level2\Level3\Level4\Doc1.doc

You might want to limit the directory levels displayed, as shown in these two examples:

\Level2\Level3\Level4\Doc1.doc
\Level1\Level2\Level3\Level4\Doc1.doc

Unfortunately, there is no way to do this with the FILENAME field itself; it just doesn't include that capability. The only solution is to create a macro that determines the path name and inserts the desired levels into the document. For instance, the following macro will inert, at the insertion point, the desired number of directory levels for the current file:

Sub SelectPaths()
    Dim sPath As String
    Dim sName As String
    Dim sFull As String
    Dim sPart As String
    Dim sMsg As String
    Dim sTemp As String
    Dim iLevels As Integer
    Dim J As Integer

    sPath = ActiveDocument.Path
    If sPath = "" Then
        MsgBox "Need to save before running this macro.", _
          vbOKOnly, "This Document Not Saved"
    Else
        sPath = sPath & Application.PathSeparator
        sName = ActiveDocument.Name
        sFull = sPath & sName

        sMsg = "This is the full path:" & vbCrLf
        sMsg = sMsg & sFull & vbCrLf & vbCrLf
        sMsg = sMsg & "How many levels do you want, counting "
        sMsg = sMsg & "from right to left?"

        sTemp = InputBox(sMsg)
        iLevels = Val(sTemp)

        sPart = ""
        If iLevels > 0 Then
            For J = Len(sFull) To 1 Step -1
                If Mid(sFull, J, 1) = Application.PathSeparator Then
                    iLevels = iLevels - 1
                    If iLevels = 0 Then
                        sPart = Mid(sFull, J, 255)
                        Exit For
                    End If
                End If
            Next J
        End If

        Selection.TypeText (sPart)
    End If
End Sub

If the document has not been saved, the macro won't run. It works by essentially counting the number of path separators (slashes), starting at the end of the path. It then inserts just the part of the path from that point forward.

The drawback to a macro like this, of course, is that it is not dynamic, as fields are. It simply inserts text. If you later change the location of the document, or if you change the document name, then you need to rerun the macro to insert the new path text.

If your reasoning behind inserting only a portion of the path is that the path is too long when included in its entirety, there is another approach that you might take. Why not simply reduce the point size of the portion of the path that is not important. For instance, let's say that you use the FILENAME field to insert the path, and it appears like this:

C:\My Documents and Settings\Level1\Level2\Level3\Level4\Doc1.doc

If you want to hide the part to the left of "Level2," just select that text in the field results, and format it as a very small point size. If you make the point size something like 6 or 7 points, the de-emphasized portion is still legible, but the full path doesn't take up as much linear space in your document. If you want the de-emphasized portion to essentially disappear, you can set the point size to 1 point.

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (6399) 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: Limiting Directories in the FILENAME Field.

Related Tips:

Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!

 

Leave your own comment:

*Name:
Email:
  Notify me about new comments ONLY FOR THIS TIP
Notify me about new comments ANYWHERE ON THIS SITE
Hide my email address
*Text:
*What is 5+3 (To prevent automated submissions and spam.)
 
 
           Commenting Terms

Comments for this tip:

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)
 
 

Our Company

Sharon Parq Associates, Inc.

About Tips.Net

Contact Us

 

Advertise with Us

Our Privacy Policy

Our Sites

Tips.Net

Beauty and Style

Cars

Cleaning

Cooking

DriveTips (Google Drive)

ExcelTips (Excel 97–2003)

ExcelTips (Excel 2007–2016)

Gardening

Health

Home Improvement

Money and Finances

Organizing

Pests and Bugs

Pets and Animals

WindowsTips (Microsoft Windows)

WordTips (Word 97–2003)

WordTips (Word 2007–2016)

Our Products

Helpful E-books

Newsletter Archives

 

Excel Products

Word Products

Our Authors

Author Index

Write for Tips.Net

Copyright © 2016 Sharon Parq Associates, Inc.