Danke für Deine VBA-Lösung!
Ich habe sie so abgewandelt, daß der Text sofort in den Excel-Zellen erscheint. Dazu brauchen wir eine neue Funktion in Excel's VBA wie folgt:
VBA-Code
Delphi-Quellcode:
Public Function GetDelphiStringVektor(Anzahl As Long) ' entweder OHNE Typangabe oder As Variant, was gleichbedeutend ist, da dies eine Matrix-Funktion sein soll
' ... und so geht es direkt in die Zellen
Dim flist As String
Dim LngP As Long
Dim alist() As String
Const Delimiter = 124
Dim StrVektor() As String
Dim i As Long
Dim n_Anz As Long
Dim Bis As Long
LngP = PAnsiChar_To_Excel(Delimiter) ' >>> "|"
flist = VBStrFromAnsiPtr(LngP)
alist = Split(flist, "|")
n_Anz = UBound(alist) - LBound(alist) + 1
Bis = Anzahl
If n_Anz < Anzahl Then Bis = n_Anz ' Hat denn VBA keine Funktion wie Pascal's Min?? --> Bis := Min(a_Anz, Anzahl)
ReDim StrVektor(n_Anz, 0 To 0) ' SpaltenVektor
If flist > "" Then
For i = LBound(alist) To Bis - 1
StrVektor(i, 0) = alist(i)
Next
End If
GetDelphiStringVektor = StrVektor
End Function
Die beiden Lösungen sind zum Ausprobieren im beiliegenden Excel-File ToExcel_Test_2.xlsm vorhanden. Die
DLL bleibt unverändert, daher habe ich sie nicht noch einmal hochgeladen.
Gruß, Andreas