• ベストアンサー

EXCELのシート間でのマクロ計算

毎日の日報をEXCELのワークシートで作成しております。日報は、その「日」の売上とその「月」の売上(累計)を出すようにしております。月の売上(累計)は、前日の売上のシート(前日分)+本日の売上のシート(本日分)で表しております。日報は、項目がたくさんあるので、月売上を出す場合、シート間での毎日の計算作業が面倒です。ですから、この計算作業をマクロで出来ればと思っております。1つのシートでマクロを使用することは解るのですが、シート間でマクロを利用するやり方がわかりません。 なにとぞ、よろしくお願いいたします。

noname#30572
noname#30572

質問者が選んだベストアンサー

  • ベストアンサー
  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.2

下記のようになります。 For i = 2 To Sheets.Count Sheets(i).Cells(1, 3) = Sheets(i - 1).Cells(1, 3) + Sheets(i).Cells(1, 2) Next

その他の回答 (1)

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

ほかのシートのセルの値を参照する時は、Sheets("SHEET2").Cells(1, 1) とします。 ほかのシートに移動するときは、Sheets("SHEET2").Select とします。

noname#30572
質問者

補足

ご回答ありがとうございます。 すいません。ご回答のご説明が良く解りません・・と言いますか、 私の質問の内容に不足があるのかもしれませんので、再度、数式の例を使用して詳しく申し上げます。 ○ / 数量 / 単価 / 合計 / 累計 SHeet1 ) 5 / 10 / 50 / 60 6月1日 2 / 20 / 40 / 70 Sheet2) 3 / 10 / 30 / 90 6月2日 4 / 20 / 80 / 150 Sheet3) 4 / 10 / 40 / 130 6月3日 2 / 20 / 40 / 190 上記の6月3日(Sheet3)の累計を出す場合(130を出す場合) の数式は、Sheet3の合計40+Sheet2の累計90=としております。 累計を出す場合、本日の合計+前日の累計=本日累計として毎日新たに日報を作成しおります。マクロは、同じ作業を記憶して処理してくれますので、この「本日の合計+前日の累計」のSheet間の計算をマクロで記憶して自動的に毎日出したいのですが、出来るのでしょうか? よろしくお願いいたします。

