Beispielmakro für ein ODF-Tabellendokument (*.ods):
(getestet mit Open Office 2.4.1)
Sub EAC_S_Wave
Dim FileNr As Integer
Dim FileName As String
Dim HeaderData() As Integer
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
'Initalisiere Header-Data
HeaderData = Array(&h4952,&h4646,&h1C44,&h0000,&h4157,&h4556,_
&h6D66,&h2074,&h0010,&h0000,&h0001,&h0001,&hFFFFBF20,&h0002,_
&h7E40,&h0005,&h0002,&h0010,&h6164,&h6174,&h1C20,&h0000)
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(0, 0)
if(Cell.String = "") then
MsgBox("Please insert file name at pos A1 (without extention)")
Exit Sub
endif
'WAV-Datei öffnen
FileName = Cell.String+".WAV"
FileNr = Freefile
Open FileName For Random As #FileNr
Seek #FileNr,1
'Headerdaten schreiben
For i% = 0 To 21
x% = HeaderData(i%) 'Achtung! Variable nicht direkt zuweisen,
Put #FileNr,,x%
'da diese intern als Long behandelt wird!
Next i%
'Wavedaten schreiben
For i% = 1 To 3600
Cell = Sheet.getCellByPosition(0, i%)
x% = Cell.Value
Put #FileNr,,x%
Next i%
Close #FileNr
End Sub
68
ET System electronic GmbH