- ベストアンサー
エクセルの日付入力
基本的なことなのですが、 A列に 4月1日 4月1日 4月1日 4月1日 4月1日 4月1日 4月2日 4月2日 4月2日 4月2日 4月2日 4月2日 ・ ・ ・ ・ 3月31日 3月31日 3月31日 3月31日 3月31日 3月31日 というように各日を6個ずつ書き込みたいのですが。 よい方法がありましたら教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
diashun です。 マクロでよければ下記のコードをVBAのModule1にコピーしてください。 ''ここから****************** Option Explicit Sub Macro1() Dim iDays As Integer Dim r1 As Range Dim i1 As Integer Dim i2 As Integer Application.ScreenUpdating = False ''月日を表示するセルの数を得る iDays = (DateSerial(2005, 3, 31) - DateSerial(2004, 3, 31)) * 6 Set r1 = Range(Cells(1, 1), Cells(iDays, 1)) r1.Select ''月日の「表示形式を指定する Selection.NumberFormatLocal = "m""月""d""日"";@" iDays = (DateSerial(2005, 3, 31) - DateSerial(2004, 3, 31)) ''月日を入力する For i1 = 0 To iDays - 1 ''同一月日を6回繰り返す For i2 = 0 + i2 To 5 + i2 r1(i2 + 1) = CDate(DateSerial(2004, 4, 1) + i1) Next i2 Next i1 Application.ScreenUpdating = True Range("A1").Select Set r1 = Nothing Range("A1").Activate End Sub ''ここまで***************************** この後、エクセルのメニューバー「ツール」→「マクロ」→マクロを選択し、マクロ選択ダイアログで「Macro1」を実行すると、ご期待通りの月日が自動入力されます。
その他の回答 (3)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 こんな方法もあります。 開始セルに、 =INT("2004/4/1"+(ROW(A1)-1)*"4:0") と入力して、下の行へコピーします。
- imogasi
- ベストアンサー率27% (4737/17069)
●直截的には A1に="2004/4/1"+INT((ROW(A1)-1)/6)といれて下方向へ 複写してください。 日付を””””で囲うことがミソです。 ●思いつきやすそうな解 A列A1に2004/4/1,A2に2004/4/2を入れます。 A1:A2を範囲指定して、+ハンドルを引っ張り2005/3/31 まで引っ張ります。1日1行の日付が出来ます。 B列B1に=OFFSET($A$1,INT((ROW(B1)-1)/6),0)と入れて 355*6行まで、式を複写します。 同一日付だ6行ずつセットされました。 B列でなくSheet2に出すなら=OFFSET(Sheet1!$A$1,INT((ROW(B1)-1)/6),0)にしてください。 どちらも列の書式を日付にしておくこと。
- mshr1962
- ベストアンサー率39% (7417/18945)
A2から始めるとして A2="04/01"+INT((ROW()-2)/6) で下のほうにコピーしてください。