C# が使えるなら、スレッド管理の観点からも C# で実装した方が良いとは思うのですけれどね。
Excel から利用するなら、木下氏の作成した
EasyCom は如何でしょうか? 64bit 対応にする場合は、少し手を加える必要がありますけれども。
MSComm1はちょくちょく出てくるようですがどうやって登録するのでしょうか。
MSCOMM がインストールされている場合には、Excel のユーザーフォームから [ツールボックス] を右クリックして[その他のコントロール...]から「コントロールの追加」を選ぶことで、"Microsoft Comm Control" を指定できるようになるので、それを貼り付けて利用します。
MSCOMM はそもそも Microsoft Office の一部ではなく、Visual FoxPro や Visual Studio 6.0 といった開発言語製品に付属していた ActiveX コントロールであり、これらと共にインストールされます。
そのため実行環境には、mscomm32.ocx ファイル(およびその依存ファイル群)が必要となります。ランタイムの再頒布は無償で可能ですが、ファイル単体での配布は許可されていませんし、どこかのサイトで拾ってきたものを二次配布するようなことも許可されていない点に注意して下さい。
また、Excel 等に貼って使うには、ランタイムの他に開発時(デザインタイム)ライセンスも要求されます。デザインタイムは再頒布することができません。コンパイルして配布するタイプのアプリ(VB や C# など)なら、コンパイル時に必要なだけで、実行環境にデザインタイムライセンスの登録は不要なのですが、Excel の場合はコンパイルして埋め込むものではないので、実行環境であってもデザインタイムが要求されると思います。
また、このコンポーネントの 64bit バージョンは恐らく出ていないので、32bit バージョンのアプリケーションからしか呼び出せません。MSCOMM は
KillBit 対象になったため、Office からの利用が制限されている点も注意事項です。