「お昼の放送」の思い出

エクセルのシートのコピーについて教えて下さい。
1日1シートで表計算できる表を作るよう指示されました。
シート内には、累計を出すように(前日までの合計)+(本日の数字)
の数式が入っています。
具体的に書きますと、セルA1に本日の数字を入力。
セルB1に(前日までの合計)+(本日の数字)と数式を入れました。
数式でいうと、例えばシート3のセルB1には(シート2:B1)+A1
シート4のセルB1には(シート3:B1)+A1
という具合にセルB1には前日までの合計を反映させるように、常に
前シートの累計をリンクさせています。

シートをコピーしては、セルB1の数式「前シート」部分を修正して
こつこつシート7まで作ったのですが、30日分作って欲しいと
言われて困っています。
時間がたくさんあればこつこつ続けて完成させるのですが、就業上の
問題があってこれにずっと時間を割くことができません。
説明が長くなりましたが、ここで教えて頂きたいのです!
数式を反映させながら、シートをどんどんコピーする方法は
ありませんでしょうか?
今、シート7まで作ったので、まんまコピーして7枚ずつ増やす
事は簡単ですが、累計部分の(前シート:B1)シートのリンクが
勝手には直ってくれません。
コピーすると同時に、前シートのリンクも直ってくれる方法が
あればぜひ教えて下さい。
よろしくお願いします。

A 回答 (3件)

完全にはVBAプログラムを作って


A.シートの追加
B。シート名の修正
C。前月残を参照しているセルの式の(シート名部分の)修正
が必要です。
質問者にはVBA(俗に言うマクロ)の経験なく、無理でしょう。
ですから一応、質問者には不可能です。
ーーー
ただし、
Aはシートのコピーという人手労力でする覚悟はついているでしょう。
Bもシート名の修正という人手労力でする覚悟はついているでしょう。
(シート名は関数では変えられないので、関数ではどうしようもない。)自動で連番的に振るなんて、VBAで無いと出来ない。
ーー
Cについては下記のような便法があります。
例で説明します。
Sheet1 内容は4月分 B16 今月残高がある
Sheet2 内容は5月分 A1に5と入れて、書式ユーザー定義で#月分で5
月分と見せる。A1セルの値は数字とする。
    B2の式 =INDIRECT((A1-1)& "月!B16")
これでSheet1のB16の数字を取ってくる。
Sheet2をコピーし、6月分をつくり、 B2を見ると
=INDIRECT((A1-1)& "月!B16")
A1セルに6 を入れる(注)と、Sheet2 (内容は5月分)のB16の数字が出る。(これは手修正しないとどうしようもない)
ーー
これでも他シートの参照が多い場合は間違いが少なく手軽。
ただし式の組み方に気をつける必要が有るが。
本当は年月などの数字を、シートのA1とB1には、入れるべきで、そうすると式が複雑化する。1月で12月の参照も式が複雑化する。
よいこと尽くめではないが、ことほどさように難しいということ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
お察しの通り、マクロは使えません。
セルのコピーをするように(シフトキーとドラッグでササーっと)
シートもコピーが出来るなら、その方法が知りたいと思い質問
させて頂きました。
やはり、簡単にはいかないとわかりました。
人手労力でする覚悟ができました。
コツコツやりたいと思います。
アドバイスありがとうございました。

お礼日時:2009/04/24 16:32

マクロしか思いつかないので、マクロで


シート名の指定が無いので「sheet」+「連番」としました
Sheetを「sheet1」以外すべて削除し、マクロを実行してください

Sub Macro1()
Dim i As Integer
Sheets("Sheet1").Select
For i = 2 To 30
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Sheet" & i
With Worksheets("sheet" & i)
.Range("B1").Formula = "=Sheet" & i - 1 & "!b1+a1"
End With
Next i
End Sub

試してみて
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
いろいろ書いて頂いたのですが、私はマクロが使えません。
似たような質問はないかと検索した際も、マクロの数式(?)
をよく見かけましたが、これを使うには勉強の時間が必要です。
その間にコツコツ作成したら出来そうな気がしますので、
今回は地道に作成したいと思います。
また、似たような指示を受けた際に活用できるように、勉強
しておきたいと思います。
アドバイスありがとうございました。

お礼日時:2009/04/24 16:25

30シート程度ならば、コツコツ作成した方が早いと思いますが如何でしょうか。


(1)先ずは30シートを作成、先頭シート除く残り全シートを選択(2番目シートタブをクリック後、最終シートタブをshiftキーを押しながらクリックし、シートのB1に「シート名!B1」と入力
(2)シートを選択を解除(選択されているシートタブ上で右クリック→作業グループを解除)
(3)各シートのB1のシート名を変更
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
難しいことはできませんので、コツコツ作成するのが
早いし確実だとわかりました。
アドバイスありがとうございました。

お礼日時:2009/04/24 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報