トップページ > プログラム > 2015年12月02日 > iA4P55nL

書き込み順位&時間帯一覧

29 位/171 ID中時間01234567891011121314151617181920212223Total
書き込み数2000000000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part39 [転載禁止]©2ch.net

書き込みレス一覧

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セルずつ変更するってのは
あまり格好良いもんじゃないですよね?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。