Accessむかむか ホーム >> TIPS一覧 >> TIPS

項目

 定数を利用する(CONST)

概要

 CONSTで宣言するとリテラル値の代わりに定数を使用できます。
 下記例の@とAは同じ処理ですが、@のようにの定数を使用していない場合には、
 ソースを見た時にどのような処理が行われるか分かりせん。
 プログラムの可読性を高める為に、利用できる所では定数の使用を検討しましょう。

Option Compare Database
Option Explicit

Const CNST_計算_切上        As Integer = 0
Const CNST_計算_切捨        As Integer = 1
Const CNST_計算_四捨五入    As Integer = 2

Const CNST_処理_実行しない  As Integer = 0
Const CNST_処理_実行する    As Integer = 1

'+++++++++++++++++++++++++++++++++++++++++++
' 関数呼出
'+++++++++++++++++++++++++++++++++++++++++++
Sub HogeHoge()

    '@定数未使用の呼出
    Debug.Print FNC_定数未使用(1.55, 1, 1, 1)

    'A定数使用の呼出
    Debug.Print FNC_定数使用(1.55, 1, CNST_計算_切捨, CNST_処理_実行する)

End Sub


'+++++++++++++++++++++++++++++++++++++++++++
' @定数未使用
'+++++++++++++++++++++++++++++++++++++++++++
Function FNC_定数未使用 _
	(value As Double, digits As Integer, 計算flg As Integer, 実行flg As Integer) As Double

    If 実行flg = 1 Then

        Select Case 計算flg
        Case 0

            FNC_定数未使用 = Sgn(value) * Int(Abs(value * 10 ^ digits) + 0.9) / (10 ^ digits)

        Case 1

            FNC_定数未使用 = Sgn(value) * Int(Abs(value) * 10 ^ digits) / (10 ^ digits)

        Case 2

            FNC_定数未使用 = Sgn(value) * Int(Abs(value * 10 ^ digits) + 0.5) / (10 ^ digits)

        End Select

    Else
        
        FNC_定数未使用 = 0
        
    End If

End Function

'+++++++++++++++++++++++++++++++++++++++++++
' A定数使用
'+++++++++++++++++++++++++++++++++++++++++++
Function FNC_定数使用 _
	(value As Double, digits As Integer, 計算flg As Integer, 実行flg As Integer) As Double

    If 実行flg = CNST_処理_実行する Then

        Select Case 計算flg
        Case CNST_計算_切上

            FNC_定数使用 = Sgn(value) * Int(Abs(value * 10 ^ digits) + 0.9) / (10 ^ digits)

        Case CNST_計算_切捨

            FNC_定数使用 = Sgn(value) * Int(Abs(value) * 10 ^ digits) / (10 ^ digits)

        Case CNST_計算_四捨五入

            FNC_定数使用 = Sgn(value) * Int(Abs(value * 10 ^ digits) + 0.5) / (10 ^ digits)

        End Select

    Else
        
        FNC_定数使用 = 0
        
    End If

End Function
Copyright (C) Accessむかむか