この記事ではプログラミング初心者向けに、VBAの基本を分かりやすく解説しています。
主に計算に必要な演算子、変数の基本事項を解説しています。
※当サイトではVBAの基本を解説しています。
もし、VBAの基本が分からなければ、下記リンクより基礎を学習できます。
④VBAの変数について解説(本記事)
⑦Excelでバックテストする方法。【VBAによるツール開発】

プログラミング知識ゼロからシステムトレードを自作できるようになった経験を活かし、この記事を書いてます。
VBAの算術演算子を用いた計算
算術演算子とは四則演算などに使う、+、-、÷、×といった記号のことです。
ただし、一般的な数学などで用いる演算子とは少し違います。
以下の表をご覧下さい。
演算子 | 演算名 | 例 | 結果 |
+ | 足し算 | 4 + 1 | 5 |
– | 引き算 | 5 – 1 | 4 |
* | 掛け算 | 3 * 4 | 12 |
/ | 割り算 | 9 / 2 | 4.5 |
\ | 割り算の商 | 9 \ 2 | 4 |
Mod | 割り算の余り | 9 Mod 2 | 1 |
^ | べき乗 | 3 ^ 2 | 9 |
また「=」は代入演算子と呼ばれ、「右辺を左辺に代入」する機能があります。
一般的な計算とは少し違うことに注意しましょう。
VBAでの使用例
Range(“A1”) = 5 * 1
Range(“B1”) = Range(“A1”) + 1
Range(“C1”) = Range(“B1”) + Range(“A1”)
End sub
上記のコードように数字同士の計算、セルと数字の計算、セル同士の計算など様々な計算ができます。
また、計算の優先順があることにも注意しましょう。
以下の表が優先順です。
優先順 | 演算子 |
1 | ^ |
2 | – (引き算ではなく符号反転) |
3 | *、/ |
4 | \ |
5 | Mod |
6 | +、- |
※()で括ることで優先順位の繰り上げができます。


VBAの変数とは?
プログラミング界隈では、変数のことを説明するときによく「箱」と表現されます。
たとえばセルA1の値を一時的に箱(変数)にしまっておいて、必要になったら使うというようなイメージです。
プログラミングにおいて変数は基礎中の基礎のため、必ず覚えましょう。
まずは変数宣言をする
変数を使うにはまず「変数宣言」する必要があります。 構文は以下のようになります。
Dim 変数名 as データ型
ただし、変数の命名規則に注意しましょう。
※データ型については、以下の記事で詳しく解説しています。
変数に値を代入
変数に値を代入する前に、まずは変数を宣言し準備します。
Dim A as Integer
これで変数「A」を使う準備ができました。
変数に値を代入する構文は以下のようになります。
A = 1
これでAに1というデータを代入しました。
また、Rangeオブジェクトなども直接代入できます。
A = Range(“A1”)
この場合、セルA1の値はIntegerの範囲の値でなければならないことに注意しましょう。
Integerの変数にIntegerの範囲を超える値は入力できません。
また、実数を整数型の変数に入れた場合は、四捨五入され強制的に整数になります。
もし文字列など入れた場合は「型が一致しません」とエラー発生し、データ型の範囲を超えた値を入れると「オーバーフローエラー」が発生します。
このような場合エラーメッセージに表示されている「デバック」を押すと、エラー発生行が黄色く強調表示されます。
エラーを直したら、「F5キー」を押して継続して実行するか、「F8キー」を押してステップインにて実行しましょう。
ただし、LongにIntegerの値を入れることはできます。
なぜなら、Longの値の範囲がIntegerの値の範囲をカバーしているからです。
このように上位互換のデータ型は、下位の型の範囲をカバーしているためエラーは発生しません。
変数は、他の変数やセルの代入に使用することもできます。
Dim A as Integer
Dim B as Integer
A = Range(“A1”)
Range(“B1”) = A
B = A
End sub
また、以下のように変数宣言を省略して変数を使うこともできます。
ただし、この方法で変数を使用すると全てVariant型になり、おすすめできません。
なぜかというと、想定しているデータと違うデータ型が入ったり、単なるスペルミスで変数になっていたりとバグの温床になるからです。
基本的には変数宣言するようにしましょう。
Range(“A1”) = A
End sub
変数宣言を強制する方法
以下の設定で変数宣言を強制させることができます。
①ツールバーよりオプションをクリック
②編集タブの「変数の宣言を強制する」にチェックし「OK」を押す。
③新規のモジュールを作成するとモジュール冒頭に「Option Explicit」の文字が自動で入力されます。
これで変数宣言の強制は完了です。
変数のスコープ(寿命)
変数にはスコープと呼ばれる寿命があります。
変数のスコープは、変数宣言の方法や場所によって変わってきます。
以下のプログラムのように、モジュールの冒頭に変数宣言した「A」はプロシージャのtest1、test2両方で使用可能です。
つまり、モジュール内であればどのプロシージャからでも使用できます。
Dim A as Integer
Sub test1()
Dim B as Integer
A=1
B=2
Range(“A1”) = A
Range(“B1”) = B
End sub
Sub test2()
Range(“A1”) = B
End sub
「A」に対して、プロシージャtest1内に変数宣言した「B」はtest1内でしか使用できません。
プロシージャtest2内で使おうとすると、以下のようにエラーがでて使えません。
これが変数のスコープです。
Option Explicit
Sub test1()
Dim A as Integer
A=1
Range(“A1”) = A
End sub
Sub test2()
Dim A as Integer
A=2
Range(“B1”) = A
End sub