情報ありがとうございます。
>>87
はい。IEnumerator.MoveNext() は存じております。
「でも」と言われますと、他にもこのメソッドを持つクラスが
ありますか?
>>88
Dim hoge
For hoge In IEnumVARIANTObject
Next
というようなことになるという意味でしょうか?
IEnumVARIANTは Next などのプロパティ(メソッド?)を
持っているようですが、どのように使うのか分かっていません。
調べてみます。

>>85
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=64&fi=no
arr(0) = obj1 → Set arr(0) = obj1
arr(1) = obj2 → Set arr(1) = obj2
とすることにより、配列でもいけそうです(VBAで動きました)。
但し、自分のところのプログラムはまだ動いてないんですが(^^;;
あと、ArrayListで躓いていた原因として、このプログラムで言うと
Dim obj1 のところが Dim obj1 As TestObject
(タイプライブラリを読み込んでいるのでコンパイルも通ります)
としていたことのようです。
このプログラムでも現にそうしてみると、C#側でArrayListに
stringが入っている状態(>>84で書いていることです)に
なりました。
どうも普段Javaとかが主なものでVariantって抵抗あるんですよね。^^;
重ね重ねお礼申し上げます。