【VBA】データ型:LongとIntegerの違い
プログラミングにおいて、整数を格納するためには専用のデータ型が使用されます。VBAでも整数データを扱うために「Long」と「Integer」という2つの主要なデータ型があります。
この記事では、これらのデータ型の違いについて詳しく説明します。
結論から言うと、「Long型」と「Integer型」の違いは次の2点です。
- メモリ使用量
- 値の範囲
それでは、両者の違いを見ていきましょう。
LongとIntegerとは?
まず、LongとIntegerの基本的な概要から始めましょう。
Long(長整数)
- Longは整数データ型のうちの一つで、通常「32ビット」(4バイト)の範囲内の整数値を格納します。
- 値の範囲は約 -2,147,483,648 から 2,147,483,647 までです。
- Long型はInteger型に比べてメモリ使用量が多く、大きな整数値を格納するのに適しています。
Integer(整数)
- Integerは整数データ型の一つで、通常「16ビット」(2バイト)の範囲内の整数値を格納します。
- 値の範囲は約 -32,768 から 32,767 までです。
- Integer型はメモリを比較的少なく使用し、小さな整数値を効率的に格納できます。
LongとIntegerの違いについて
LongとIntegerの主要な違いは次の点に集約されます。
- メモリ使用量
- 値の範囲
メモリ使用量
Longは32ビットを使用するため、Integerに比べてメモリ使用量が多いです。つまり、同じ整数値を格納する場合、LongはIntegerよりも多くのメモリを必要とします。
そのため、メモリの制約がある場合や、大規模なデータセットを扱う際には、Integerを選択することがメモリ効率の観点から適していることがあります。
値の範囲
Longは、Integerに比べてはるかに広い値の範囲をサポートします。Integerは約 -32,768 から 32,767 までの整数値しか扱えませんが、Longは約 -2,147,483,648 から 2,147,483,647 までの整数値を格納できます。したがって、非常に大きな整数値を扱う必要がある場合や、値のオーバーフローを心配する必要がない場合には、Longを選択するのが適しています。
使い分けについて
LongとIntegerを使う際の適切なケースを理解しましょう。
- 大きな整数値を格納する必要がある場合
- 値の範囲がIntegerの制約を超える場合
- ファイルサイズ、データベースキー、ユーザーIDなど、大規模な数値データを扱う場合
- メモリを節約したい場合
- 整数の範囲が小さいデータを格納する場合
- ループカウンターや一時的な整数変数に使用する場合
どちらを使えばいいのか(管理人の見解)
と、このように整理してみたものの、私個人の見解としては、基本的には「Long型」を使っておけばいいと思います。もちろん、型を使い分けることによって、処理速度が速くなる、定義(データ型)を見ればどのような使われ方をしているか予想できるなどのメリットはありますが、いずれも軽微なものです。それよりも、Integerを使っていて、ループ回数が足りなくなることの方が発生確率は高いです。
Long型を使っていて、問題が起きたらInteger型も検討する、くらいでいいのではないかと思います。
サンプルコード
以下は、VBAでIntegerとLongを使用する簡単なサンプルコードの例です。
Integerを使用したサンプルコード
1Sub IntegerExample()
2 Dim x As Integer
3 x = 32767
4 Debug.Print x
5End Sub
Longを使用したサンプルコード
1Sub LongExample()
2 Dim y As Long
3 y = 2147483647
4 Debug.Print y
5End Sub
まとめ
LongとIntegerはVBAで整数データを格納するためのデータ型で、メモリ使用量と値の範囲において異なります。両者の違いを理解して、プログラムの要件に応じて適切なデータ型を選択し、効率的なコードを作成できるようになっておきましょう。
それでは、バイよ。