アプリ版:「スタンプのみでお礼する」機能のリリースについて

同じブック内の複数のシートをひとつのシートにまとめたいです。
おそらくVBAで処理しないとだめだと思われます。
どなたか作っていただけないでしょうか?

A 回答 (3件)

>・各シートはMAXで100行くらいです。

シートごとに違います。
>・エクセルのバージョンは2003です。
シートが40枚くらいならMAXで40,000行、Excel2003で扱える行数が65,536行ですからギリギリOK位の感じです。

>・行数が一定なら、簡単です。:行数は一定ではないです。
>・「絶対に空白でない列」があるならば:列は全て空白ではないです。
>End(xlUp)を使ってやると思うのですが。。。
お察しの通りEnd(xlUp)が便利です
Cells(Rows.Count, "A").End(xlUp).Row
を使って各シートの最終行を拾います。
[A65536].End(xlUp).Row
でもいいのですが、Excel2007対応のためです。(いずれにせよ一番下までデータを入れることはないというのが前提です。)
コピー先の行の取得も同様に行います。

後は各シートをでコピーして、コピー先の一番下に貼り付けるだけです。
以下は、同じフォルダにある”Book2”を開き、自分のシートに順次コピーするプログラムのサンプルです。
1行目はタイトル行と想定して、2行目からコピーします。

一様サンプルは示しましたが、利用は「自己責任」でお願いします。
このプログラムを使用して損害が生じても、私は一切の責任を負いません(悪意のあるプログラムではないのは、解読すれば分かると思います。結果が思い通りにならなくて損害が生じた場合でも責任は負わないという意味です)。


Sub シート統合()
 Dim SourceBook As Workbook
 Dim i As Long
 Dim LastRow As Long


 ThisWorkbook.Activate
 Worksheets(1).Select
 Cells.Clear

 Set SourceBook = Workbooks.Open(ThisWorkbook.Path & "\Book1.xls")

 For i = 1 To SourceBook.Worksheets.Count
  With SourceBook.Worksheets(i)
   .Activate
   LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
   .Rows("2:" & LastRow).Copy ThisWorkbook.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
  End With
 Next i

 ThisWorkbook.Activate
End Sub
    • good
    • 0

こんにちは



>どなたか作っていただけないでしょうか?

ご質問の内容から、おおまかな状況は分かりました。
VBAならば多分出来ます。

ただし、実際のデータ無しに作ることは出来ませんし、責任が伴いますので、このサイトでプログラムを回答することは私には出来ません。
問題解決のためのアドバイスだけならば出来ます。

一番問題になるのは、各シートにあるデータの行数です。
・行数が一定なら、簡単です。
・「絶対に空白でない列」があるならば、
 その列を使って最終行を拾うことも出来ます。

また、各シートのデータのおおまかな行数と、Excelのバージョンを教えてください。
あまりデーターの行数が多いと、Excelの仕様上、一枚のシートに収まらないことがあります。

この回答への補足

・行数が一定なら、簡単です。:行数は一定ではないです。
・「絶対に空白でない列」があるならば:列は全て空白ではないです。
・各シートはMAXで100行くらいです。シートごとに違います。
・エクセルのバージョンは2003です。

End(xlUp)を使ってやると思うのですが。。。

宜しくお願い致します。

目黒

補足日時:2010/03/29 09:21
    • good
    • 0

まず、コピーは試してみましたか?



元のシートから必要な範囲を選択してコピー、集めたい場所でペーストします。
セル番号が変わっても追従するようにできているので、逆にVBAを設定していないうちにやる方が良いです。(VBAは追従しない)
ほとんど、コピーペーストだけでうまく行くと思いますよ。ペースト時に、重ならない位置を選ぶのがポイントです。

この回答への補足

40枚くらいシートがあるので手作業ではやっかいだと思い、VBAを作りたいと思ったのです。

補足日時:2010/03/26 16:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!