That's a hecka lotta code.

A VB one would be much less work, it seems?