• ベストアンサー

変数のデータ型  Integer と Long

数値型を宣言する時に  Integer と Longのどちらを使えばいいかの判断ができません。 例えば、 For i = 1 To 30000 Next というコードの場合は、最大数が30000なので Integerをでiを宣言すればいいのでしょうか? (30000以上になることはないとする) ここでLongで宣言した場合、どういうデメリットが発生しますか? メモリを多く確保するため、パソコンの動きが遅くなるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yayayayai
  • ベストアンサー率38% (5/13)
回答No.1

確かにIntegerよりLongの方がメモリを喰う=遅くなる という考え方が正しいかもしれませんが、今現在のPCのスペックを 考えると誤差範囲(まず違いを体感する事はない)だと思います。 知識として覚えておくといった程度でしょうか。

lkjhgfdkk
質問者

お礼

大した違いはなさそうですね。有難うございました。

その他の回答 (3)

  • yucco_chan
  • ベストアンサー率48% (828/1705)
回答No.4

私も最近までメモリを消費せず高速との思い込みでIntegerを多用していました。 が、とあるWebで、今時の32BitOS&CPUでは16bitのIntegerは意味の無い 過去の遺物でLongを使うべきとの記述を見ました。 真偽は分かりませんが、32BitOS&CPUで16bitのデータを扱うには返ってオーバーヘッドが 生じて遅くなったり、それを避けるために16Bitデータを擬似的に32Bitデータとして 扱うためにメモリの節約にならないとの解説に、私には正しい情報且つ納得できる ものでしたので、最近はLongを使うようにしています。 体感的には、何も変わりませんが。。。 不確かな情報ですが参考までに。

lkjhgfdkk
質問者

お礼

大変参考になりました。ありがとうございます。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

そこら辺りのことはVBAのヘルプに載ってますが、 探し出せない時は、 「VBA データ型 一覧」などをキーにしてネット検索してみてください たっぷりヒットします。 例えば、下記サイト。 http://www.optimizm.jp/002/hensu_03.shtml また、質問のようにFor Nextでまわすくらいのことなら 処理スピードは、Integer,Long、殆ど変りないでしょう。 それよりもデータ型を覚えることが先です。 以上です。

lkjhgfdkk
質問者

お礼

わかりました。覚えます。ありがとうございます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 私の記憶に間違いがなければ、現在は、Long 型のほうが速かったはずです。Integer 型は、16bit ですが、最近のパソコンは、CPUが32bit ですから、Integer 型は、一旦、32bit に変換されるので、Long 型のほうが処理スピードは速いという話です。 VBAの場合は、VBA用として割り当てられるメモリが小さいので、Integer によるメモリの節約の目的で使うのですが、目一杯に使う人はいないので、あまり大きな違いが現れないようです。VBAで速度がもっとも遅くなる原因は、実行時のオブジェクトの入れ出しの多さですね。

lkjhgfdkk
質問者

お礼

IntegerでもLongでもかわらなそうですね。有難うございました。

関連するQ&A