[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『カレンダー作成』(る)
エクセルで年間カレンダー(曜日なし)の作り方を教えて下さい。
1月1日のセルに入力ですべて(1月〜12月31日)表示になる設定。
2019年
1月 2月 3月・・・12月 1日 2日 3日 ・ ・ ・ 31日
< 使用 Excel:Excel2010、使用 OS:unknown >
こんにちは^^きっともっとスマートな方法が有ると思いますが。。。 処理対象シート名[ Sheet1 ] Option Explicit Sub main() Dim Td As Date Dim i As Long Dim y As Long Dim x As Long y = 1: x = 1 With Worksheets("Sheet1") .Cells.Clear Td = DateSerial(2019, 1, 1) .Cells(y, x) = Td y = y + 1 For i = 1 To 365 .Cells(y, x) = Format(Td, "m/d") y = y + 1 Td = Td + 1 If Format(.Cells(y, x).Offset(-1).Value, "m") <> Format(Td, "m") Then If Format(Td, "mmdd") = "0101" Then Exit For x = x + 1: y = 1 .Cells(y, x) = Td y = y + 1 End If Next .Rows(1).SpecialCells(2).NumberFormatLocal = "m月" End With End Sub (隠居じーさん) 2019/05/08(水) 14:19
数式案です。
Sub test() ActiveSheet.Cells(1, 1).Value = Year(Date) ActiveSheet.Cells(2, 1).Resize(, 12).Formula = "=column()&" & """" & "月" & """" ActiveSheet.Cells(3, 1).Resize(31, 12).Formula = "=IF(MONTH(DATE(YEAR(TODAY()),COLUMN(),ROW()-2))<>COLUMN()," & """" & """" & ",TEXT(DATE(YEAR(TODAY()),COLUMN(),ROW()-2)," & """" & "d" & """" & "))" End Sub
(カリーニン) 2019/05/08(水) 15:07
私の数式案は、各日付のセルは日付データに なってないので注意が必要です (カリーニン) 2019/05/08(水) 15:10
ちょっと手を加えました。 ※相変わらず日付データにはなってません。
Sub test2() ActiveSheet.Cells(1, 1).Value = Year(Date) ActiveSheet.Cells(1, 1).NumberFormatLocal = "0年" ActiveSheet.Cells(2, 1).Resize(, 12).Formula = "=column()&" & """" & "月" & """" ActiveSheet.Cells(3, 1).Resize(31, 12).Formula = "=IF(MONTH(DATE($A$1,COLUMN(),ROW()-2))<>COLUMN()," & """" & """" & ",TEXT(DATE($A$1,COLUMN(),ROW()-2)," & """" & "D日" & """" & "))" End Sub (カリーニン) 2019/05/08(水) 16:19
↓みたいなことだと思って書いてしまったので投稿します。
漠然としていてよく分かりませんが、
[2019/1/1] に 1を加算することで 2019/1/2 になりますから、
A2セルに入力するのであれば、A3セルに「=A2+1」でよいですよね。
この発想で、A4セルに「=A3+1」となるようにA3〜A32まで数式をフィルコピー。
さらにそのまま、L列までフィルコピー
B2セルに「=EDATE(A2,1)」と入力してL列までフィルコピー
A1セルに「=A2」と入力してL列までフィルコピー
セルの書式設定で 1行目の表示形式を「m"月"」
セルの書式設定で 2~32行目の表示形式を「d"日"」
あとは、31日までない月を探してその日をクリアすればいいんじゃないですか?
(数式で""にしてもよい。)
(もこな2) 2019/05/08(水) 19:25
Private Sub CommandButton1_Click() Dim d As Date, y As Long
With Range("A3:L33") .ClearComments .NumberFormatLocal = "d日" End With y = Range("A1").Value
For d = DateSerial(y, 1, 1) To DateSerial(y, 12, 31) Cells(Day(d) + 2, Month(d)).Value = d Next End Sub
(hatena) 2019/05/08(水) 20:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.