|
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_050.html
こちらの井上さんの作成された
(いつも活用させて頂いてます。井上さんありがとうございます!)
関数"CHECKEIGYOBI"を使用させて頂いて
こんな感じでも必要な日付を取得できそうです。
時間があるときにでも試してみてください。
Option Explicit
Sub Test()
Dim Ans As String
Dim Datebuf As Date, StDay As Date, EnDay As Date
Dim Fg As Boolean
Dim Ran As Range
Dim i As Long
Ans = InputBox("作成する月を指定(yyyy/mm)")
If Ans Like "####/##" = False Then
MsgBox "yyyy/mmで指定してください": Exit Sub
End If
Cells.ClearContents
Set Ran = Range("A1:B1")
Ran = Array("開始日", "終了日")
i = 1: Fg = False
Datebuf = DateValue(Ans & "/01")
Do While Format(Datebuf, "yyyy/mm") Like Ans = True
If CHECKEIGYOBI(Datebuf) = 1 Then
If Fg = False Then
StDay = Datebuf: Fg = True
End If
EnDay = Datebuf
Else
If Fg = True Then
Ran.Offset(i) = Array(StDay, EnDay)
i = i + 1: Fg = False
End If
End If
Datebuf = Datebuf + 1
Loop
'最終週用
If Fg = True Then
Ran.Offset(i) = Array(StDay, EnDay)
End If
End Sub
|
|