エクセル(マクロ)で累計部分を更新しながらシートを
日報作成をマクロで自動化する方法を探しています。
とりあえずできたのは、
1:「1日」シートを作り、セルA1には日付「2015年9月1日」を入力。
2:「1日」シートをコピーして「2日」シートを作成し、セルA1の日付を「2015年9月2日」に変更。
3:2の作業を「31日」シートまで繰り返す。
というところまでです。
(1つのワークブックに、「1日」~「31日」までのシートがある状態です。)
これに加えて、たとえば、セルB1に当日売上を入力すると、
セルB2に月累計が出るようにしたいのです。
試してみたのは、「1日」シートのセルB2に「=B1」と入力し、
「2日」~「31日」シートのB2に
=INDIRECT(TEXT(A1-1,"1日")&"!B2")+B1
と入力してみましたが、これだと月累計ではなく「1日」シートのみとの合計になってしまい、
「3日」~「31日」シートでは、数式内のシート名"1日"の部分を
手動で更新していかなければなりません。
数式内のシート名を翌日の日付に変更しながらシートをコピーする方法はありますか?
または、
B2=前日シートのB2+当日シートのB1
となる数式は無いでしょうか??
ちなみに今マクロで使っているのは下記のコードです。
———————————
Sub 日報作成()
Dim firstDay As Date
firstDay = InputBox("日報", "最初の日付を指定", Date) '最初のシートの日付を指定
Worksheets("1日").Range("A1") = firstDay
Dim i As Integer
For i = 1 To 30
Worksheets("1日").Copy after:=Worksheets(Worksheets.Count) '1日のコピーを末尾に作る
Worksheets(Worksheets.Count).Name = i + 1 & "日" 'コピーしたシートの名前を変える
Range("A1").Value = DateAdd("d", i, firstDay) '日付を一日ずつ足していく
Next i
End Sub
―――――――――――
似たようなデータを毎月大量に作るので、どうにか効率化できたらと思っています。
ちなみに、わたしはプログラミングCを少しかじったことがありますが、
マクロを使うのは初で、上記もネットで見つけたコードを少しいじった程度です、、
詳しい方がいらしたら教えてください。
よろしくお願いいたします。
補足
すみません・・・エクセルです。入力シートも日々のシートも同じ書式で作成しています。 日々の名前で保存しているのですが、その保存の仕方では他の作業に支障が出てしまって・・・。会社内のことなので詳しくは・・・ 「入力シート」に売上金額や商品番号など入力したものを、その日付に応じた「○日」のシートに「値だけ」貼り付けをしていこうと思います。 エクセルのマクロで作成したのですが、精々以下のことしか出来ず・・・ Cells.Select Selection.Copy Sheets("1日").Select Cells.Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("D7").Select End Sub 入力シートのセルC1などに、日付(1など)を入力しておくと、その日付の数字に対応したシートへコピーが出来ないかと思っているのですが。 パソコンに詳しくなく、見よう見まねでマクロをしています。 この程度の説明しかできませんが、どうぞよろしくお願いします。