• ベストアンサー

複数シートからのセルの抽出

複数シートからのデータの抽出をしたいのですが、教えてください。 [処理] あるEecelBookに含まれる全てのsheetに対して、シートの1行目とA列のあるセルの値が1995または1996である場合はその当該行をコピーし、新しく作ったsheetに集計する。 説明が下手で住みませんが、よろしくお願いします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.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の行がコピーされます。 やりたいことと違っていたら補足をお願いします。