title: Listing files from subdirectories in vb into cells in excel with hyperlinks
body: <p>Listing files from a directory in an excel sheet? and adding hyperlinks to the results.</p>
  
  <p>Added 
  "
      With Application.FileDialog(msoFileDialogFolderPicker)
          .AllowMultiSelect = False
          .Show
          On Error Resume Next
              strTopFolderName = .SelectedItems(1)
               Err.Clear
          On Error GoTo 0
      End With
  "</p>
  
  <p>This enabled used selection from a top directory.</p>
  
  <p>Sub ListFiles()</p>
  
  <pre><code>    'Set a reference to Microsoft Scripting Runtime by using
      'Tools &gt; References in the Visual Basic Editor (Alt+F11)
  
      'Declare the variables
      Dim objFSO As Scripting.FileSystemObject
      Dim objTopFolder As Scripting.Folder
      Dim strTopFolderName As String
  
      'Insert the headers for Columns A through F
      Range("A1").Value = "File Path"
      Range("B1").Value = "File Size"
      Range("C1").Value = "File Type"
      Range("D1").Value = "Date Created"
      Range("E1").Value = "Date Last Accessed"
      Range("F1").Value = "Date Last Modified"
      Range("G1").Value = "Original Document Date" 
  
      'Assign the top folder to a variable
      strTopFolderName = "Y:\master-documentation" 'want to be user selectable!
  
      'Create an instance of the FileSystemObject
      Set objFSO = CreateObject("Scripting.FileSystemObject")
  
      'Get the top folder
      Set objTopFolder = objFSO.GetFolder(strTopFolderName)
  
      'Call the RecursiveFolder routine
      Call RecursiveFolder(objTopFolder, True)
  
      'Change the width of the columns to achieve the best fit
      Columns.AutoFit
  
  End Sub
  
  Sub RecursiveFolder(objFolder As Scripting.Folder, _
      IncludeSubFolders As Boolean)
  
      'Declare the variables
      Dim objFile As Scripting.File
      Dim objSubFolder As Scripting.Folder
      Dim NextRow As Long
  
      'Find the next available row
      NextRow = Cells(Rows.Count, "A").End(xlUp).Row + 1
  
      'Loop through each file in the folder
      For Each objFile In objFolder.Files
          Cells(NextRow, "A").Value = objFile.Path
          Cells(NextRow, "B").Value = objFile.Size
          Cells(NextRow, "C").Value = objFile.Type
          Cells(NextRow, "D").Value = objFile.DateCreated
          Cells(NextRow, "E").Value = objFile.DateLastAccessed
          Cells(NextRow, "F").Value = objFile.DateLastModified
          NextRow = NextRow + 1
      Next objFile
  
      'Loop through files in the subfolders
      If IncludeSubFolders Then
          For Each objSubFolder In objFolder.SubFolders
              Call RecursiveFolder(objSubFolder, True)
          Next objSubFolder
      End If
  
  End Sub
  </code></pre>