標記の型宣言、やってませんか?
エラーにならず発覚しにくいんですよね。

正解は
Dim a As String, b As String, c As String

一つずつ、いちいち宣言する必要があります。
タイトルのように宣言すると、aとbは型指定が省略されたと見なされ、variant型として扱われます。
なんでこんな仕様なの?知ってる人教えて?

絶対、
Dim a ,b,c As String
の方が見易いと思うけど?
仕事の片手間でVBAやってます。
素人ならではの失敗を紹介というより告白懺悔ですが、やっていきます。
僕が失敗したってことは、他人も失敗するでしょうから。