[[20080820110642]] 『複数シートのまとめ』(いまいち子) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数シートのまとめ』(いまいち子)

 複数シートのデータをシート挿入してまとめるやり方を教えてください。

 全てのシートの列(A〜T)は同じ項目で、行は(空白行もまざってますが)50行目までです。

 新しく挿入したシート=sheet1に、

 シート北海道の内容
 シート秋田の内容
 シート東京の内容
 ・
 ・
 ・
 と、ただ単純にコピペしたいです。

 過去ログ見てみたのですが、むずかしくてよくわかりませんでした。
 よろしくお願いします。

 単純にコピペしたらできますよ。

 なぁ〜んて、冗談ですが、このままだと答えが付きにくいと思いますよ。

 >(空白行もまざってますが)と言われていますが、空白行は削除して、
 連続したデータとして、シートにまとめるのでしょうか?     (yukichip)

 そうですね説明不足でした^^;
 全シートコピ→貼付が毎週面倒な者です。

 新しいsheet1をつくり、北海道シートの内容をコピペし、

 北海道シートの内容

 A   b    C    D    D   E・・・T(Tまでいろいろな項目があります)
 北海道	担当1	担当2	受付番号 届先 1,000

 北海道	担当3	担当4	受付番号1 届先 500
 北海道	担当3	担当6	受付番号2 届先 10,000

 北海道	担当2	担当5	受付番号6 届先 5,000
 北海道	担当2	担当2	受付番号4 届先 9,000
 北海道	担当1	担当5	受付番号3 届先 200
 この下にすぐ秋田シートの内容をコピペ

 シートは11シート、地域別にあります。
 とりあえずコピぺしてまとめてから、空白行はあとで削除しようと思っています(効率悪?)
 地道以外の方法はありますでしょうか?(いまいち子)

[[20060407183749]]『同じブック内で1シートにまとめるマクロについて』(tuccii)
 からちょっと変えただけです。

 Sub まとめ()
  Dim LastR As Long, TgtR As Long
  Dim Sh As Worksheet, TgtSh As Worksheet
  Set TgtSh = Sheets("Sheet1")
  Application.ScreenUpdating = False
  TgtR = 1
  TgtSh.Rows("1:" & TgtSh.Range("A65536").End(xlUp).Row).Delete
  For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name <> TgtSh.Name Then
      With Sh
        LastR = .Range("A65536").End(xlUp).Row
        If LastR > 1 Then
            .Rows("1:" & LastR).Copy TgtSh.Rows(TgtR)
        End If
      End With
      TgtR = TgtSh.Range("A65536").End(xlUp).Row + 1
    End If
  Next
  Application.ScreenUpdating = True
 End Sub

 標準モジュールにコピペで使えましたよ〜。
 お礼は、元のマクロの人に言ったほうがいいくらいですねw

[[20080711110540]]『空白行の削除』(いまいち子)

 あ。↑を見つけてたので、空白行に関しては、何もしてません。 (yukichip)

 tucciipさんありがとう御座います!とりあえず、できました。
 教えて頂いたコードで(過去ログと見比べて)どこがどうなったのか、なんとなくわかりました。

 このまま質問させて頂いても宜しいですか?(ダメでしたら別件にします;)

 ブック1で作ったマクロで → ブック2を開き、ちょっと書式変えて、まとめのシートを作って 内容をまとめる

 ということをやろうとしています。

 ブック1のマクロでまとめのシートを作るまでは出来ましたが、内容をまとめるマクロは
 ブック1でどのように指定したらいいのでしょうか?

 マクロ自体はもうバッチリ(すごい!)でしたが、安直にブック1のマクロに
 まとめマクロを合体したらブック1がまとまってしまいました。(いまいち子)


 はい。yukichipです。
 私は初心者さんなので、質問の継続とかは詳しくないのですが、
 あまり変更・変更で聞くと、結局複雑にならないかなぁ?とは思います。
 例えば、空白行の削除とシートのまとめは、1回で聞けたと思うし・・・。
 多分、いまいち子さんの質問が、最終的には○○をしたい!っていうもののほうが
 先生方が1発でやりたい事にピッタリの回答をしやすいんじゃないかなぁ?

 で。そこは仕方がないとして、とにかくやりたい事をやっつけちゃいますか♪

 えっと、上の感じだと、ごめんなさい、どうしたいのかが分かりませんでした。
 ブック2にまとめたい内容は、ブック1のまとめで作った内容でいいんですか?
 だとしたら、  Set TgtSh = Sheets("Sheet1") ←この部分を変えるだけかな?って。
                                 (yukichip)

 yukichipさんの仰る通り、当時まとめてご質問できればよかったんですが、
 空白行のときのファイルと、まとめ作業のファイルは全く別仕事でして、、
 どっちにしても ややこしくしてすみません(土下座)

 ブック1=マクロ記述した個人持ちファイル
 ブック2=毎週、他部署からもらう単なるデータファイル  です。

 手持ちのブック1でマクロを起動して、ブック2でまとめ がやりたいことです。

 (いまいち子)

 個人用マクロブックに入れたらいいんじゃないかと? (yukichip)

 横から失礼して。

 今回の件が2つのBookのやり取りであるならば、

 Sub test()
   Dim ws As Worksheet
   Dim r As Range, rr As Range

   Application.ScreenUpdating = False
   Set r = ThisWorkbook.Worksheets(1).Range("A1")

   ' Book2.xlsは適宜修正のこと。
   For Each ws In Workbooks("Book2.xls").Worksheets
       With ws
           .Range("A:T").AutoFilter 1, ("<>")
           Set rr = .Range(.Range("A1"), .Cells(Rows.Count, 1).End(xlUp).Resize(, 20)) _
                    .SpecialCells(xlCellTypeVisible)
           rr.Copy r
           Set r = r.End(xlDown).Offset(1)
           .AutoFilterMode = False
       End With
   Next
   Application.ScreenUpdating = True
   Set r = Nothing
   Set rr = Nothing
 End Sub
 コードをブック1へ、且つブック2の名前(Book2.xls)を適宜修正し双方開いておく。
 ブック2のA列に空白がないものをフィルタリングしてます。
 とこんな感じなのかと。
 (じゅんじゅん)

 じゅんじゅんさん、ありがとうございます^^
 会社のPCで個人用マクロに登録すると、いろいろ面倒だったりだろうし、
 やっぱり作ろうかと迷っていたので、助かりました〜

 しかも、空白までなくなって・・・良かったですねぇ。うんうん。   (yukichip)

 ↑上のいろいろ面倒・・・は↓↓この辺り↓↓を参考に。
https://www.excel.studio-kazu.jp/tips/0011/
 誰かと共有するパソコンで個人用マクロを使うのは、ためらいますよね。

 ただ、2つブックを開く必用とかはないから、
 引継ぎの時に消し忘れさえなかったら、便利かな? (yukichip)

 じゅんじゅんさん、yukichipさんありがとう御座います!助かりました。
 他部署からファイルをもらって、加工や整頓があるとき、いつも悩み悩んでいましたので、
 こんな方法もあるのかと、大変勉強になりました。ありがとう御座いました。(いまいち子)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.