末日を求めるには

VB6,VBA,VBS,EXCEL,DOS,BAT,WSH,WORDの小技メモ

HTML/ CSS/ CGI-Perl/ JavaScript/ JavaApplet/ AccessUp/ Internet/ EnglishLearn/ ちゃいちゃん天使/ 天使メッセージ/ 飯田ワールド/ 結城ワールド/ プロフィール/ WEB相談室/ WEBアンテナ/ 燈明日記/ Perlノート/ 漢字起源/ yahoo

はじめに

本ページは、ウインドウズ系全般のティプスメモです。

そう、はじめはVB系のティプスメモだったのですが…いつの間にか、ウインドウズ系全般のティプスメモになってしまいました。

ちなみに、ティプス(Tips)とは、マニュアルに書かれていない技法や裏わざのことですが、本ページでは、私が経験してこれはと思ったノウハウのメモになっています。

尚、以下は本サイトの最新情報(ブログ)です。

それでは、本ページが何かのお役に立てれば幸いです。ごゆっくりご覧ください。

◆末日を求めるには

月の末日を求めるには、うるう年の計算とかで、結構やっかいです。

そこで、IsDate関数を使って末日を31日からデクリメントして求めていけば、うるう年の計算を考慮しないで済むわけです。

Private Sub Command1_Click()
     Dim strMatujitu As String
        
     strMatujitu = GetMatujitu(Now)
End Sub
Public Function GetMatujitu(MyDate As String) As String
     Dim strWkDate    As String
     Dim vntMatubi    As Variant
        
     strWkDate = Year(MyDate) & "/" & Format(Month(MyDate), "00") & "/31"
     vntMatubi = 30
     '日付として認識できるまで繰り返す
     Do While Not IsDate(strWkDate)
          strWkDate = Year(MyDate) & "/" & Format(Month(MyDate), "00") & "/" & vntMatubi
            
          '1日前にする
          vntMatubi = vntMatubi - 1
     Loop
     GetMatujitu = strWkDate
End Function

尚、日にちのデクリメントには、DateAdd関数が使えそうですが、存在しない日をDateAdd関数の第3引数に渡すとエラーとなりました。

おわりに

以下のページには、すべてのTIPSがあります。もしよろしければ、どうぞ!

尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくVB-TIPS掲示板へご指摘ください。

人のよいところをどんどん見つけよう