• 締切済み

Excelで条件別にシートを振り分ける方法

初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。     列A   列B   列C   行1  No  氏名   クラス  行2  1   花子    A 行3  2   太郎    C 行4  3   二朗    B 行5  4   京子    B 行6  5   史郎    B 行7  6   典子    C 行8  7   公子    A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! たびたびごめんなさい。 前回 >データが変更があるたびに・・・ と書いてしまっているので、コードを訂正させてください。 Sub 振り分け() 'この行から Dim i, k, N As Long Dim ws As Worksheet Set ws = Worksheets(1) For k = 2 To Worksheets.Count N = Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Row If N > 1 Then Worksheets(k).Rows(2 & ":" & N).Delete End If For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row If ws.Cells(i, 3) = Worksheets(k).Name Then Range(ws.Cells(i, 1), ws.Cells(i, 2)).Copy Destination:= _ Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Offset(1) End If Next i Next k End Sub 'この行まで 前回は無視して、こちらのコードをコピー&ペーストしてください。 何度も失礼しました。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 色々方法はあるかと思いますが・・・ VBAでの一例です。 Sheet1に元データがあり、Sheet2以降のSheet名はSheet1のC列データと同じSheet名が付いているという前提です。 そして、各Sheetとも1行目の項目はすでに入っているとして、 A・B列のみで良いわけですよね? Alt+F11キー → VBE画面が出ますので、画面左下の「This Workbook」をダブルクリック → ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 振り分け() 'この行から Dim i, k As Long Dim ws As Worksheet Set ws = Worksheets(1) For k = 2 To Worksheets.Count For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row If ws.Cells(i, 3) = Worksheets(k).Name Then Range(ws.Cells(i, 1), ws.Cells(i, 2)).Copy Destination:= _ Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Offset(1) End If Next i Next k End Sub 'この行まで ※ Sheet1のデータ変更があるたびにマクロを実行してください。 ご希望の方法でなかったらごめんなさいね。m(_ _)m

関連するQ&A

専門家に質問してみよう