• 締切済み

エクセル2003なのですが

はじめまして、仕事でエクセルのマクロをまかされたのですが なにもやったことないど素人なもので・・・ ネットでひたすら勉強したものの息詰まってしまっていて ご教授願いたく書き込んでおります。 AとB 二つの集計を取るシートがあります。 Aでは3.4のシートの集計を Bでは1,2,3,4,5,6のシートの集計を取りたいです。 現在、マクロでAとBのシートに1,2,3,4,5,6の集計を 取るようなマクロになってしまっています。 この既存のマクロの状態でちょっとしたソースを加えるだけで Aのシートを3,4だけのシートの集計をとるようにできませんか? やはり、AシートとBシート個別にマクロ設定していくのが ベストなのでしょうか・・・ なにか、足らない部分があればご質問ください。 お願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。#2 です。 以下のコードは、すべてを削除してしまうことですが、少し、戸惑いを感じます。 Cells.Select Selection.Delete shift:=xlUp 無駄というよりも、場所を特定してよいのか分からないので、当面、分かる範囲だけでループを付けさせていただきました。 一応、そちらで、マクロのステップモードで、試してみてください。外れる部分があるようでしたら、その部分を直すか、ここにつけてください。 Sub TestLoop()   Dim KBN As String   Dim ASN As String   Dim Counter As Integer   Dim Counter2 As Integer   Dim flg As Boolean   Dim joken As String   Dim joken2 As String   Dim arSH As Variant   Dim v As Variant      'Aでは3.4のシートの集計を   'Bでは1,2,3,4,5,6      Counter2 = 0      If Counter2 = 0 Then     KBN = "A"     arSH = Array("3", "4")   Else     KBN = "B"     arSH = Array("1", "2", "3", "4", "5", "6")   End If   'Cells.Select   'Selection.Delete shift:=xlUp      Worksheets("syori").Select 'もしかしたら、最初のシート   ActiveSheet.UsedRange.ClearContents ' Clear   Range("B4").Select         For Each v In arSH     With Worksheets(v)       flg = 0       .Select       ASN = .Name       Rows(4).Select       Selection.AutoFilter       Range("A4").Select       If Range("A5") <> "" Then         If KBN = "A" Then           joken = "<>○"         Else           joken = "=○"         End If         Range("A4").AutoFilter Field:=3, Criteria1:=joken         If KBN = "B" And ASN = "6" Then           If flg = 0 Then             joken2 = "=○"           Else             joken2 = "<>○"           End If           Range("A4").AutoFilter Field:=4, Criteria1:=joken2         End If       End If       Range("A4").AutoFilter       Range("A4").Select       'たぶん、以下のIf~End If は、余分だと思います。       If KBN = "B" Then         If ASN = "6" Then           If flg = 0 Then             flg = 1           End If         End If       Else         If (ASN = "syori") Then           Exit For         End If       End If      End With   Next v End Sub

sinkun001
質問者

お礼

早速、仕事場でテストしてみようとおもいます。 デリートする理由は作業用のシートをつくって それをコピーペーストするような形にしていたので そうなっておりました。 また、テストが終了しだいお知らせいたします。 中途半端なソースからアドバイスいただきありがとうございます。

sinkun001
質問者

補足

アドバイス通りやってみましたところ なんとか通りました。 一部書き直しただけでできたので 本当に助かりました。 改めて、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 その質問では、雲をつかむような話です。 実際に、シートは For each sh in Worksheets(Array(3,4))  '実際の作業マクロ Next sh は、取れるものの、最近、同じように集計(累計)する質問があったのですが、「マクロで」というお話もありましたが、私は、その質問者さんと内容がはっきりするにつれ、「マクロなしで良い」と確信を持ちました。問題は、その集計の内容いかんだと思います。 いわゆる、串刺し(3D集計)なら、マクロは必要ありませんね。 やったことがない人は、まず、基礎的なところから始めないと、最後まで到達せずに、途中でコケてしまうと思います。途中をかいつまんで、いきなり、どこかに到達というのは、コンピュータ言語の達人たちの話ですが、私は、いくつかの教本から学んだのは、「量質転化」といって、だいたい、自分でマクロを作って、500個ぐらいを実行すると、だんだん、まともなものになっていく、といいます。 「知識がない」のは当たり前で、それは、経験が知識に変わるものだと思います。 他のコンピュータ言語の経験のある人は、1週間でなんとかなるのですが、そうでない人は、実践で使えるようになるには、1年は掛かってしまうかもしれません。だいたい、3ヶ月で、一通りは覚えます。 それと、私の持論では、最初は、なんの目的も目標も持たずに、当面の目の前の階段を上るように、一歩一歩、体系的な覚え方をしないと、抜けが生じて、きちんとしたマクロにならないように思うのです。それに、Web サイトでは、なくて七癖、また、大雑把な説明のものが多いような気がします。単語や言葉を覚えるのではなくて、VBEで動かしたイメージを優先していくのが大事です。

sinkun001
質問者

お礼

返信ありがとうございます。 ソースを書かないとわかりませんね。 申し訳ありません。 今回はソースは早急につくってくれという要望でして・・・ 勉強じぶんもゆっくりしたいのですが そういう時間がないのです・・・ この仕事が終わればじっくり一から勉強していきたいと おもっております。 ソースのちょっとした内容ですが If Counter2 = 0 Then KBN = "A" Else KBN = "B" End If   Cells.Select Selection.Delete shift:=xlUp Range("B4").Select Sheets("1").Select Counter = 0 flg = 0 While Counter < 6 ASN = Application.ActiveSheet.Name    Rows(4).Select Selection.AutoFilter Range("A4").Select If Range("A5") <> "" Then If KBN = "A" Then joken = "<>○" Else joken = "=○" End If Selection.AutoFilter Field:=3, Criteria1:=joken If KBN = "B" And ASN = "6" Then If flg = 0 Then joken2 = "=○" Else joken2 = "<>○" End If Selection.AutoFilter Field:=4, Criteria1:=joken2 End If End If      Selection.AutoFilter Range("A4").Select If KBN = "B" Then If ASN = "6" Then If flg = 0 Then flg = 1 End If Else ActiveSheet.Next.Activate End If Else If (ASN <> "syori") Then ActiveSheet.Next.Activate End If End If ソースがながくなりましたが このようなかんじで書いておりました。 きっと無駄が多いのですが・・・

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

計算対象のWorkSheet名をソース内で指定するようにすれば 可能と思います。 どうですか?

sinkun001
質問者

お礼

ソース内で指定ですか。 いまの時点で1,2,3,4,5,6と集計をとってしまう 状態ですが、Aのときだけという条件をつくればいいんでしょうか? どのように書き足せばいいのか いまいちわかってないのですが ・・・ すいません。 知識がなくて・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • Excel マクロ データ集計

    Excel マクロ データ集計 Sheet1にある情報を集計して、集計結果をSheet2に貼り付けるマクロを考えています。 「Sheet1」のA列、B列、C列が合致した場合に同じ商品とみなします。 C列で「新鮮」とついている場合には、商品名で一致させて、Sheet2の 同じ商品名のところに記載します。 「Sheet2」に貼り付ける際、「Sheet1」のA列は不要です。 どのようなマクロを作成すればよろしいでしょうか。 画像を添付します。 「Sheet2」は完成形です。

  • エクセル:他ファイルを一括集計したい!

    いつもお世話になっています。少々複雑化してしまう質問ですが ご教授よろしくお願いします。 エクセルにて業務を行っているのですが、用意されているファイルは 集計の際に手作業の部分が多く、マクロを組もうかと考えています。 ですが、下記条件の場合、ボタンひとつで集計を終える事は可能でしょうか? <条件> ・Aというデータ元ファイルとBという集計ファイルがあります ・Aのファイルは毎日のデータを入力しています。ファイルは日付毎に 別々、製品番号もシートで別々に入力されています。 ・BのファイルはAのファイル内の日々データをコピーして貼り付け、  月報として管理しています。 <作業> (1)Aファイルをコピー、Bファイルに貼り付け (2)Bファイル内でコピー、貼り付け (3)Bファイル内でコピー、Bファイルの他シート(集計用)に貼り付け <質問> (1)日付毎、シート毎にバラバラになっているものをマクロ化できるのか? (2)1日、2日、3日と、順番に処理を自動で行うようにマクロは組めるのか? 日付を追う毎にセルがひとつずれていきます。 (3)例えば”4日がなければ空白にする”等の指定はできるのか? マクロを過信しすぎでしょうか(^^;)? 難解な質問ですがよろしければご回答の方、よろしくお願いします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 複数のsheet(毎回数が変わります)があり、集計シートにデータを貼り付けたいのですが 複数Sheetのデータを集計シートの1行に貼り付けます 複数Sheet1 J1→集計Sheet A2 複数Sheet2 J1→集計Sheet A3 複数Sheetが毎回数が違うので、どうのようにマクロを組んだらよいのでしょうか。 以上、よろしくお願いいたします。

  • エクセルのデータを別ファイルに抜き出すには?

    内容なんですが、Aというエクセルファイルのsheet1にお客さんと注文数があるのですが、Bというエクセルファイルにsheet1からsheet100までレイアウトを作り個別にお客さんの注文数を集計したいと思っています。 毎月のことなので手間のかからないやり方はあるのでしょうか? うまく説明できてませんが良いやり方があれば教えてください。

  • Excelマクロに関しての質問

    Excelマクロに関しての質問です。 ファイルAの”シート1”のF1,F16,F42,F65,F97,F122を別のファイルBの”集計シート”のB2,C2,D2,E2,F2,G2にデータ(数値or文字)を移します。 そしてファイルAの”シート2”のF1,F16,F42,F65,F97,F122をファイルBの”集計シート”のB3,C3,D3,E3,F3,G3にデータを移します。 それをファイルAの”シート29”まで繰り返し行いたいのですが、どのようなマクロを組めば良いのでしょうか? 教えて頂きたいです。

  • エクセルで異なったフォームのデータを複数のシートから集計する方法を教えて。

    アクセスは使えません。 マクロの意味は解りますがプログラミングは出来ません。 エクセルの範囲で、複数シートのフォームがばらばらのデータからA品、B品、C品等々。。。と小計を集計シートに集計して総合計を出したいのです。 これが出来るならば、複数のフォルダの集計も出来るのでしょうか? エクセルで集計しているという人がいるのですが、そのような方法をテキストでも見つけることが出来ません。 私のソフトはウインドウズXP エクセル2003です。 宜しくお願いします。

  • EXCELでシート名をセルの内容で指定出来るか

    検索してみましたが、探し方が悪いのか該当する質問がないようなので、質問させていただきます。 EXCELで複数のシートにあるデータを使用して集計表を作成するときの質問です。 使用する人がEXCELに慣れていない方のため、汎用性を持たせたいのですが、以下のような方法は出来るのでしょうか。 集計元シート(複数)> '1','2','3'…のように連番のシート名 集計先シート>'集計' 1.'集計'シートのセル A列 にシート名を入力します。 2.'集計'シートのセル B列 にそれぞれのシートの合計部分のセルNo(Ex.B11)を指定します こうしたとき、2.のB列 は [ B1 = '1'!B11 ]のようになりますが、この '1' の部分で '集計'シートの A1 の値を反映したいのです。 こうすると、シートが増えたとしても、上の式をコピーすれば(ドラッグでのコピー)式のシート名を変更する必要がないと思うのですが…。 ですが、思いつく方法を試してみてもどうもうまくはいきません。 本当にこういった方法は出来るのか、出来るのならその方法をご教授いただければありがたいです。 説明ベタで申し訳ありません。 これが出来るといろいろなものがうまくいくので、ぜひよろしくお願い致します。 (VBAはなるべく使わない方向でお願いします)

  • ワードへエクセル表の差し込み印刷について

    はじめまして。 現在、ワード・エクセルとも2007を利用しています。 エクセルシート名「顧客」を、ワードに差し込み、エクセルで 作成したA~C社の行数の異なる表を差し込みたいと考えており、 下記「ワード差込文書」と記載している文書を作成して、会社別に 1枚づつ印刷したいと思っております。 (会社名・担当者名の差し込み操作は可能です) このように、異なる行数のエクセル表を差し込むことは 可能なのでしょうか? ワードのフィールド挿入の「Next Record If」も調べてはいるのですが 細やかな記載がなされておらず、使い方がよく分からないのが現状です。 マクロは素人ですが、マクロでで可能とうことであれば、勉強しながら 頑張りたいと思います。 何か良い方法がございましたら、ご教授くださいますと大変助かります。 どうぞよろしくお願いします。 (表が若干ずれていて見ずらくなり、申し訳ありません) ----エクセルシート名1「顧客」----     A    B       C 1 顧客名 担当者    住 所   2 A会社 △△△ ○○県○○市○○町 3 B会社 □□□ ○○県○○市○○町 4 C会社 ☆☆☆ ○○県○○市○○町 -------------------- ----エクセルシート名2「金額」----     A    B    C 1 顧客名 商品名 合計   2 A会社 りんご  1,500----A会社 3 A社集計      1,500-----| 4 B会社 りんご  2,000----B会社 5      みかん  2,000     | 6 B会社集計    4,000------| 7 C会社 りんご  3,000----C会社 8      みかん  3,000    | 9      すいか  3,000    | 10 C会社集計    9,000-----| -------------------- ------ワード差込文書------- A会社△△△様        【A会社】 (↓↓エクセルシート名「金額」各社商品内訳と集計表の差込↓↓)    A会社 りんご 1,500    A社集計     1,500      -------------------- B会社□□□様        【B会社】   B会社 りんご 2,000        みかん 2,000   B会社集計   4,000 --------------------          ・          ・     (以下C社、D社と続きます)

  • エクセルでの検索について

    パソコンど素人です。 最近仕事で色々な統計をとることになり、 メインで使用しているエクセルで下記のようなことができないか 詳しいからに教えて頂ければと思います。   A   B   C   D   E   F 1 Zさん  10          2        Zさん  10 3        Zさん   2  4                Zさん  5 A~Fは列、1~4は行Noです。 というように、1枚のシートに 「Zさん」が点在しており、「Zさん」に付随している 値(上記、10、2、10、5)を自動的に集計できればと 思っています。理想は、値が入力されると同時の リアルタイムでの集計ですが、マクロなどワンクッションを おいての集計でも、だいぶ作業が楽になります。 行の最大値は60行、列の最大値は30列。 また、1行に「Zさん」は1回しか入力されませんが、 列での重複はありえます。 どなたか、ご教授頂ければと思います。 よろしくお願いいたします。

専門家に質問してみよう