VBAのConstで定数を宣言する方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Constの概要

定数を宣言する VBAの予約語

Const

概要 Const ステートメントは、VBAで定数(変更不可の値)を宣言するために使用されます。変数と異なり、値を後から変更できないため、誤操作を防ぐのに役立ちます。

わかりやすく説明 変更できない値(定数)を設定するための命令。

  • プログラム内で変更できない値を定義できる。
  • コードの可読性と保守性が向上する。
  • Excel VBAで計算式や設定値を統一する際に便利。

Constの基本的な使い方

以下の例では、定数を定義し、メッセージボックスに表示します。

Sub ShowConstant()
    Const TAX_RATE As Double = 0.1
    MsgBox "消費税率: " & TAX_RATE * 100 & "%"
End Sub

解説:

  • Const TAX_RATE As Double = 0.1: 消費税率を定義。
  • プログラム内で誤って変更されることを防ぐことができる。

複数の定数を一括定義

複数の定数を同時に定義することも可能です。

Sub ShowMultipleConstants()
    Const PI As Double = 3.14159, GRAVITY As Double = 9.81
    MsgBox "円周率: " & PI & vbCrLf & "重力加速度: " & GRAVITY
End Sub

解説:

  • カンマ(,)で区切ることで、複数の定数を1行で定義できる。

モジュールレベルの定数

モジュールの先頭で定義すると、モジュール内のすべてのプロシージャで利用可能な定数になります。

Option Explicit

Const COMPANY_NAME As String = "ABC株式会社"

Sub ShowCompanyName()
    MsgBox "会社名: " & COMPANY_NAME
End Sub

解説:

  • モジュールレベルの定数は、すべてのプロシージャから参照できる。

Publicを使ったグローバル定数

Public を使うと、他のモジュールからも利用できる定数を定義できます。

Public Const FILE_PATH As String = "C:\Reports\summary.xlsx"

Sub ShowFilePath()
    MsgBox "ファイルのパス: " & FILE_PATH
End Sub

解説:

  • Public Const を使うと、他のモジュールでも利用可能。

Excel VBAでのConstの活用

定数を使うと、セルの計算で統一された値を利用できます。

Sub CalculateWithConst()
    Const TAX_RATE As Double = 0.1
    Dim price As Double
    price = Range("A1").Value
    
    Range("B1").Value = price * (1 + TAX_RATE)
End Sub

解説:

  • 定数を使うことで、税率を統一できる。

Constの制限

  • 一度設定した値は変更不可: Const に設定した値は後から変更できない。
  • 実行時に値を設定できない: Const はコンパイル時に値が決まるため、Now などの関数は使用できない。

よくある質問

Q: Const と変数の違いは?
A: Const で宣言した値は変更できないが、変数は変更可能。
Q: Const に関数の結果を設定できますか?
A: できません。定数はコンパイル時に値が決まるため、NowInputBox などの実行時に決まる値は使えません。
Q: モジュール全体で使う定数はどう宣言すればいいですか?
A: モジュールの先頭で Const を宣言すれば、モジュール内のすべてのプロシージャで利用できます。

まとめ

  • Const は変更できない定数を宣言するために使用する。
  • 定数を使うことで、プログラムの可読性と保守性が向上する。
  • モジュールレベルで定義すると、モジュール内で共通して使える。
  • Public Const を使えば、他のモジュールからも利用可能。