- ベストアンサー
エクセルで他ファイルを一括集計!マクロ化の方法は?
- エクセルで業務を行っている際、複数のファイルを一括で集計したい場合、マクロを使用することでボタンひとつで集計が可能です。具体的な操作手順としては、データ元ファイルと集計ファイルを準備し、データをコピーして貼り付ける作業を繰り返すことで集計が行われます。
- 質問内容では、日付毎やシート毎にバラバラになっているデータをマクロ化する方法や、順番に処理を自動で行う方法、指定した条件に応じて処理を行う方法について質問されています。これらの操作はマクロを組むことで実現できます。
- マクロはエクセルの強力な機能であり、複雑な作業を自動化することができます。ただし、マクロを作成する際には注意が必要であり、正確な操作手順や条件の設定が必要です。また、データの変更やファイルの配置によってマクロの動作が変わる場合もあるため、注意が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問者さんの内容では、Aファイルのシートやセルの形式を具体的に挙げてないので具体的な回答はできません…。 どのシート名のどのセル番地に製品番号が入っているのか、製品番号の他にどんな項目があるのか…。何行目までデータがあるのか。 一括処理を一気に考えるには、一つ一つの手順をマクロにする必要があります。 別ファイルのセルの値をコピー&貼付するには、「ファイル名」、「シート名」の指定が必要です。仮に、Aファイルを「Book1.xls」、Bファイルを「Book2.xls」として、Aファイルの「Sheet1」の「A1」の値をBファイルの「Sheet2」の「B1」に貼り付けるマクロは、 Windows("Book1.xls").Activate Sheets("Sheet1").Select Range("A1").Select Selection.Copy Windows("Book2.xls").Activate Sheets("Sheet2").Select Range("B1").Select ActiveSheet.Paste となります。セル指定をRange関数ではなくCells関数にすると数値で何行何列目の指定が出来ます。 Range("A1").Select → Cells(1, 1).Select Range("B1").Select → Cells(1, 2).Select これを応用してAファイルの「Sheet1」の「A1~A10」の値をBファイルの「Sheet2」の「B1~B10」に貼り付けるマクロは、 For i = 1 To 10 Windows("Book1.xls").Activate Sheets("Sheet1").Select Cells(i, 1).Select Selection.Copy Windows("Book2.xls").Activate Sheets("Sheet2").Select Cells(i, 2).Select ActiveSheet.Paste Next i さらに、Aファイルのシート名を固定ではなく、切り換える場合は、そのためのインデックスのためのシートが必要です。 「Book3.xls」の「Sheet1」のシートの「A1」、「A2」、「A3」のセルにそれぞれ「Sheet1」、「Sheet2」、「Sheet3」と入力しておきます。 Aファイルの「Sheet1」の「A1~A10」の値をBファイルの「Sheet2」の「B1~B10」に、 Aファイルの「Sheet2」の「A1~A10」の値をBファイルの「Sheet2」の「C1~C10」に、 Aファイルの「Sheet3」の「A1~A10」の値をBファイルの「Sheet2」の「D1~D10」に貼り付けるようにするには、 For i = 1 To 3 Windows("Book3.xls").Activate Sheets("Sheet1").Select シート名 = Cells(i, 1) For j = 1 To 10 Windows("Book1.xls").Activate Sheets(シート名).Select Cells(j, 1).Select Selection.Copy Windows("Book2.xls").Activate Sheets("Sheet2").Select Cells(j, i + 1).Select ActiveSheet.Paste Next j Next i となります。なお、条件付きのループには「For文」よりも「Do文」が良いかとも思います。 また、データがなければ空白すると言った処理は「If文」で判断します。 回答は途中までです。 マクロは一つ一つの操作手順を記録してそれを一括処理するものです。解法として「マクロの自動記録」で質問者さんがいつも操作している手順を記録して、それで作成されたマクロのソースに手を加えると良いと思います。 それとマクロで処理しやすいようにAファイルのシートセル位置を決めておくと良いです。
お礼
同僚と一緒に手順をおっていき、業務に生かす事にしました。 ご回答ありがとうございました。