VBAの定数

投稿日: 2024年5月18日

定数とは、プログラム内で値が一度設定された後、変更されることのない値を指します。つまり、プログラムが実行されている間、その値は常に同じままです。

不変の値を保持する

税率や円周率のような値は変更されては困ります。なので定数という値を変更できないものがあります。

定数の基本的な例

以下は、定数を使用する基本的な例です。
定数を宣言するときは「Const」(コンスト)をついかいます。
Const 定数名 As データ型 = 格納する値

Sub ConstantsExample()
    ' 定数の宣言
    Const PI As Double = 3.14159
    Const GREETING As String = "Hello, World!"

    ' 定数の使用
    MsgBox "The value of Pi is " & PI
    MsgBox GREETING
End Sub

この例では、「PI」 と「 GREETING」 という2つの定数を宣言し、それらをメッセージボックスに表示しています。

定数の利点

  1. 可読性の向上: 定数にわかりやすい名前を付けることで、コードを読む人にその値が何を意味するのかを伝えやすくなります。
  2. メンテナンスの容易さ: 定数の値を変更する必要がある場合、定義部分だけを変更すれば良いので、コード全体を変更する必要がありません。
  3. エラーの防止: 定数は変更されないため、プログラムの実行中に誤って値を変更してしまう心配がありません。

モジュールレベルの定数

モジュールレベルで宣言された定数は、そのモジュール内のすべてのプロシージャからアクセスできます。
このコードではプロシージャの外から定数を宣言しています。

Option Explicit

Const MODULE_CONSTANT As String = "モジュールレベルの定数"
Const TAX_RATE As Double = 0.08 ' 消費税率

Sub UseModuleConstant()
    MsgBox MODULE_CONSTANT
End Sub

Sub CalcModuleConstant()
    Dim taxPrice As Double
    taxPrice = 1000 * TAX_RATE
    MsgBox taxPrice & "円"
End Sub

別々のプロシージャからそれぞれ読むことができます。

定数の型

定数は変数と同じくさまざまなデータ型を持つことができます。以下にいくつかの例を示します。

Sub DifferentTypesOfConstants()
    Const INTEGER_CONSTANT As Integer = 100
    Const DOUBLE_CONSTANT As Double = 3.14
    Const STRING_CONSTANT As String = "VBA Constants"
    Const BOOLEAN_CONSTANT As Boolean = True

    MsgBox "Integer: " & INTEGER_CONSTANT
    MsgBox "Double: " & DoubleConstant
    MsgBox "String: " & STRING_CONSTANT
    MsgBox "Boolean: " & BOOLEAN_CONSTANT
End Sub

実際の使用例

以下は、定数を使用して商品の価格を計算する例です。

Sub CalculateTotalCost()
    Const TAX_RATE As Double = 0.08 ' 消費税率
    Const PRICE As Double = 1000 ' 商品の価格

    Dim totalCost As Double
    totalCost = PRICE * (1 + TAX_RATE)

    MsgBox "Total cost with tax is " & totalCost
End Sub

この例では、TAX_RATE と PRICE という定数を使用して、商品の合計コストを計算し、メッセージボックスに表示しています。

定数を使用することで、コードの可読性が向上し、メンテナンスが容易になり、エラーを防ぐことができます。プログラム内で変更されない値を使用する場合には、定数を積極的に利用することをお勧めします。

記事