See if this will do
Sub CreateCSV()
' This procedure will create custom CSV file structure
Dim rCell, rRow As Range
Dim vaColPad As Variant
Dim i, lFNum As Long
Dim sOutput As String
Dim sFname As String
' Required width of columns
' This is set to have 5 columns
' A B C D E
' 0 0 6 0 4 padding of zeroes - none, none, 6, none, 4 - you get the idea
vaColPad = Array(6, 3, 0, 0, 10) ' modify your paddings here
i = LBound(vaColPad)
sFname = Application.GetSaveAsFilename( _
InitialFileName:="CommaSeparatedValues.csv", _
FileFilter:="Comma Separated Values, *.csv", _
Title:="Save Comma Separated Values File")
lFNum = FreeFile
Open sFname For Output As lFNum
'Loop through the rows
For Each rRow In Sheet1.UsedRange.Rows
'Loop through the cells in the rows
For Each rCell In rRow.Cells
'If the cell value is less than required, then pad
'it with zeros, else just use the cell value
If Len(rCell.Value) < vaColPad(i) Then
sOutput = sOutput & Application.Rept(0, _
vaColPad(i) - Len(rCell.Value)) & rCell.Value & ","
Else
sOutput = sOutput & rCell.Value & ","
End If
i = i + 1
Next rCell
'remove the last comma
sOutput = Left(sOutput, Len(sOutput) - 1)
'write to the file and reinitialize the variables
Print #lFNum, sOutput
sOutput = ""
i = LBound(vaColPad)
Next rRow
Close lFNum
End Sub