VBA(Visual Basic for Applications)でプログラムを書く際に、値を固定して使いたい場面は多くあります。たとえば、税率や定価のような「変化しない値」は、コード中に直接書き込むよりも、**定数(Const)**として定義しておくと便利です。定数を使うことで、コードの保守性や可読性が向上し、思わぬバグを防ぐことにもつながります。本記事では、VBAにおけるConst
ステートメントの基本的な使い方から、スコープの違い、注意点、活用例までを丁寧に解説していきます。これからVBAを学ぶ初心者の方にもわかりやすく説明していきますので、ぜひ参考にしてください。
Const
とは、「定数」を宣言するためのキーワードです。定数とは、その名の通り「一定の値を持ち、変更できない変数」のことです。
Const 消費税率 As Double = 0.1
このように宣言された定数は、後から変更しようとするとエラーになります。これにより、意図せず値を書き換えてしまうことを防げるのです。
Constの基本的な構文は以下のとおりです。
Const 定数名 [As データ型] = 値
データ型は省略可能ですが、記述しておくと読みやすくなり、エラーも防ぎやすくなります。以下は例です:
Const Pi As Double = 3.14159
Const CompanyName As String = "ABC株式会社"
Const MaxCount As Integer = 100
ポイント:
Const
はモジュールの先頭やプロシージャの中でも宣言できます。Constにはスコープ(有効範囲)があります。大きく分けて、モジュールレベルとプロシージャレベルの2種類です。
モジュールの先頭で宣言した定数は、そのモジュール内のすべてのプロシージャで使用できます。
' モジュールの先頭
Const 税率 As Double = 0.1
Sub 計算処理()
MsgBox 1000 * 税率
End Sub
Sub 表示処理()
MsgBox "税率は" & 税率 * 100 & "%"
End Sub
プロシージャ内で宣言した定数は、そのプロシージャの中でのみ使用可能です。
Sub 計算処理()
Const 手数料 As Double = 0.05
MsgBox 1000 * 手数料
End Sub
別のプロシージャからは手数料
は見えません。
定数にPublicやPrivateをつけて、他のモジュールからの参照可否を制御できます。
すべてのモジュールから参照可能です。
Public Const バージョン As String = "1.0.0"
たとえば、共通設定を他のモジュールでも使いたい場合に有効です。
そのモジュール内でのみ使えます。これが基本です。
Private Const 割引率 As Double = 0.2
名前をつけることで、「何の値なのか」が明確になります。
' 悪い例
売上 = 1000 * 0.1
' 良い例
Const 税率 As Double = 0.1
売上 = 1000 * 税率
定数値を変更したい場合、1箇所変更するだけで済みます。
値の上書きが禁止されるため、誤って変更してしまうことがなくなります。
以下のような書き方はエラーになります:
Const 今日の日付 As Date = Date ' エラー!
関数Date
の戻り値はコンパイル時に評価できないため、定数に代入できません。
Const 配列() As Integer = Array(1,2,3) ' エラー
配列やオブジェクトも使用不可です。こうした値はDim
を使って通常の変数として管理しましょう。
Const TAX_RATE As Double = 0.1
Sub 税込価格計算()
Dim 税抜価格 As Double
税抜価格 = 5000
MsgBox "税込価格は " & 税抜価格 * (1 + TAX_RATE) & " 円です"
End Sub
' 共通設定モジュール
Public Const APP_NAME As String = "売上管理システム"
Sub 表示()
MsgBox "アプリ名: " & APP_NAME
End Sub
Const 選択A As String = "A"
Const 選択B As String = "B"
Const 選択C As String = "C"
Sub 回答処理(回答 As String)
Select Case 回答
Case 選択A
MsgBox "Aを選びました"
Case 選択B
MsgBox "Bを選びました"
Case 選択C
MsgBox "Cを選びました"
Case Else
MsgBox "無効な選択です"
End Select
End Sub
VBAにおけるConst
は、定数を安全かつわかりやすく管理するための強力な機能です。コードの見通しがよくなり、ミスも減らせるため、「変わらない値」にはConstを使うことを習慣化することをおすすめします。
Const
は書き換え不可な定数を定義するキーワードPublic
やPrivate
でスコープ管理が可能日常的に使う値ほどConstで定義しておくと、後々のメンテナンスやバグ対応がぐっと楽になります。ぜひ活用してみてください。