In a previous post I described how to set up a batch file to create a list of files in a directory, specifically MS Excel files.
Sample Excel file with VBA in it.
Question:
Have you ever wanted to bring the data from a set of standardized files into one file using automation?
If so, this blog represents step 2—generating the list remotely. Refer to my previous post to learn how the batch file works.
Tools: MS Excel, MS Windows
Fast Answer–MS Excel VBA Code:
Sub Build_Bat() ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Build_Bat generates a batch file ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim FileNum As Integer Dim Filepath As String Dim Folder As String Filepath = <<Enter your file path here with a closing \>> & "filelist.bat" '’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ' ' Example: Filepath = "C:\Users\Alexander zbiciak\Batch Example\" & "filelist.bat" ' '’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ 'create spot for batch file FileNum = FreeFile() 'open file Open Filepath For Output As #FileNum 'write batch file Print #FileNum, "pushd " & Folder Print #FileNum, "filetorun -options" Print #FileNum, "dir /b *.xls? > fileslist.txt" Close #FileNum End Sub
Before Macro is run:
After Macro is run:
How To:
First open up Excel and be sure you have the developer tab enabled in your ribbon:
File >> Options >> Customize Ribbon >> Developer
Select the Developer Tab and then the Visual Basic Icon to open your editor:
Inside the editor you will need to add a module if there are none or open one you want to add this code to:
With your module open copy the code below and paste it in (be sure to change your file path):
Sub Build_Bat() ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Build_Bat generates a batch file ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim FileNum As Integer Dim Filepath As String Dim Folder As String Filepath = <<Enter your file path here with a closing \>> & "filelist.bat" '’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ' ' Example: Filepath = "C:\Users\Alexander zbiciak\Batch Example\" & "filelist.bat" ' '’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ 'create spot for batch file FileNum = FreeFile() 'open file Open Filepath For Output As #FileNum 'write batch file Print #FileNum, "pushd " & Folder Print #FileNum, "filetorun -options" Print #FileNum, "dir /b *.xls? > fileslist.txt" Close #FileNum End Sub
Test your macro by opening the file path in the Windows file explorer. Leave this open so you can watch the VBA output:
With the file explorer window to the side, place your cursor inside the VBA code and then click the play button:
Congratulations—You have now published a batch file from MS Excel.







