プロが教える店舗&オフィスのセキュリティ対策術

数値型を宣言する時に
 Integer と Longのどちらを使えばいいかの判断ができません。

例えば、
For i = 1 To 30000

Next

というコードの場合は、最大数が30000なので
Integerをでiを宣言すればいいのでしょうか?
(30000以上になることはないとする)

ここでLongで宣言した場合、どういうデメリットが発生しますか?
メモリを多く確保するため、パソコンの動きが遅くなるのでしょうか?

A 回答 (4件)

確かにIntegerよりLongの方がメモリを喰う=遅くなる



という考え方が正しいかもしれませんが、今現在のPCのスペックを
考えると誤差範囲(まず違いを体感する事はない)だと思います。

知識として覚えておくといった程度でしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/16 23:59

私も最近までメモリを消費せず高速との思い込みでIntegerを多用していました。


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

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

お礼日時:2009/10/17 01:10

そこら辺りのことはVBAのヘルプに載ってますが、


探し出せない時は、
「VBA データ型 一覧」などをキーにしてネット検索してみてください
たっぷりヒットします。

例えば、下記サイト。

http://www.optimizm.jp/002/hensu_03.shtml

また、質問のようにFor Nextでまわすくらいのことなら
処理スピードは、Integer,Long、殆ど変りないでしょう。
それよりもデータ型を覚えることが先です。
以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/17 01:09

こんばんは。



私の記憶に間違いがなければ、現在は、Long 型のほうが速かったはずです。Integer 型は、16bit ですが、最近のパソコンは、CPUが32bit ですから、Integer 型は、一旦、32bit に変換されるので、Long 型のほうが処理スピードは速いという話です。

VBAの場合は、VBA用として割り当てられるメモリが小さいので、Integer によるメモリの節約の目的で使うのですが、目一杯に使う人はいないので、あまり大きな違いが現れないようです。VBAで速度がもっとも遅くなる原因は、実行時のオブジェクトの入れ出しの多さですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/17 00:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!