こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセル内の数式を反映させながらシートをコピーする方法

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

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

投稿日時 - 2009-04-24 10:46:25

QNo.4904707

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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月の参照も式が複雑化する。
よいこと尽くめではないが、ことほどさように難しいということ。

投稿日時 - 2009-04-24 12:01:11

お礼

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

投稿日時 - 2009-04-24 16:32:22

ANo.2

マクロしか思いつかないので、マクロで
シート名の指定が無いので「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

試してみて

投稿日時 - 2009-04-24 11:21:28

お礼

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

投稿日時 - 2009-04-24 16:25:45

ANo.1

30シート程度ならば、コツコツ作成した方が早いと思いますが如何でしょうか。
(1)先ずは30シートを作成、先頭シート除く残り全シートを選択(2番目シートタブをクリック後、最終シートタブをshiftキーを押しながらクリックし、シートのB1に「シート名!B1」と入力
(2)シートを選択を解除(選択されているシートタブ上で右クリック→作業グループを解除)
(3)各シートのB1のシート名を変更

投稿日時 - 2009-04-24 11:18:18

お礼

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

投稿日時 - 2009-04-24 16:20:16

あなたにオススメの質問