Mi sembra che per far interagire VB6 (o VBA) con le DLL scritte in C++, la DLL deve avere la specifica __stdcall e non __declspec come hai tu.
Anche io tempo fa ho avuto il tuo stesso problema, ed ho dovuto scrivermi in C++ unu wrapper, cioè una DLL che faceva da tramite tra il programma in VB6 e la DLL che dovevo usare.
La DLL scritta da me aveva quindi tutte le funzioni specificate come __stdcall e chiamava le funzioni della DLL originale.
Sergio