関連するQ&A

  • エクセル2000でシート間の計算

    複数シートに同じ表を何枚も作成しているのですが。シート+シート+シート……の様な計算をしたいのですが(各月の売上のシート(色々な項目の)が何枚もあって4~9月の累計売上を出すみたいな)。昔95のとき、本を読んで理解していたつもりでしたが思い出せません。「串ざし計算」ってゆうんですかね?どなたか、手順を教えてもらえませんか。

  • エクセル:シートを増やすと計算が反映されません・・

    No.465690で計算の仕方を教わったものです。(以下引用) -------------------- 今現在、 ・毎月の計算で、月ごとにシートが増えていきます。 ・毎月、当月の売上と累計を手入力しています。 例として、1月からスタートするとして <1月 sheet1>   A     B 1当月売上 150(手入力) 2売上累計 150(手入力) <2月 sheet2>   A     B 5当月売上 180(手入力) 6売上累計 330 ※分かりやすくする為、行の番号を変えてみました1.2と5.6  A.Bは列番号とお考え下さい これを、2月の当月売上だけを入力すれば、 自動的に2月の売上累計が増えるようにはできませんか? そして3月も同じく、当月売上を入力して 2月で計算された累計にプラスすることはできるのでしょうか?? ご指導お願いいたします。 -------------------- これで教えていただいた方法(2月sheet2で =sheet1!B2+B5)で 確かに計算は出来たのですが、 翌月(3月)にシートをコピーなどして増やしても sheet3の欄には =sheet1!+B5 となってしまい、 1月+3月という形になってしまいます。(当たり前なのでしょうが・・) 毎月計算式を手入力するのなら式を入れる意味が無いので・・・ なんとか「前月+今月」という計算をする方法は無いでしょうか。 シートを毎月増やしていく事から、シートの増やし方も踏まえて 教えていただけないでしょうか・・・。 <1月 sheet1>   A     B 1当月売上 150(手入力) 2売上累計 150(手入力) <2月 sheet2>   A     B 5当月売上 180(手入力) 6売上累計 330(=sheet1!B2+B5) <3月 sheet3>   A     B 7当月売上 50(手入力) 8売上累計 380 になるために・・(?)

  • エクセルの営業日報で累計を残す方法

    エクセル初心者です。 エクセルで一か月分の営業日報をつくりました。 当日売上と当月累計等が横並びになっていてるものです。 シートを1枚作り、1日を31日までコピーし、1,2,3,4~31となっています。 完成した日報の累計は串刺し算でもとめています。   例:売上累計は=SUM(Start:End!A1) この計算だと、たとえば15日まで記入した場合、10日の売上累計を確認したくても 1~31すべての累計が同じ数字になっていて見返すことができません。 毎日の累計を残したい場合はどのような対策が有効でしょうか?? ※マクロも少し(シートを「1」作り、シート名「1」~「31」でコピー)だけですが挑戦しました(汗)

  • EXCELで複数のシートの日々の累計

    初めて投稿いたします。 とても困っているので、どうぞ宜しく御願いします。 エクセル2000で、1つのBOOKに一ヶ月分の日報のシートを作成しました。 各シート名は、6月1日、6月2日、6月3日~6月30日となっています。 例えば、 この6月2日のシートのC1に6月2日の売り上げを手入力すると、このシートの E1に前日(6月1日)の売り上げ(6月1日シートのC1)+今日(6月2日)の売り上げ =累計が計算されるようにしたいのです。 月によって、営業日数が違うので、もう一枚シートを作成して、そのシートのA列に 営業日数分のシート名(6月1日、6月2日・・・)を縦に羅列し、それを読んでその名前のシートの売り上げ(C1)を読んで、当日の売り上げと累計していきたいのです。 初日は、当日の売り上げが累計値となり、 2日目は、1日目+2日目の値 3日目は、1日目+2日目+3日目の値となるようにしたいのです。 似たような質問をされているのを探して、いろいろと試してみましたが、 関数もVLOOKUPやIF等の簡単なものした使用したことがなく、うまくいかないのです。 どうか、詳しく教えていただけると、助かります。 宜しく御願いします。

  • エクセルの計算式ですが・・・

    教えて下さい。エクセルで日々の売上日報を作っておりますが 日ごとの売上予算があり、それに伴う達成率実績がありますが、今現在3日分なら3日分の 予算累計に対する実績累計の達成率を自動で入れる計算式の作り方がわかりません。 もしかして簡単に出来るのかも知れませんが、ちょっと迷子状態です。 よろしくお願い致します。

  • エクセルでこんな計算できますか?

    今現在、 ・毎月の計算で、月ごとにシートが増えていきます。 ・毎月、当月の売上と累計を手入力しています。 例として、1月からスタートするとして <1月 sheet1>   A     B 1当月売上 150(手入力) 2売上累計 150(手入力) <2月 sheet2>   A     B 5当月売上 180(手入力) 6売上累計 330 ※分かりやすくする為、行の番号を変えてみました1.2と5.6  A.Bは列番号とお考え下さい これを、2月の当月売上だけを入力すれば、 自動的に2月の売上累計が増えるようにはできませんか? そして3月も同じく、当月売上を入力して 2月で計算された累計にプラスすることはできるのでしょうか?? ご指導お願いいたします。

  • EXCELシート内のセルのシート間コピー

    エクセル2003を使用しております。 業務で日報を毎日書いているのですが 日付ごとにシートが変わります。 前日分の引継ぎ事項を本日分のシートに というように1つ前のシートの1部を常に コピーしたいのですが何か良い方法が あれば教えていただきたいです。 ちなみにコピーしたものは編集可能で なければいけません。 よろしくお願い致します。

  • シート名を計算式に反映させる方法

    お世話になります。 エクセル2003で、毎日の日報を作成しており、日ごとに1シートを使用しています。B1セルには日付が入り、シート名はその日付と連動させています。その中で、当日までの売り上げの累計欄があり、その計算方法は串刺し計算で、日々のシートの前後に「Top」と「End]というシートを作り、例えばA1セルに当日の売り上げを入力するとすれば、A2セルに「=SUM(Top:End!A1)」と入力して、「Top」から「End」の合計を出しています。 ところがこの方法では、日付を遡って日報を出したい場合は、Endシートまでの合計が、遡った日付のシートでも計算されてしまうので、これを解決しようと思い、B1セルの日付データを使って =SUM('Top:text(B1,m月d日)'!A1) と入力してtopシートから当日までの串刺しをしようとしてみたのですが、=SUM('Top:[text(B1,m月d日)]text(B1,m月d日)'!A1)という式に自動的に変わってしまいできません。どのようにすればよいのでしょうか。マクロは使わない方向で、できればよろしくお願いいたします。

  • 再度エクセルの表計算についての質問です。

    前回の回答の後、お二人の答えや、自分なりに調べたり、試したりしたのですが よく分からないことがありますので再度質問させて頂きます。  EXCEL2010 で作表しています。    まず、4つのシート 1.(売上日報)              2.(現金収支表)              3.(商品受け渡し表)              4.(各レジ現金管理表)、これらが1つのブックで1日となります。  このブックを『01』として、これをコピーして、ひと月分『01』~『31』を作り              1..(売上日報)では、数種類の売上項目が累計で必要ですので                 前日のデータを参照して計算する                                            2.(現金収支表)              3.(商品受け渡し表)では、金種ごとに残高の繰越が必要なので                これも前日のデータを参照して計算する  これを作る過程で質問があります。 【質問A】 1日単位のブックをコピーしたわけですから、当然日付をひとつのセル毎で       書き換えなければならないのですが、一括で書き換えは出来ないでしょうか? 【質問B】 休日が不定期なので第1回答のように別に表を作り       元の表に入力したら自動で別表に記入するのは       どうすれば良いでしょうか?      よろしくお願い致します。         

  • エクセル(マクロ)で累計部分を更新しながらシートを

    日報作成をマクロで自動化する方法を探しています。 とりあえずできたのは、 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を少しかじったことがありますが、 マクロを使うのは初で、上記もネットで見つけたコードを少しいじった程度です、、 詳しい方がいらしたら教えてください。 よろしくお願いいたします。