MY only question is when saving the file is how do I set the files attributes (I need to make it hidden).

this is the code I use to create the excel spreadsheet.

[vba]
'sdir is a directory created in code.
'filepathforxl and excelfilename are constants

Public Const FIELDNAME_1 As String = "Correspondence"
Public Const FIELDNAME_2 As String = "Title"
Public Const FIELDNAME_3 As String = "First Name"
Public Const FIELDNAME_4 As String = "Surname"
Public Const FIELDNAME_5 As String = "Company Name"
Public Const FIELDNAME_6 As String = "Address"
Public Const FIELDNAME_7 As String = "Town"
Public Const FIELDNAME_8 As String = "Country"
Public Const FIELDNAME_9 As String = "Postcode"
Public Const FIELDNAME_10 As String = "DX Number"
Public Const FIELDNAME_11 As String = "DX Exchange"
Public Const FIELDNAME_12 As String = "Fax Number"
Public Const FIELDNAME_13 As String = "E-Mail"
Public Const FIELDNAME_14 As String = "Reference"
Public Const FIELDNAME_15 As String = "Heading"

Private Sub createExcelFileForHeading(sDir As String)
Dim ObjExcel As Excel.Application
Dim Wkb As Excel.Workbook
Dim WS As Excel.Worksheet

Set ObjExcel = New Excel.Application
Set Wkb = ObjExcel.Workbooks.Add
Set WS = Wkb.Sheets("Sheet1")
WS.Range("A1").Value = FIELDNAME_1
WS.Range("B1").Value = FIELDNAME_2
WS.Range("C1").Value = FIELDNAME_3
WS.Range("D1").Value = FIELDNAME_4
WS.Range("E1").Value = FIELDNAME_5
WS.Range("F1").Value = FIELDNAME_6
WS.Range("G1").Value = FIELDNAME_7
WS.Range("H1").Value = FIELDNAME_8
WS.Range("I1").Value = FIELDNAME_9
WS.Range("J1").Value = FIELDNAME_10
WS.Range("K1").Value = FIELDNAME_11
WS.Range("L1").Value = FIELDNAME_12
WS.Range("M1").Value = FIELDNAME_13
WS.Range("N1").Value = FIELDNAME_14
WS.Range("O1").Value = FIELDNAME_15
Wkb.SaveAs FileName:=FilePathForXL + sDir + ExcelFilename
Wkb.Close Savechanges:=True
Set ObjExcel = Nothing
Set Wkb = Nothing
Set WS = Nothing
End Sub[/vba]