• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のエクセルブックを統合し集計するマクロ)

マクロを使用して複数のエクセルブックを統合し集計する方法

このQ&Aのポイント
  • 複数のエクセルブックを統合し、各担当者の月ごとの実績を集計するマクロを作成する方法を教えてください。
  • 担当者によって行数が異なるため、空白以降の行が正しく集計されない問題に対処する方法も知りたいです。
  • また、マクロを組み合わせて作成していますが、より効率的な方法があれば教えてください。

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

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

領域を自分の思った通りに選択するのは難しいです。入力ルールを厳格に定めればいいのですが、担当者にそこまで求めらません。行まるごとコピーがいいです。データ最終行の取得方法は LastRow = Cells(Rows.Count, 1).End(xlUp).Row 一列めのエクセル最終行まで移動し、遡ってデータのある最終行を見つけます。こうすると途中に空白行があっても影響を受けませんし、30行でも300行でも出来ます。開始行位は指定すればいいでしょう。 WindowsではなくWorkbooksです。

gawa00264
質問者

お礼

over_the_galaxy様、 お礼が遅くなり申し訳ありません。 最終行からのデータ抽出ですと、エラーが少なく出来ました。 (エラーと言っても担当者が1列目の入力を忘れている、等の人的エラーですが) 今回はこの方法でデータ統合をしたいと思います。 遅いお礼で恐縮です。over_the_galaxy様のご回答をベストアンサーとさせて頂きました。 ありがとうございます。

その他の回答 (1)

  • sora1515
  • ベストアンサー率58% (54/92)
回答No.1

Selection.CurrentRegion.Select 空白行対策としてデータ範囲取得を使わずに、罫線有無を使ってはどうですか。 参考 (現在のセルに罫線があるかどうか判定。) MsgBox IIf(Selection.Borders(xlEdgeBottom).LineStyle = xlNone, "下罫線なし", "下罫線あり") 実用するには罫線がなくなるまで各行見ていきループさせ、そのループした回数をデータ範囲とします。 空白行が1行しかないのであれば2行の連続空白セルでデータ終了とみなす方法もあります。(これも1行ずつループになりますが。)

gawa00264
質問者

お礼

sora1515様、 お礼が遅くなり大変申し訳ありません。 試してみたところ、担当者によっては入力・編集している内に 罫線を部分的に消している人がいて、反映されないデータが出てしまいました。 今回は罫線判断はしないで挑戦してみますが、罫線での判断が出来ることを知り大変参考になりました。 ありがとうございました。 早くにご回答を頂いていたのにお礼が遅くなり大変失礼しました。 自分でもスムーズなコードを組めるように勉強していきたいと思います。

関連するQ&A