わざわざ教わらない当然のこと
社会人になってから特に感じますが、「当たり前のことすぎて、わざわざ教わることも自身で調べるタイミングもない」事象って多いですよね。
今回は完全にそのパターンです。
多くの方にはそんなことも知らないのか!と思われるかもしれませんが、意外に知らない人もいるよという話ができたらと思います。
(また、同じく知らない方・初めて触れる方へ届きますように……。)
VBAで整数 ⇒Long型でよし!
他にも種類はありますが、整数を扱う型というとInteger型とLong型が代表的かと思います。(私はそう思っています。)
型名 | データ型 | 範囲 |
---|---|---|
Integer | 整数型 | -32,768 ~ 32,767 |
Long | 長整数型 | -2,147,483,648 ~ 2,147,483,647 |
「パフォーマンス向上のため、無駄に大きい範囲の型にしない方がいい」と認識していたので、今までVBAでも普通にInteger型を使っていました。
先日オーバーフローのエラーが発生したのですが、原因は予想以上に取り込むデータが多く、計算結果がInteger型の範囲を超えてしまったという初歩的なミスでした。(完全に見通し不足。)
それを見た先輩に 「VBAでIntegerは使わないよ」 と言われ、そうなの!?と驚いたことが今回の記事の発端です。
そもそもVBAでInteger型を使っても意味ない
以下、Microsoftのサイトから引用したものです。
最近のバージョンでは、VBA は、整数型として宣言されている場合でも、すべての整数値を Long 型に変換します。したがって、Integer 変数を使用することによるパフォーマンス上の利点はなくなりました。
この記載、完全にInteger型使う意味ないですね!
2014年の記事なので、少なくともVBAでInteger型を使う意味がなくなってから10年は経っているということ。全然知らなかった……。
オーバーフローの心配をなくすためにも、莫大でない整数ならLong型にしていきましょう。
(という認識で合ってますかね?)
整数はとりあえずLong型!Integer型は使わない。
「当然」を少しずつ学んでいく
経験者にとっては当たり前の事実も、意外に知らない人は多いかもしれません。
初心者ならではの学びは積極的に発信していきたいと思います。
有識者の方、ご教示いただけると幸いです!