LibreOffice Calc Basic - 閏年を判定する方法

◆概要

閏(うるう)年とは、西暦年が4で割り切れる年のことです。ただし、100で割り切れる年は、その年がさらに400で割り切れる場合のみ、閏年となります。
Excelでは閏年を判定する関数がありませんので自作するしかないのですが、LibreOfficeでは、ISLEAPYEAR関数を利用できます。

◆ISLEAPYEAR関数
ISLEAPYEAR関数は、その年が閏年にあたる場合はTRUE、そうでない場合はFALSEを返します。
A1セルに日付けを入れ、B1セルに次の数式を入れると閏年かどうかを判定できます。

=IF(ISLEAPYEAR(A1)=1,"閏年","閏年ではない")

LibreOffice BasicでisLeapYear関数を使用するには com.sun.star.sheet.FunctionAccess サービスを使用します。関数を呼び出すには, callFunction メソッドを使用します。
 次のサンプルでは、2012年が閏年かどうかを判定しています。

Sub isLeap
    Dim oDate&
    
    oDate = DateSerial(2012,1,1)

    if fdate(oDate)=1 then
        MsgBox "閏年です。",0,"閏年判定"
    Else
        MsgBox "閏年ではありません。",0,"閏年判定"
    End if
End Sub

Function fdate(ladate as Long)
    Dim FuncAcc as object
    FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
    fdate= FuncAcc.callFunction("ISLEAPYEAR", array(ladate))
End function


▼ページトップへ