【VBA】Longより大きい整数型は64bitのみ(LongLong)
最大値 | 最小値 | |
---|---|---|
Long型 | 2,147,483,647 | -2,147,483,648 |
VBAにおけるLong型は上表のように-2,147,483,648~2,147,483,647までの数値を扱えます。
20 億以上の整数値を扱えるため、通常はLong型にすれば問題ないかと思います。
ただ、何かしらの理由で20億を超える数値を扱いたいときもあるかもしれません。
そうしたニーズに応えるため、VBAにはLongLong型が存在します。
今回はこのLongLong型について説明します。 (若干注意事項あり)
LongLong型の概要と注意点
最大値 | 最小値 | 注意点 | |
---|---|---|---|
Long型 | 2,147,483,647 | -2,147,483,648 | – |
LongLong | 9,223,372,036,854,775,807 | -9,223,372,036,854,775,808 | 32ビット版Officeでは使えない |
LongLong型では922京以上の整数値を扱うことができます。
Long型では桁数が足りない、というときはLongLong型を使いましょう。
ただし、1つ注意点があります。
それは32ビット版のOfficeではLongLong型が使えないという点です。
(32ビット版でLongLong型を使おうとすると「ユーザー定義型は定義されていません」というエラーが起こります)
32 ビット版ではLongLong型は使えないため、扱う数値を分割するなどLong型で収める方法を検討してみてください。
補足:LongPtr
LongLong型と関連する内容としてLongPtrについて補足説明します。
LongPtr は、32 ビット環境では Long に変換され、64 ビット環境では LongLong に変換されるので、実際のデータ型ではありません。 LongPtr を使用すると、32 ビット環境と 64 ビット環境の両方で実行できる移植性のあるコードを作成できます。 LongPtr はポインターおよびハンドルに使用します。
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/longptr-data-type
LongPtr型は32ビット版ではLong型、64ビット版ではLongLong型として自動的に扱われる型です。
まれに見かけるときがあるので、こういったものなのだなと頭の片隅に置いておきましょう。