VBATips

任意の日付から会社(法人)の上期なのか下期なのかを求める【パーツ化】【ExcelVBA】

任意の日付から、法人の「上半期」or「下半期」なのかを算出したい場合があります。
判断する処理をパーツ化しています。

任意の日付から上期なのか下期なのかを求めるパーツ化コード

Public Function Get_1stHalf2ndHalf(sDate As Date, fiscalStartMonth As Long) As String
    Dim monthValue As Integer
    
    '■期首からの月数を計算する
    Dim tmp As Long
    tmp = (Month(sDate) - fiscalStartMonth + 12) Mod 12
    
    '■上期か下期を判断する
    If tmp < 6 Then
        Get_1stHalf2ndHalf = "上期"
    Else
        Get_1stHalf2ndHalf = "下期"
    End If
End Function

実際の使い方

Public Sub sample()
    '10月が期首の会社の場合、日付が上期なのか下期なのかを調べる
    Debug.Print Get_1stHalf2ndHalf("2023/10/01", 10)   '上期
    Debug.Print Get_1stHalf2ndHalf("2023/11/01", 10)   '上期
    Debug.Print Get_1stHalf2ndHalf("2023/12/01", 10)   '上期
    Debug.Print Get_1stHalf2ndHalf("2024/01/01", 10)   '上期
    Debug.Print Get_1stHalf2ndHalf("2024/02/01", 10)   '上期
    Debug.Print Get_1stHalf2ndHalf("2024/03/01", 10)   '上期
    Debug.Print Get_1stHalf2ndHalf("2024/04/01", 10)   '下期
    Debug.Print Get_1stHalf2ndHalf("2024/05/01", 10)   '下期
    Debug.Print Get_1stHalf2ndHalf("2024/06/01", 10)   '下期
    Debug.Print Get_1stHalf2ndHalf("2024/07/01", 10)   '下期
    Debug.Print Get_1stHalf2ndHalf("2024/08/01", 10)   '下期
    Debug.Print Get_1stHalf2ndHalf("2024/09/01", 10)   '下期
End Sub

注意点

  • 任意の日付から法人の「事業年度」(会計期間)を求める場合はこちら
  • 任意の日付から会社(法人)の「第〇期」を求める場合はこちら。
  • 任意の日付からクォーターを求める場合はこちら
  • 一般的な年度「4月1日 ~ 翌年3月31日」を取得したい場合はこちら

関連記事

コメント

タイトルとURLをコピーしました