2009/03/09

VBScriptで月末日取得 最強処理・・・


つか、VBSで無くとも応用できます、閏とか一切気にしなくてイイです。

今日の月の月末日は ってのは
   n = Now()
ny = Year(n)
nm = Month(n)

ML = DateValue(ny,nm+1,0)
コレだけ(爆)

優良サイトではないので変数宣言省いてマスΨ(`∀´)Ψ

単に日付が欲しいだけで、イチイチ閏なんて計算してらんないって、バカらしくてw
ただ、税額処理だの、給与計算だのってぇのでは、意外に使える(実際使ってた)

+1 0 ってトコがツボ。大体殆どの開発環境で使えるし、
Excelワークシート関数なら
   =DATEVALUE(YEAR(NOW())&"/"&MONTH(NOW())+1&"/1")-1    
こうなる。

Excel/AccessなどのVBAでも有効な手段。
   Dim nYear As Integer ,nMonth As Integer

nYear = 2009
nMonth = 2

'日付値が欲しい場合
LastDay = DateSerial(nYear, nMonth + 1, 0)

'日のみ欲しい場合
LastDay = Day(DateSerial(nYear, nMonth + 1, 0))


Excelに対し、DateControls.xlaと云うExcelAddinファイルをツクって、
モジュールにFunctionsと銘打って、その中に記述していた関数、
Public宣言とApplication.Volatile記述で、ワークシート関数として使っていたブツ。
    '----------------------------------------         
'LastDayGet - Serial値から日付を取得し同月の末日を返す。
'- Created by LazwardFox -

'閏月対応

'update 200607031715 エラートラップ修正
'Release200511291534

Public Function LastDay(Optional ByVal Target As Variant = "") As Integer
On Error Resume Next
Application.Volatile
If Target = "" Or Target = 0 Or IsError(Target) Then
Target = Now()
End If
LastDay = Day(DateSerial(Year(Target), Month(Target) + 1, 0))
End Function


しかし、最近はExcelも使わなくなったなぁ・・・

って、職があった頃から、Excelには見切りつけて、
数百MB規模のデカいデータは、VBSで適宜処理して、AccessやSQL鯖にブチ込んで処理してたケドねww

つか、プーしてる今となっては、無用の長物だけどねww
<月末 日付取得 うるう Excel Access VBA>

0 件のコメント:

コメントを投稿