ループの1回目にコピーして作ったシートがアクティブになってしまっています。
よってループの2回目以降は ActiveSheet の指しているシートが違います。
ActiveSheet は止めて Sheets("master") のようにきちんとシートを指定するか、
ループの最後で Active を最初のシートに戻せば上手くいくと思います。
つまり
VBA
1Dim i As Integer
2For i = 2 To 5
3
4 If Sheets("master").Range("A" & i).Value <> "" And Sheets("master").Range("B" & i).Value <> "" Then
5 Select Case Sheets("master").Range("A" & i).Value
6
7 Case 1
8 Sheets("1年").Copy After:=Sheets(Worksheets.Count)
9 ActiveSheet.Name = Sheets("master").Range("B" & i).Value
10 ActiveSheet.Range("C2").Value = Sheets("master").Range("B" & i).Value
11 Case 2
12 Sheets("2年").Copy After:=Sheets(Worksheets.Count)
13 ActiveSheet.Name = Sheets("master").Range("B" & i).Value
14 ActiveSheet.Range("C2").Value = Sheets("master").Range("B" & i).Value
15 Case 3
16 Sheets("3年").Copy After:=Sheets(Worksheets.Count)
17 ActiveSheet.Name = Sheets("master").Range("B" & i).Value
18 ActiveSheet.Range("C2").Value = Sheets("master").Range("B" & i).Value
19 End Select
20 End If
21Next i
もしくは
VBA
1Dim i As Integer
2For i = 2 To 5
3 If ActiveSheet.Range("A" & i).Value <> "" And ActiveSheet.Range("B" & i).Value <> "" Then
4 Select Case ActiveSheet.Range("A" & i).Value
5 Case 1
6 Sheets("1年").Copy After:=Sheets(Worksheets.Count)
7 ActiveSheet.Name = Sheets("master").Range("B" & i).Value
8 ActiveSheet.Range("C2").Value = Sheets("master").Range("B" & i).Value
9 Case 2
10 Sheets("2年").Copy After:=Sheets(Worksheets.Count)
11 ActiveSheet.Name = Sheets("master").Range("B" & i).Value
12 ActiveSheet.Range("C2").Value = Sheets("master").Range("B" & i).Value
13 Case 3
14 Sheets("3年").Copy After:=Sheets(Worksheets.Count)
15 ActiveSheet.Name = Sheets("master").Range("B" & i).Value
16 ActiveSheet.Range("C2").Value = Sheets("master").Range("B" & i).Value
17 End Select
18
19 Sheets("master").Activate
20
21 End If
22Next i
です。
ActiveSheet は現在どのシートを指しているか分からなくなりやすく
バグを誘発することが多いので、なるべく使用しないことをおすすめします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/25 07:23
2016/02/25 07:53