|
▼りお さん:
おはようございます。
わかりました。
アクティブシートのA1〜I1に書き込むコードです。
尚、A2には月の書き込み開始セル列番号
B2に書き込み開始月
C2に書き込み終了月
を入れておきます。
例1
8月〜4月という月をセルE1を開始セルとしたい場合、
A2 5
B2 8
C2 4
と入力してmainを実行します。
例2
8月〜7月という月をセルF1を開始セルとしたい場合、
A2 6
B2 8
C2 7
と入力してmainを実行します。
例3
1月〜12月という月をセルF1を開始セルとしたい場合、
A2 6
B2 1
C2 12
と入力してmainを実行します
標準モジュールに
'=============================================================
Sub main()
Dim st As Long
Dim stm As Long
Dim edm As Long
Dim idx As Long
Dim lim As Long
st = Range("a2")
stm = Range("b2").Value
edm = Range("c2").Value
idx = st
Dim myarray(1 To 9) As Variant
lim = UBound(myarray())
Do Until Month(DateSerial(Year(Date), stm, 1)) = edm Or idx = st + lim
myarray(IIf(idx Mod lim = 0, lim, idx Mod lim)) = DateSerial(Year(Date), stm, 1)
idx = idx + 1
stm = stm + 1
Loop
If Month(DateSerial(Year(Date), stm, 1)) = edm Then
myarray(IIf(idx Mod lim = 0, lim, idx Mod lim)) = DateSerial(Year(Date), stm, 1)
End If
With Range("a1:i1")
.Value = myarray()
.NumberFormatLocal = "m""月"""
End With
End Sub
尚、今から出かけてしまうので
問題があった場合は、投稿は15日以降になってしまいます。
確認してください。
|
|