このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【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型について説明します。 (若干注意事項あり)

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

LongLong型の概要と注意点

最大値最小値注意点
Long型2,147,483,647-2,147,483,648
LongLong9,223,372,036,854,775,807-9,223,372,036,854,775,80832ビット版Officeでは使えない
LongLong型の概要と注意点

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型として自動的に扱われる型です。

まれに見かけるときがあるので、こういったものなのだなと頭の片隅に置いておきましょう。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

VBA

Posted by やろまい