He encontrado una publicación de blog que describe una Solución de Apple a un problema similar. Lo he adaptado a tus necesidades. Tenga en cuenta que no he hecho ninguna cotización adecuada de los valores de las celdas ni nada, necesitará algunos ajustes para ser más robusto. Tampoco es la solución más rápida en mis pruebas mínimas ... pero es un comienzo.
La clave es write X to openFile as «class utf8»
tell application "Microsoft Excel"
activate
set outFile to (path of active workbook)
set fileName to (name of active workbook)
set outFile to (outFile & ":" & fileName & ".csv")
set openFile to open for access file outFile with write permission
set eof openFile to 0
set lastCol to count of columns of used range of active sheet
set lastRow to count of rows of used range of active sheet
repeat with r from 1 to lastRow
set rowStr to (value of cell r of column 1 of active sheet)
repeat with c from 2 to lastCol
set cellVal to (value of cell r of column c of active sheet)
set rowStr to rowStr & "," & cellVal
end repeat
write rowStr & return to openFile as «class utf8»
end repeat
close access openFile
end tell