- ベストアンサー
複数シートからのセルの抽出
複数シートからのデータの抽出をしたいのですが、教えてください。 [処理] あるEecelBookに含まれる全てのsheetに対して、シートの1行目とA列のあるセルの値が1995または1996である場合はその当該行をコピーし、新しく作ったsheetに集計する。 説明が下手で住みませんが、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
マクロを使ってもいいなら、Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 Sub 集計() Dim i As Integer, j As Integer Dim ToRow As Integer Dim R As Range Dim WS As Worksheet ToRow = 1 Set WS = Worksheets.Add(After:=Worksheets(Worksheets.Count)) WS.Name = "集計" For i = 1 To Worksheets.Count - 1 With Worksheets(i) .Rows(1).Copy WS.Rows(ToRow) ToRow = ToRow + 1 For j = 2 To .Cells(Rows.Count, 1).End(xlUp) If .Cells(j, 1) = 1995 Or .Cells(j, 1) = 1996 Then .Rows(j).Copy WS.Rows(ToRow) ToRow = ToRow + 1 End If Next End With Next End Sub その画面でF5キーを押すか、Alt+F11でExcelの画面に戻ってAlt+F8からマクロを実行してみてください。シートの最後に「集計」というシートが追加され、各シートの1行目と、A列が1995または1996の行がコピーされます。 やりたいことと違っていたら補足をお願いします。