WD2000: Macro de ejemplo lista de todos los archivos en una carpeta

Seleccione idioma Seleccione idioma
Id. de artículo: 236162 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Este artículo contiene un ejemplo de Microsoft Visual Basic para aplicaciones macro que puede utilizarse para crear una lista de todos los archivos en una carpeta especificada. La macro devuelve la siguiente información en un documento de Word nuevo:
  • El nombre de carpeta de los archivos enumerados.
  • Nombre de archivo de los archivos encontrados.
  • Tamaño del archivo de los archivos encontrados.
  • La fecha y hora de los archivos encontrados.
  • El número total de archivos de la lista.
La macro crea una lista de archivos similar al ejemplo siguiente:
   File Listing of the C:\MY DOCUMENTS folder!

   File Name                       File Size       File Date/Time
   ----------------------------------------------------------------------

   Background.doc                  1461            2/24/99 2:16:52 PM
   Backup of Background.wbk        1461            2/24/99 2:14:10 PM
   Book1.xls                       15360           6/15/99 3:07:42 PM
   Book2.xls                       13824           11/12/98 4:28:50 PM
   Book3.xls                       13824           11/24/98 9:38:32 AM

   Total files in folder = 5 files.
				

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. La siguiente macro de ejemplo se muestra o se imprime el nombre de archivo, el tamaño del archivo y la fecha y hora de todos los archivos encontrados en la carpeta especificada:
Sub FolderList()
'
' Example Macro to list the files contained in a folder.
'

Dim x, fs
Dim I As Integer
Dim y As Integer
Dim Folder, MyName, TotalFiles, Response, PrintResponse, AgainResponse

On Error Resume Next

Folder:
' Prompt the user for the folder to list.
x = InputBox("What folder do you want to list?" & Chr$(13) & Chr$(13) _
   & "For example: C:\My Documents")

If x = "" Or x = " " Then
    Response = MsgBox("Either you did not type a folder name correctly" _
    & Chr$(13) & "or you clicked Cancel. Do you want to quit?" _
    & Chr$(13) & Chr$(13) & _
    "If you want to type a folder name, click No." & Chr$(13) & _
    "If you want to quit, click Yes.", vbYesNo)

        If Response = "6" Then
            End
        Else
            GoTo Folder
        End If
Else

' Test if folder exists.
Set Folder = CreateObject("Scripting.filesystemobject")
If Folder.folderexists(x) = "True" Then

' Search the specified folder for files and type the listing in the ' document.
    
    With Application.FileSearch
        Set fs = Application.FileSearch
        fs.NewSearch
            With fs.PropertyTests
                .Add Name:="Files of Type", _
                Condition:=msoConditionFileTypeAllFiles, _
                Connector:=msoConnectorOr
            End With
        .LookIn = x
        .Execute
        TotalFiles = .FoundFiles.Count
        
                If TotalFiles <> 0 Then
                
                    ' Create a new document for the file listing.
                    Application.Documents.Add
                    ActiveDocument.ActiveWindow.View = wdPrintView
                    
                    ' Set tabs.
                    Selection.WholeStory
                    Selection.ParagraphFormat.TabStops.ClearAll
                    ActiveDocument.DefaultTabStop = InchesToPoints(0.5)
                    Selection.ParagraphFormat.TabStops.Add _
                       Position:=InchesToPoints(3), _
                       Alignment:=wdAlignTabLeft, _
                       Leader:=wdTabLeaderSpaces
                    Selection.ParagraphFormat.TabStops.Add _
                       Position:=InchesToPoints(4), _
                       Alignment:=wdAlignTabLeft, _
                       Leader:=wdTabLeaderSpaces
                    
                    ' Type the file list headings.
                    Selection.TypeText "File Listing of the "
                    
                    With Selection.Font
                        .AllCaps = True
                        .Bold = True
                    End With
                    Selection.TypeText x
                    With Selection.Font
                        .AllCaps = False
                        .Bold = False
                    End With
                    
                    Selection.TypeText " folder!" & Chr$(13)
                    
                    With Selection.Font
                        .Underline = wdUnderlineSingle
                    End With
                    With Selection
                        .TypeText Chr$(13)
                        .TypeText "File Name" & vbTab & "File Size" _
                           & vbTab & "File Date/Time" & Chr$(13)
                        .TypeText Chr$(13)
                    End With
                        With Selection.Font
                        .Underline = wdUnderlineNone
                    End With
        
                Else
                    MsgBox ("There are no files in the folder!" & _
                       "Please type another folder to list.")
                    GoTo Folder
                End If
        
        For I = 1 To TotalFiles
            MyName = .FoundFiles.Item(I)
            .FileName = MyName
            Selection.TypeText .FileName & vbTab & FileLen(MyName) _
               & vbTab & FileDateTime(MyName) & Chr$(13)
        Next I
        
        ' Type the total number of files found.
        Selection.TypeText Chr$(13)
        Selection.TypeText "Total files in folder = " & TotalFiles & _
           " files."
    
    End With
    
    Else
        MsgBox "The folder does not exist. Please try again."
        GoTo Folder
    End If
End If

PrintResponse = MsgBox("Do you want to print this folder list?", vbYesNo)
    If PrintResponse = "6" Then
        Application.ActiveDocument.PrintOut
    End If
    
AgainResponse = MsgBox("Do you want to list another folder?", vbYesNo)
    If AgainResponse = "6" Then
        GoTo Folder
    Else
        End
    End If

End:
End Sub
				

Referencias

Para obtener información adicional acerca de cómo utilizar el código de ejemplo de este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
212536OFF2000: Cómo ejecutar código de ejemplo de artículos de Knowledge Base

Para obtener más información acerca de Visual Basic para Aplicaciones, consulte el siguiente artículo en Microsoft Knowledge Base:
226118OFF2000: Recursos de programación para Visual Basic para aplicaciones

Propiedades

Id. de artículo: 236162 - Última revisión: miércoles, 11 de octubre de 2006 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft Word 2000 Standard Edition
Palabras clave: 
kbmt kbhowto kbmacroexample kbprogramming KB236162 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 236162

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com