【ExcelVBA入門】整数を扱うためのLong型の使い方を徹底解説!

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAで整数を扱う変数の型を知っていますか? 整数につかえる型の一つに、Long型があります。

そこで今回は、

  • 変数の型とは?
  • Long型の使い方

といった基礎的なことから、

  • Long型を使ったサンプルコード
  • Integer型とLong型の違い・使い分け方法
  • 全ての値に使える変数の型Variant型とは

といった応用的な方法まで、徹底的に解説します!

変数の型とは

変数とは、値を保存しておくことができる箱のようなものです。値を入れたり、使ったりすることができます。次のように書くことで、変数を使うことができます。

型名で整数、小数、文字列など何を入れる箱なのか宣言してから、値を入れて使います。例えば、次のようなイメージです。

変数サンプルコード:

実行結果:

このように、「Dimで変数の名前と型を決める → 変数に値を入れる → 使いたい場所で変数名を使う」の流れで簡単に変数を使うことができます。

変数の中でも、数値を使うときにLong型はとても便利なので、今回はLong型の使い方に特化して解説します! その他の変数の使い方について知りたい方は、以下で詳しく解説しているので見てみてくださいね!

【VBA入門】変数をDimで宣言し、 Asでデータ型を定義する方法
更新日 : 2019年4月21日

Long型の使い方

次に、Long型の基礎的な使い方について解説します。先ほど説明した通り、Long型は次のように使います。

Long型の使い方:

Long型を使ったサンプルコードを用意しました。

サンプルコード:

実行結果:

このサンプルでは、lngNum(個数)lngCost(1個当たりのコスト)をLong型の変数にして値を入れた後に、lngTotalCost(合計金額)をlngNum、lngCostをかけた値で計算して、合計金額をメッセージで表示しています。

このように、値を入れて計算で使うことができるので、変数はとても便利ですね。

【素朴な疑問】Integer型とLong型どちらを使えばいいんだろう?

Long型と同じ整数を扱う変数に、Integer型があります。初めて変数を使うと、

Integer型とLong型はどうやって使い分けるんだろう・・・?

と悩む方が多いので、簡単な違いと使い分け方について解説します。Integer型とLong型の大きな違いは、変数に入れることができる桁数です。以下のように、型ごとに使える最大桁数が違います。

Integer型とLong型で使える桁範囲:

  • Integer型:-32,768 ~ 32,767
  • Long型 :-2,147,483,648 ~ 2,147,483,647

Integer型は桁数が少なく、Long型が多いですね。一般的に変数は以下のような考え方があります。

「データ型によって変数宣言時に消費するメモリが違うため、無駄に大きいサイズの変数の型を使うのは良くない」

ただ、Integer型とLong型に関しては、公式で以下のように発表されています。

最近のバージョンでは、Integer型として宣言されていても、VBAはすべての整数値をLong型に変換します。したがって、Integer変数を使用するとパフォーマンス上の利点はなくなります

引用:https://msdn.microsoft.com/en-us/library/aa164754(office.10).aspx

そのため、整数を扱う場合は全てLong型でOKです! ちなみに、Integer型とLong型の速度比較をしている以下のような記事がありますが、Long型の方が処理速度も速い結果になっています。
【ExcelVBA】Integer型 VS Long型、速いのはどっち?【Vol.1】

公式でもLong型を推していて、速度も速いのでLong型一択でOKですね!

変数の型を覚えるのが苦手な方へ

ここまでLong型の使い方に特化して解説してきましたが、変数の型は他にもたくさんあるため、最初は覚えるのが大変だったりしますよね。そんなときは、Variant型を使うのがおすすめです!

「値が変数に入るときに自動で型が決まる型」なので、型を意識せずに変数を作ることができます。Variant型の使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

【ExcelVBA】Variant型の使い方とは?配列で使う方法・注意点も解説!
更新日 : 2018年9月30日

まとめ

今回は、VBAでLong型を使う方法について解説しました。公式でも解説されている通り、整数の変数を作るときはLong型一択でOKです!

ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説