Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KirillPashkov/df27fe6f0e27d6aa7110a542cb216840 to your computer and use it in GitHub Desktop.
Save KirillPashkov/df27fe6f0e27d6aa7110a542cb216840 to your computer and use it in GitHub Desktop.
Function CreateCSV(InputMessageName,OutputMessageName,Delimiter)
Set sb = Application.CreateStringBuilder
If IsNull(Delimiter) OR IsEmpty(Delimiter) Then
Delimiter = ";"
End If
If IsNull(OutputMessageName) OR IsEmpty(OutputMessageName) Then
OutputMessageName = "CSV"
End If
Process.AddMessage OutputMessageName, Application.CreateMessage()
If Process.Message(InputMessageName).MessageCount > 0 Then
for i = 0 to Process.Message(InputMessageName).Message(0).FieldCount - 1
sb.Append CStr(IfNull(Process.Message(InputMessageName).Message(0).Field(i).Name,""))
If i < Process.Message(InputMessageName).Message(0).FieldCount - 1 Then
sb.Append CStr(Delimiter)
End If
Next
sb.Append(vbCrlf)
for i = 0 to Process.Message(InputMessageName).MessageCount - 1
for f = 0 to Process.Message(InputMessageName).Message(i).FieldCount - 1
sb.Append CStr(IfNull(Process.Message(InputMessageName).Message(i).Field(f).Value,""))
If f < Process.Message(InputMessageName).Message(i).FieldCount - 1 Then
sb.Append CStr(Delimiter)
End If
Next
sb.Append(vbCrlf)
Next
Process.GetMessage(OutputMessageName).AddField "Results", sb.ToString()
Process.GetMessage(OutputMessageName).AddField "ErrorCode", 0
Else
Process.GetMessage(OutputMessageName).AddField "ErrorCode", -1
End If
End Function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment