• ベストアンサー

エクセルのマクロ(2回目)を教えて下さい。

串刺し加算(多数のシートの同じセル番地を集計する)のマクロは出来ますか?? シート数が10 加算したいセル数が約1000箇所 加算する位置はA1,A2,B4,B5,D6など様々です。 各支店別の在庫数と出荷数および金額のシートを各支店合計のシートに集計したいからです。 各支店別と各支店合計のフォーマットは同じです。 できれば、あらかじめ集計する各支店別シートとセル番地をシートに記載できるとベストですが。 こんなわがままなマクロなんて出来ますか?

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

  • ベストアンサー
回答No.2

Sub Syukei() '変数宣言部//////////////////////////////////////////////////////// Dim WsSyukei As Worksheet '集計するワークシート Dim intCol As Integer '集計を表示する列 Dim intRefCol As Integer '集計したいセル番地を入力してある列 Dim lngGoukei As Long '集計した数字 Dim i As Integer 'ループカウント Dim j As Integer 'ループカウント '////////////////////////////////////////////////////////////////// '各変数に代入(適宜変更してください)/////////////////////////////// Set WsSyukei = Worksheets("集計") '処理したいワークシート名を指定 intCol=2 '集計シートのB列に合計を表示 intRefCol=1 '集計シートのA列に参照したいセル番地を入力 '/////////////////////////////////////////////////////////////////// ’集計したいセル番地ごとのループ For i = 10 To 1009 ’ワークシートのループ For j = 1 To 10 lngGoukei=lngGoukei+Worksheets(j).Range(WsSyukei.Cells(i,intRefCol)) Next WsSyukei.Cells(i,intCol)=lngGoukei lngGoukei=0 'lngGoukeiの初期化 Next End Sub ################################################################## 下は集計を表示する「集計」というシートです。 集計したいセル番地をA列10番から下へ入力しておきます。 この10とはループカウントのiに対応しています。 ループカウントのjはシートのインデックスです。 □ A  B  C  ・          10__A1        11__A2        12__B4        13__B5        14__D6        ・          ・          ・          実行すれば集計シートのB10から下方向へA列に入力したセル番地の 合計が表示されます。   ループの構文を簡単にしたいためにワークシートのループはインデックス で行っていますので注意してください。 まことに申し訳ないのですが、現在VB環境が手元に無く、すべてメモ帳での 手打ちとなっております。 タイプミス構文ミスがもしかしたらあるかも しれません。ぼくも明朝検証してみますのでお許しください。

その他の回答 (3)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.4

> あらかじめ集計する各支店別シートとセル番地をシートに記載できるとベストですが。 これが出来ているのなら、それを集計用のシートにしてしまっては?  A      B 1 Sheet1  A2 2 Sheet2  A2 3 Sheet3  A2 というシートがあるのなら、隣のC列に、 =INDIRECT(A1&"!"&B1) を指定すると、Sheet1!A2, Sheet2!A2, Sheet3!A2の値が取れますから、SUM関数なんかで簡単に集計できます。

回答No.3

#2です 検証したところ問題はないのですが、Worksheetsコレクションの インデックスは、シートの見かけ上の位置で振られるみたいです。 つまりぼくの回答を正しく動作させるためには「集計」シートを いちばん右においてください。 いちばん左におきたい時は、 jのループを For j = 2 To 11 としてください。

kosyou001
質問者

補足

遅くなりましたが、ありがとうございました。 捕足で追加をお願いします。 集計した値を合計シート(別シート)の、読みこんだセル番地と同じセル番地に書きこみできませんか? 分かれば教えて下さい。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>シート数が10  まああまり沢山でなくて良かった。 >「加算したいセル数が約1000箇所」ある。 >加算する位置はA1,A2,B4,B5,D6など様々です。 何か、(ルール性を)言葉で表現できませんか。 表現できても、コードにするには難しいケースもありますが、表現さえも出来なければ、コード化できないでしょう。とり合えず表現出きればして見てください。 出来ないとなると、串ざし演算をするセル番地を列挙して、テーブル(表)に(人手で)作らないとならないですが、操作と変らなくなるほど面倒かも。「>できれば、あらかじめ集計する各支店別シートとセル番地をシートに記載できるとベスト」とはそのことを言っておられるとすれば、発想が逆と申しましょうか?? 意味の取り違え等の節はお詫びします。

関連するQ&A

  • Excel集計の反映

    こんばんは! いつもお世話になっています。  Excelで一つのbookに19sheetあり同じフォーマットの表で、 <例> sheet1は「A」が 1・sheet2は「A」が4・・・・という感じでsheet18迄、各sheetに集計した数がでています。 sheet19には「A」の数を出すセル(B10)に【同じセル番地のsheetの合計を出す関数「=SUM(sheet1:sheet18!B10)」】この様な感じで18枚のシートの合計を表したのがsheet19になっています。 そこで、フォーマットが違う別のbookのsheetに勿論、違うセル番地の「A」の数を出すセルにsheet19の「A」の値を反映できるのでしょうか?  ご存知の方いらっしゃいましたら教えて下さい。 初心者の為、お手数ですが具体的に教えて頂けると幸いです。  簡単に説明してしまった為、説明がわからない時は補足するので遠慮なく言って下さい。 宜しくお願いします。

  • シートを串刺しで抽出したいのですがそれはマクロですか?

    こんにちは。 エクセルの串刺し集計ではなく、串刺し抽出のことでわからないので 教えて下さい。 ・同じブック内に顧客20件のデータが管理されています。 ・1シート毎が1顧客の単価帳になっています。 ・A1に顧客の名前(同じくシート名もこれと同じく顧客の  名前をつけています。) ・抽出したいのは顧客20件の各シートのA50:B53です。 同じブックの新規シートに「A1の顧客名」と(どれを抽出したか わからなくなってしまうから必要なのかな?と思います。) 20シート全ての「A50:B53」を抜き出すことは可能でしょうか? 抜き出したいセル番地は20シート一緒です。 それぞれのシートはA2からA49までの抽出しなくてもいいセルは、  不規則にだらだらと製品名や個々の単価が入力されています。 転職した会社でデータ管理がなされていなくてビックリしています。 とは言え私もマクロなどは経験がなく、なにをしたらできるのかが さっぱり分かりません。 でも確か前の会社ではできていたのに・・・? あれはアクセスだったのかなぁ? などという状態です。 VBAマクロの本を読みあさりましたが よくわかりませんでした。 とっかかりを教えていただければありがたいです。 よろしくお願いします。

  • Excel マクロ 条件抽出貼り付け等

    いろいろ拝見させていただいているのですが うまく設定できず、困っています。 使用者が数名いる(そしてその数名がそれぞれで集計を取りたい)ので シートのタブ名、シート数、基準となる年月が固定されないことが前提です。 集計のシートがあります(このシートもたとえば2月・3月・4月…と数ヶ月分で複数シートになる可能性があります) ・A1セルには、起点となる年月が入力 ・A3~A6セルには、目標・予定・実績・備考が入ります。 各支店のシートがあります(支店数は、使用者によって様々です。最大で25くらいになるかと思いますが、書式は同じです) ・A1セルには、支店名(タブを変更したら、A1セルが連動するように数式を組んでいます) ・A2セル、A8セル、以降6行毎に、年月日(1シートで12ヶ月分予定) ・A3~A6セルには、目標・予定・実績・備考が入ります。 ・表の一塊は、A2:AB6です。 各支店のシートから集計シートに転記をしたい。 A支店~たとえばG支店までの7支店があり、 (1)集計シートA1セルにある年月を基準に、各支店シートの該当月の表の検索をかけ (2)集計シートのA2以降6行毎(各支店シートでは年月を入れているセル)のセルに支店名を張り付け (3)各支店シートA3:AB6の内容を、集計シートのA3:AB6に値と数値の書式貼り付けをしたい  (表一塊毎) (4)集計シートのA支店・B支店の貼り付けの間には、1行挿入をしておきたい 同じような質問が…というお返事があることを承知でお伺いしています。 いただいた回答を基に、勉強をしていきたいと思っていますので なにとぞよろしくお願い申し上げます。

  • エクセル 行挿入のマクロについて

    こんばんは、エクセルのマクロについてお伺いします。 現在 A1:支店名 B1:連番 C1:在庫数 全部で1000行位入力があります。 ・A列には支店名 ・B列には連番は1・2・3~と1000件位 ・c列には在個数にはそれぞれ1桁から2桁の数字 【質問】 在庫数の数だけその連番の行を増やしたい。 例えば、 A2:東京支店 B2連番:1 C2在庫数:3 だとすると2行目のあとに2行挿入し在庫数が3なので下記のように3行にしたい。 A2 東京支店 B2連番 1 C2 在庫数 1 A3 東京支店 B3連番 1 C3 在庫数 空欄 A4 東京支店 B4連番 1 C4 在庫数 空欄 何せ数が多いのでマクロをお教え頂ければ助かります。 ※その際、支店名と連番は同じ物がはいるとありがたいです。 ※在庫数は空欄で構いません。 マクロでなくても方法があればお教え下さい。 よろしくお願い致します。

  • 複数のエクセルブックから転記するマクロを教えて

    エクセル2010で、1つのフォルダ内にある複数のエクセルブック(約50支店分)の売上シートから、担当者別の日次売上等の集計マクロを作成したいのですが方法がわかりません。支店ごとの担当者数は、支店ごとに違います。ご協力お願いします ■基本条件 ・毎日、支店がブック内の売上シートに入力(更新)し保存する。売上シートには、担当者が複数名登録されており、支店によって担当者数は異なります。 ・全店とも中身は同書式同形式ファイル  例)売上報告A店.XLS、売上報告B店.XLS・・・ ■マクロ(集計.XLS)でやりたいこと ・各支店ブックの売上シートから、担当者名(A5)・売上A(B5)・売上B(C5)を転記し明細表の作成 どなたか教えていただけますでしょうか?よろしくお願いします。

  • エクセルで集計をしたいのです

    お世話になります。 Accessからエクスポートした表があります。 (集計元表) [商品名]|[支店名]|[日付]|[売上数]| 商品A|支店1|2011/08/01|6| 商品A|支店1|2011/08/05|2| 商品A|支店2|2011/08/01|3| 商品B|支店1|2011/08/01|9| 商品B|支店2|2011/08/01|1| … これを以下のように、商品毎に表にしたいのです。 (集計表:商品A) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 6 | 0 | 0 | 0 | 2 | 8 | 支店2| 3 | 0 | 0 | 0 | 0 | 3 | 合計 | 9 | 0 | 0 | 0 | 2 | 11 | (集計表:商品B) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 9 | 0 | 0 | 0 | 0 | 9 | 支店2| 1 | 0 | 0 | 0 | 0 | 1 | 合計 | 10 | 0 | 0 | 0 | 0 | 10 | 合計の行/列は最後にsumしますが、集計元表から 集計表カドの商品名、日付、支店を判別してセルに売上数を収める 手段のヒントを頂ければ幸いです。 セル関数でもVBAでもなんでも構いません。 宜しくお願いします。

  • EXCELでシート名を含む数式を作成するマクロ

    エクセルで困っています。 (WindowsXP+Excel2000です) シートが5枚、シート名を「No1」~「No4」と「集計」と付けています。 シートの体裁は全て同じで、「No1」から「No4」のシートを串刺し演算して「集計」シートに合計を表示させています。 =SUM('No1:No4'!A1) のような感じです。 質問なんですが、「集計」シートのA2にNo2と入力し、A3にNo3と入力した後にマクロを実行すれば、A1の数式が =SUM('No2:No3'!A1) のように変わるマクロは出来ないでしょうか。 INDIRECTとか使ってみてもうまく行きません。 よろしくお願いします。

  • エクセルマクロ

    エクセルで下記のような当日の販売集計表ファイルがあった時に、まったく別の全集計ファイルの当日日付の列に自動的に合計が記入されるようにマクロをつくりたいのです。   A  B  C  D 1品名 合計   日付 ←タイトル 2たこ 7     0521 3いか 1     0521 4なす 5     0521 ・このような当日の集計の数字を全集計の方に記入する↓   A  B    C   D    E 1品名 在庫 販売数 0520  0521 ・・・ ←タイトル・日付 2たこ 10    9   2   7 3いか 5     4   3   1 4なす 10    7   2   5 5大根 5     2   2   0 ・ ・ 説明: ・当日のものをその日付の列に合わせて入れます。 ・品名は実際にはたくさんあります。 ・当日分のファイルはいくつかある場合があるので、もともと記入されていたらそこに足していく方法にしたいです。 ご存知の方何卒ご教授下さい。宜しくお願いいたします。

  • マクロで過去日付分の計算式を値のみコピーする方法を探しています。

    マクロで過去日付分の計算式を値のみコピーする方法を探しています。 1つのシートに1ヶ月分の在庫を管理している表をエクセルで作成しています。 ほとんどすべてのセルに計算式が入っているので、とても重いため、過去日付のものは確定する方法を探しています。  商品名   6/1 6/2 6/3 6/4・・・・・・  Aの出荷数 1 2 3 4 ・・・・  Aの在庫数 50  48  45  41・・・・・  Bの出荷数  5 6 7 8・・・・・  Bの在庫数 60 54 47 39・・・・・    ・    ・     ・    ・ というふうに600アイテム以上の商品在庫の表です。 「確定」というボタンを押せば商品の出荷数の過去日のみをコピーして値で貼りつけるようなマクロを作成したいのですが、可能でしょうか? 上手に説明ができなくてすみません。。。 よろしくお願いします。

  • エクセルの複数シート集計について

    エクセルの集計について、困っています。 内容は、1枚目のシートに現在庫の集計結果を表示させ、 2枚目には、「出荷数」3枚目には、「入庫数」を入力するだけで、 1枚目に現在庫を表示するには、どのような方法がありますか? 入庫数や出庫数はどんどん増えていきます。 教えてください。よろしくお願いします。 シート1      現在庫  商品A 200  商品B 100  商品C 200 シート2(出庫)       4/5  4/8  4/15  商品A  50   15   20  商品B  20       15  商品C  10   10 シート3(入庫)      4/15  4/8  4/15  商品A  100  200  100  商品B  200      150  商品C  100   100

専門家に質問してみよう