Win 3.1 é una piattaforma a 16bit, al contrario dei "nuovi" Win (dal 95 in poi) che sono a 32bit fino ad arrivare ai 64bit del nuovo XP (non tutte le versioni, c'è una versione speciale a 64bit).
Visual Basic dalla versione 5 compila progetti a 32 bit, che quindi funzionano in tutti i sistemi operativi dal 32 bit in poi (Windows of course). Per realizzare programmi per Win 3.1 (non é un pò vecchietto da fare girare su un pc??) bisogna che trovi VB4.
Per quanto riguarda l'NT non saprei, io creo i programmi con VB6 sotto WinXp (a 32bit) e funzionano sia su 95/98/ME che su 2000 ed XP (:quipy: )... Dato che 2000 ed XP derivano dall'NT potrebbe a prima vista sembra re che i programmi funzionino anche su NT, ma non te lo assicuro al 100%, diciamo al 50%. Probabilmente sono gli utenti di NT che devono scaricare i Service Pack per fare funzionare i programmi...

Ciao