Excel VBAで定数を宣言する:Const

VBAで定数を宣言するにはConstを使用します。定数は一度宣言したら絶対に変わらないので、プログラムをシンプルに保てます。

変数と定数の違い

似たものとして変数が存在しますが、変数と定数の大きな違いは、その名の通り変更可能かどうかです。変数は値を何度でも変えることができますが、定数は一度宣言したら、宣言内容を変えない限り変えられません。そのため、以下のようなメリットが考えられます。

  • 途中で誤って変更してしまったり、同じ数値を何度も打ち込む必要がなくなるため、入力ミスが減って、プログラムが読みやすくなる。
  • 税率や人員数などの改変される可能性のある数値は、定数によって一括管理することで、宣言部分を変えるだけで済む。

プログラム内で値が変わらないものなどは、定数で定義するとよいでしょう。(変数を定義する際にはDimを使用します。)

Constの使い方

定数は以下のように宣言します。

[宣言レベル]Const[定数名] As [データ型] = 値
  • 宣言レベル:PublicまたはPrivateと書きます。Publicならすべてのモジュールで有効になり、Pribateなら現行のモジュールでのみ有効になります。省略可能で、省略した場合はPrivateになります。
  • 定数名:宣言したい名前を示します。
  • データ型:定数の型を示します。

使用例

変数と定数の違いがとてもよくわかる例を示します。次のようなデータを考えます。

このデータのC列に、税込み価格を書き込むプログラムを書きます。

Sub Const_Sample()

    Const tax As Double = 0.08 '消費税率は8%
    Dim Price As Long '価格は変数
    Dim i As Long
 
    For i = 2 To 4
        Price = Cells(i, 2).Value
        Cells(i, 3).Value = Price * (1 + tax) 'データの書き込み
    Next

End Sub

消費税率は固定なので定数で、価格はそれぞれのデータで何度も変える必要があるので変数で定義しました。手順は以下の通りです。

  • それぞれの要素を定義する。
  • For~NextでB列のデータに繰り返し実行する。
  • Valueで書き込む。

[実行結果]