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.
With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company.
Learn more about Allen...
Users of WordPerfect may be familiar with the feature that allows you to print the contents of a directory. Indeed, it can be very handy to have a printout of all the documents in a directory. Unfortunately, Word does not have an intrinsic command that allows you to accomplish the same task. There are a couple of ways you can approach this problem, however.
The first is the old tried-and-true DIR method, which has been used by "techies" since the days of DOS. Simply open a command prompt (MS-DOS) window, locate the directory for which you want a list, and then type the following command:
dir /b > mydir.txt
This creates a text file (mydir.txt) that contains only the names of the files in the directory. You can then locate the file in Word and load it as a document. While this approach is not a single step, it is not particularly difficult, either.
If you would like a macro solution to the problem, you can use the following. It displays the standard Open dialog box, in which you can browse for the directory for which you want a list. When you select a file in that directory and click on Open, the macro creates a new Word document that lists all the files that the directory contains. Note that you must select a file from the directory.
Sub ListFiles() Dim PathWanted As String Dim Temp As String Dim i As Integer With Dialogs(wdDialogFileOpen) .Name = "*.*" If .Display = -1 Then Documents.Add PathWanted = Options.DefaultFilePath(wdDocumentsPath) Selection.TypeText "Files in " & PathWanted & ":" & vbCrLf With Application.FileSearch .LookIn = PathWanted .FileName = "*.*" If .Execute > 0 Then For i = 1 To .FoundFiles.Count Temp = .FoundFiles(i) While InStr(Temp, "\") > 0 Temp = Mid(Temp, InStr(Temp, "\") + 1) Wend Selection.TypeText Temp & vbCrLf Next End If End With End If End With End Sub
If you want to limit the files returned by the macro (for instance, to only those ending in .DOC), then you can change the file specifications ("*.*") in two of the program lines.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1148) applies to Microsoft Word 97, 2000, 2002, and 2003.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!