[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数シートの同じ範囲のみを抽出して新しいブックへコピー』(みー)
シート数が150くらいあるデータなのですが、全てが同じ形式になっています。
その中のある部分だけを範囲選択し、
新しいブックへその部分だけをコピーしたいのですが、
どのようにしたら良いのでしょうか?
バージョンはExcel2003 OSはXPになります。
よろしくお願いします。
エクセルの操作では、特定の領域に絞って・・という器用なことができないので、ガマンして、シートごとに作業をやる・・・ というのが大変だということならマクロかな? コピーしたい領域以外に罫線や色がついているなら、もうすこしひねる必要はあるけど、そうじゃなかったら
Sub Sample() Dim sh As Worksheet Dim v As Variant Application.ScreenUpdating = False Worksheets.Copy For Each sh In Worksheets v = sh.Range("A1:B2").Value sh.Cells.ClearContents sh.Range("A1:B2").Value = v Next Application.ScreenUpdating = True End Sub
注)仮に決められた領域をA1:B2にしてある。
(ぶらっと)
下記のような状態・・? http://miyahorinn.fc2web.com/schooltxt/Ex060120.html 下記は各シートのA1セルを新規ブックの左端のシートに順次 1せるずつ貼り付けしていく例。 Sub test20111024() Dim sh As Worksheet Dim lngR As Long Dim newWB As Workbook Set newWB = Workbooks.Add For Each sh In ThisWorkbook.Worksheets lngR = lngR + 1 sh.Range("A1").Copy newWB.Sheets(1).Cells(lngR, 1) Next sh End Sub んんん? もしかして、「複数シートの特定領域を別のブックの複数シートへ貼り付け」? コピー元ブックの左端シートの見出しをクリック、 Shiftを押しながら右端シートをクリック(作業グループにする) 範囲を選択、コピー、 貼り付け先ブックを選択して右端シートの貼り付け先左端上端セル選択、 貼り付け。 (貼り付け先ブックはコピー元ブックよりもシート数が多くなくてはなりません) さあ、どっちだ。 (みやほりん)(-_∂)b
A B C
1 住所
2
3 名前
4
こんな感じに入っている住所と名前+あと1つを範囲選択して
(シート数は180くらい)
1枚のシートに
A B C
1 住所 名前 +α
2 シート2住所 名前 +α
3 シート3 〃 〃 〃
4 シート4 〃 〃 〃
このように180枚近くのシートにある情報をまとめたいようなんです。
やっぱり、VBAじゃないと難しいでしょうか?
私はMOUS上級までしか取得していないので、
ほぼVBAはできません。質問者はそれ以下です…。
わかりにくい説明で申し訳ございませんが、よろしくお願いします。
MOUSすごいですね〜 私なんてとても取れる気がしません・・・
Alt+F11でVBEを出して、挿入→標準モジュールで出てきた所に張り付けて実行してみてください。
Sub test() Dim tbl() As Variant Dim i As Long With ActiveWorkbook.Worksheets ReDim tbl(1 To .Count, 1 To 3) For i = 1 To .Count tbl(i, 1) = .Item(i).Range("B1").Value tbl(i, 2) = .Item(i).Range("B3").Value tbl(i, 3) = .Item(i).Range("B5").Value Next i End With With Workbooks.Add.Worksheets(1) .Range("A1:C1").Value = Array("住所", "名前", "+α") .Range("A2").Resize(UBound(tbl), 3).Value = tbl End With End Sub
(momo)
あーやっちまったか、のパターンですね。 だいたい、エクセルの入門関係でセルの書式設定とか、 罫線の引き方とか、SUM関数とか、すごく後回しでもいいことを 先に掲載してしまうからだよね。 MOUS上級取得していたら感づくことがあると思うけれども、 データメニューや関数は対象がリスト形式で入力してあることを 前提にしてあるものがいくつもありますよね。 だから、先に作るべきは A B C 1 住所 名前 +α 2 シート2住所 名前 +α 3 シート3 〃 〃 〃 4 シート4 〃 〃 〃 こっちのほうで、これが出来ていれば、 A B C 1 住所 2 3 名前 4 こちらの先に作っちゃったほうはそんなに苦労しないで作れます。 (本当は検索用のキーがあったほうが良いけど) で、解決策は、私の体験談よろしく、腱鞘炎覚悟で手作業コピペするか、 マクロでやっつけ仕事にするか。 マクロ作成するにしても、セル位置など正確な必要部分の情報提示が必要。
momo さんのでウマく行くといいけど。
(みやほりん)(-_∂)b
momoさんのでやってみて…ダメだったら
本当に腱鞘炎覚悟で手作業でやらせます。
質問者、今日はお休みなので…
一応補足として、私のコードの変更点はわかりますか? Rangeの所のセルアドレスと 最後のArrayの所の文字くらいです。
該当ブックの全部のシートから抽出するようにしてあります。 (momo)
全シート同じセルに同じ情報があって、シート名が「Sheet1」のデフォルトのままなら とりあえず同じブックにシートを追加してそこで
=INDIRECT("Sheet"&ROW(A1)&"!A1")
のようにすれば下に「Sheet2」「Sheet3」・・・と続きますけど。 シート名がばらばらなら一度シート名一覧を作る必要があります。
まあ、重いですし、マクロなら別ブックまで一発ですから、マクロのほうがいいと思いますけど、 腱鞘炎よりはましかな・・と・・・・ (さくら)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.