cls工数データ

Option Explicit

'--------------------------------------------------
' クラス名 : cls工数データ
' 概要     : 工程情報と営業日計算機能を内包するクラス
'--------------------------------------------------
' プロパティ(データ)
Public 行番号 As Long
Public ツール名 As String    ' ツール名(B列)
Public 氏名 As String
Public 工程名 As String
Public 開始日 As Date
Public 終了日 As Date
Public 工数セルアドレス As String
Public 工数 As Double
Public 日数 As Long     ' 営業日数
Public 平均工数1営業日 As Double    ' 営業日1日あたりの平均工数
' プロパティ(外部注入)
Public dic休業日 As Scripting.Dictionary  ' キー:休業日
'--------------------------------------------------
' 日付妥当性チェック(終了日 >= 開始日)
'--------------------------------------------------
Public Function fnc日付妥当性判定() As Boolean
    fnc日付妥当性判定 = IsDate(開始日) And IsDate(終了日) And 開始日 <= 終了日
End Function
'--------------------------------------------------
' 営業日数算出(休業日を考慮)
'--------------------------------------------------
Public Function fncLng営業日数取得() As Long

    Dim dat工程日 As Date
    Dim lngカウント As Long

    If Not IsDate(開始日) Or Not IsDate(終了日) Then
        fncLng営業日数取得 = 0
        Exit Function
    End If

    For dat工程日 = 開始日 To 終了日
        If Not dic休業日.Exists(dat工程日) Then
            lngカウント = lngカウント + 1
        End If
    Next

    fncLng営業日数取得 = lngカウント

End Function
'--------------------------------------------------
' プロシージャ名 : prc工数自動補完
' 機能概要       : 工数が未入力(0または空白)の場合、営業日数で補完する
' 留意点         : 工数は Double型で保持
'--------------------------------------------------
Public Sub prc工数自動補完()
    If 工数 = 0 Then
        工数 = 日数
    End If
End Sub
'--------------------------------------------------
' 関数名 : fncDbl平均工数1営業日
' 機能概要 : 工数 ÷ 営業日数 を小数第3位切り捨てで算出する
' 引数     : なし(クラス内プロパティを参照)
' 戻り値   : Double型(平均工数/営業日)
'--------------------------------------------------
Public Function fncDbl平均工数1営業日() As Double

    If 日数 = 0 Then
        fncDbl平均工数1営業日 = 0
    Else
        fncDbl平均工数1営業日 = Int((工数 / 日数) * 100) / 100
    End If

End Function
'--------------------------------------------------
' デバッグ出力用の文字列生成
'--------------------------------------------------
Public Function fncToDebugString() As String
    fncToDebugString = _
        "ツール名: " & ツール名 & _
        " / 氏名: " & 氏名 & _
        " / 工程: " & 工程名 & _
        " / 開始日: " & 開始日 & _
        " / 終了日: " & 終了日 & _
        " / 工数: " & 工数 & _
        " / 営業日数: " & 日数 & _
        " / 1営業日平均工数: " & 平均工数1営業日
End Function


コメント