| 
    
     |  | ▼KOJIRO さん: 
 こんにちは
 
 かみちゃんさんと同じく、要件がいまいち理解できていませんがもし、
 ・Wで始まる行がリスト内に2行ある。
 ・リストの左に1列追加し、Wではじまる行に対しては”AA”
 ・その他の行に対しては、最初のW以降が1からの連番、次のW以降が101からの連番。
 ということであれば以下のいずれかをお試しください。
 要件誤解していればスルーしてください。
 
 Sub Sample1()
 Dim flag2nd As Boolean
 Dim seq As Long, i As Long
 Application.ScreenUpdating = False
 With Worksheets("Sheet1")  '<== 実際のシート名に
 .Columns("A:A").Insert shift:=xlToRight
 For i = 1 To .Range("B" & .Rows.Count).End(xlUp).Row
 If .Range("B" & i).Value = "W" And Not flag2nd Then
 If seq > 0 Then
 seq = 100
 flag2nd = True
 End If
 .Range("A" & i).Value = "AA"
 Else
 seq = seq + 1
 .Range("A" & i).Value = seq
 End If
 Next
 End With
 Application.ScreenUpdating = True
 End Sub
 
 Sub Sample2()
 Dim y1 As Long, y2 As Long, yz As Long
 Dim myC1 As Range, myC2 As Range
 Application.ScreenUpdating = False
 With Worksheets("Sheet1")  '<== 実際のシート名に
 yz = .Range("A" & .Rows.Count).End(xlUp).Row
 Set myC1 = .Range("A1").Resize(yz).Find(What:="W", After:=.Range("A" & yz), _
 LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
 SearchDirection:=xlNext, MatchCase:=False, _
 MatchByte:=False, SearchFormat:=False)
 If Not myC1 Is Nothing Then
 Set myC2 = .Range("A1").Resize(yz).FindNext(After:=myC1)
 If myC1.Address = myC2.Address Then Set myC2 = Nothing
 End If
 If myC1 Is Nothing Or myC2 Is Nothing Then
 MsgBox "W行は2行必要です"
 Else
 .Columns("A:A").Insert shift:=xlToRight
 .Range("A" & myC1.Row).Value = "AA"
 .Range("A" & myC1.Row).Offset(1).Value = 1
 .Range("A" & myC1.Row).Offset(1).Resize(myC2.Row - myC1.Row - 1).DataSeries
 .Range("A" & myC2.Row).Value = "AA"
 .Range("A" & myC2.Row).Offset(1).Value = 101
 .Range("A" & myC2.Row).Offset(1).Resize(yz - myC2.Row).DataSeries
 End If
 Set myC1 = Nothing
 Set myC2 = Nothing
 End With
 Application.ScreenUpdating = True
 End Sub
 
 |  |