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で数値計算をする方法」について解説しましたが、いかがでしたか?
変数同士の計算として、掛け算の例を挙げましたが、足し算、引き算、割り算でも同じように計算できます(それぞれ変数の型には注意してください)
変数の使い方をマスターして、フレキシブルで便利なマクロを組みたいですね。