VBAでセルの値を変数にして掛け算等の数値計算をする方法!

VBAで数値計算をすることってありますよね。

このとき扱う数値はどうやって入力していますか?

VBAコードに定数を書き込んで計算させることも可能ですが、数値が変わるごとにVBAコードを書き換えるのはちょっとナンセンスです。

もう少しフレキシブルに使えるとうれしいですよね。

本記事では、「セルの値を変数としてVBAで数値計算をする方法」について解説します。

1.変数とは

こんにちは。エクセルマン・ブリーダーのしもむぎ(@re_znd13)です。

まずは変数について解説しますね。

変数とは、数値を一時的に入れておく器のようなものです。

数学でxやyとして扱っていた、アレです。

VBAで数値計算を行ううえで、変数を使うことをオススメするのには理由があります。

変数を使うことで、VBAコード自体を書き換えずに、セルの値を変えるだけでフレキシブルに使えるからです。

マクロを組んで計算等を自動化する際に、ほかの人と共有したいことがありますよね。

そういうときは相手がVBAコードに触らないでも正しく使えるのが望ましい、と考えています。

それには変数を使うことが必須なんですね。

2.変数の定義

それでは具体的に変数を使って、数値計算させることを考えていきましょう。

多くの人が初期段階で困ってしまうのが、変数の定義です。

変数には型というものがあって、VBAでは使う前にこの型だよと宣言する必要があります。

よく使う型は以下です。

  • integer型:-32678~32767の整数
  • long型:-2147483648~2147483647の整数
  • single型:浮動小数点型
  • string型:文字列
  • variant型:なんでもOK

整数型はあえてふたつ挙げてみました。

基本的にはlong型を使えばOKなんですが、integer型とlong型の範囲についてはこちらの記事でも解説してますので、興味ある方はぜひのぞいてみてくださいね。

変数の宣言には文法がありますので、それを守って記述しましょう。

Dim x as long

こういった書き方をします。

xが使う変数で、longが変数の型ですね。

long型でxという変数を使いますよ、という宣言をしていることになります。

3.変数へセルの値を格納するには?

宣言ができたら、次は変数へセルの値を格納してみましょう。

セルの値はCells(1,1).valueという記述で取得できます。

()の中は1行目、1列目の意味ですので、A1セルを表しています。

この何行目、何列目というのも変数を使うことができますが、それはまた別の機会に取り上げますね。

ここでは、以下のような記述で、変数にセルの値を格納できる、ということがポイントです。

x = Cells(1,1).value

4.変数を使った数値計算(掛け算の例)

変数を宣言して、セルの値を格納したら、いよいよ数値計算ができます。

以下のVBAコードは、A1セルの値をaという変数に、B1セルの値をbという変数に格納しています。

そしてcにはa×bの計算結果を当てて、それをC1セルに返すという内容になります。

Sub 変数の掛け算()
Dim a, b, c As Long

a = Cells(1, 1).Value
b = Cells(1, 2).Value
c = a * b
Cells(1, 3).Value = c

End Sub

実行すると、以下のようになります。

A1セルの5とB1セルの2を掛け算した10という積がC1セルに入力されました。

5.まとめ

本記事では、「セルの値を変数としてVBAで数値計算をする方法」について解説しましたが、いかがでしたか?

変数同士の計算として、掛け算の例を挙げましたが、足し算、引き算、割り算でも同じように計算できます(それぞれ変数の型には注意してください)

変数の使い方をマスターして、フレキシブルで便利なマクロを組みたいですね。