- Excel VBA 質問スレ Part39 [転載禁止]©2ch.net
15 :デフォルトの名無しさん[sage]:2015/12/02(水) 00:19:38.80 ID:iA4P55nL - >>12
こんなかんじ? 日と曜日は別の列のほうが良い気もするけど(セルの書式が違っちゃうから) Sub test() Dim yr As Long Dim mo As Long Dim dy As Long With ThisWorkbook.Sheets(1) .Cells(3, 2).CurrentRegion.Clear yr = .Range("B1") mo = .Range("D1") For dy = 1 To Day(DateSerial(yr, mo + 1, 0)) .Cells(dy * 2 + 1, 2) = dy .Cells(dy * 2 + 2, 2) = DateSerial(yr, mo, dy) .Cells(dy * 2 + 2, 2).NumberFormatLocal = "aaa" Next dy End With End Sub
| - Excel VBA 質問スレ Part39 [転載禁止]©2ch.net
19 :デフォルトの名無しさん[sage]:2015/12/02(水) 00:38:55.45 ID:iA4P55nL - >>16
とりあえず年(仮にyrとする)と月(仮にmoとする)が定まれば Day(DateSerial(yr, mo + 1, 0)) つまり、翌月のゼロ日(1日の前の日)を求める事で、 その月の日数をエクセルが自動的に出してくれるんですよ あと、セルの書式設定も日と曜日が別の列なら 曜日の列だけをNumberFormatLocal = "aaa"でいっぺんに設定できます 例えば曜日をC列にするなら .Columns(3).NumberFormatLocal = "aaa" だけで済むわけです >>15みたいにループの中で1セルずつ変更するってのは あまり格好良いもんじゃないですよね?
|
|