- ベストアンサー
どちらを使った方がいいでしょうか?
Sub test1() Dim ws As Worksheet For Each ws In Worksheets Debug.Print ws.Name Next End Sub Sub test2() Dim ws As Variant For Each ws In Worksheets Debug.Print ws.Name Next End Sub どちらも問題なく実行されますが、 VBA的にどちらを使った方がいいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 メソッド「test1」をご使用されることを強くオススメ致します。その理由は以下です。 (1)Variant型だとレスポンスが悪くなる。 (2)Variant型だとメモリを無駄に使用する。 (3)Variant型は予期せぬエラーの温床になる。 (3)Variant型で記述されたソースは変数内部に格納しているデータを特定しずらいため、ソースの修正や変更など保守作業の効率が悪くなる。又、予期せぬエラーを防ぐため、テスト件数が必然的に増え、その分開発効率が悪くなる。 以下のサイトで、Variant型を使用した場合と使用しなかった場合のレスポンス測定結果が紹介されています。 http://officetanaka.net/excel/vba/speed/s6.htm
その他の回答 (2)
- あいあい わーるど(@IIWorld)
- ベストアンサー率29% (72/248)
一般論ですが、 VBでは、Variant型は極力使用しません。 ご質問の文では、型が判明していますので、test1を使用するべきです。 Variant型を使用するのは、プログラムの途中でいろいろな型の値が 設定され、特定の型を使用できない場合などです。 よろしくお願いします。
お礼
Variant型はなるべく使わないようにします。 ありがとうございました。
- TAKA_R
- ベストアンサー率32% (26/79)
素人です。 worksheetの方が、使うメモリ?が少なそうです。 その分、速いのかなと勝手に思っています。 エラーも分かりやすくなるし。
お礼
worksheetを使った方がいいですね。 ありがとうございました。
お礼
Variantを使うのはいいことがなにもなさそうですね。ありがとうございました。