【Excel VBA】SQ日を求めるオリジナル関数を作る


Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/take1mg/www/plus1/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

先日来からの自作クラスのお話で恐縮だが、Yahoo!知恵袋にネタが転がっていたので、頭の体操がてらに作成してみた。

元ネタはこちら
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11189847436

なんでも株の取引の定められた日らしくて、3、6、9、12月の第2金曜日までの日数が必要らしい。

今回は普通に(?)セルに入力する関数として作成してみた。

 

コード

Public Function daysOf2ndFriday(d As Date) As Integer
    Dim cal As DateCalculatorClass
    Set cal = New DateCalculatorClass
    
    Dim data(3) As Date
    Dim i As Integer, m As Integer
    For i = 0 To 3
        m = i * 3 + 3
        data(i) = cal.GetDatesOfFixedDay(6, Year(d), m)(1)
        If d < data(i) Then
            daysOf2ndFriday = cal.DiffDays(d, data(i))
            Exit Function
        End If
    Next i
    
    Set cal = Nothing
End Function

実行結果

ちなみに私は株はしないので、この関数、せっかく作ったけれどまったく必要がない…。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿、および宣伝に類する投稿は無視されますのでご注意ください。(スパム対策)