Tabellen mit VBA als Textdateien exportieren

Mit Hilfe eines VBA-Programms möchten Sie eine Excel-Tabelle ins Textformat speichern. Dabei sollen die Spalten durch ein Semikolon getrennt sein. Das Problem: Das VBA-Programm nutzt nur Kommata zum Unterteilen.

Das ist ein Fehler von Excel 97 beim Speichern von CSV-Dateien, die als Trennzeichen das Semikolon verwenden. Während das Programm beim Speichern über »Datei | Speichern unter« mit dem Strichpunkt arbeitet, nutzt das englische VBA fälschlicherweise das englische Trennzeichen – also ein Komma. In Excel 2000 ist dieses Problem behoben.

Um auch mit Excel 97 per VBA eine Textdatei mit Semikola als Trennzeichen zu erzeugen, müssen Sie Ihre Exportroutine wie folgt anpassen:


Sub exportCSV()
On Error GoTo Err_exportCSV

Dim mySection As Object æ mySection
Dim myRow As Object æ Zeile
Dim myCell As Object æ Zelle
Dim strSeparator As String
Dim strFile As String
Dim strTemp As String
Const DlgMeldung = äGeben Sie bitte Pfad und Dateinamen der Zieldatei ein!ô
Const DlgTitel = äEingabe der Zieldateiô
Const Trennzeichen As String = ä;ô

strFile = InputBox(DlgMeldung, DlgTitel, äô)
strSeparator = äô
Set mySection = ActiveSheet.UsedRange
Open strFile For Output As #1
For Each myRow In mySection.Rows
For Each myCell In myRow.Cells
If InStr(1, myCell.Text, ä;ô) > 0 Then
strTemp = strTemp & strSeparator & äôäô & CStr(myCell.Text) & äôäô
Else
strTemp = strTemp & strSeparator & CStr(myCell.Text)
End If
strSeparator = Trennzeichen
Next
Print #1, strTemp
strTemp = äô
strSeparator = äô
Next

Close #1
Set mySection = Nothing

Exit_exportCSV:
Exit Sub

Err_exportCSV:
MsgBox Err.Description
Resume Exit_exportCSV

End Sub



Das gesamte Listing finden Sie auf der Heft-CD CHIP-Code CSVEXPRT.