Und nun noch ein paar Ergänzungen:
Der MSDASQL-OLEDB-Treiber stammt noch aus Zeiten vor ODBC 3.51. Erst ab ODBC 3.51 wird auch Unicode beim Lesen unterstützt.
Für das Senden von Unicode ist das ja kein Problem, da du ja Parameter gezielt mit adVarWChar definieren kannst.
Laut SQL-Trace bindet der MSDASQL leider bei einem Recordset mit adChar so dass Unicode eben verloren geht.

Excel selber verwendet die neu Jet-Engine 4.0 mit SQL-Pasthru-Abfragen.
Hier funktioniert das Binden also mit adVarWChar so dass Unicode funktioniert.

Um also dein AddIn dynamisch zu machen, füllst du die Connection-Egenschaft des QueryTable-Objekts mit "ODBC;Verbindungsfolge", den CommandText und wendest die Methode Refresh an.

Vor mehreren Verbindungen brauchst du keine Angst zu haben, da der ConnectionPool standardmäßig aktiviert ist.

Bei der Verwendung des IBMDA400/IBMDASQL muss leider in der Verbindungsfolge die Konvertierung von DateTime gezielt ausgeschaltet werden:

IBM i Support: Software Technical Document : 23062121

Convert Date Time to Char = False;