| 
    
     |  | こんにちは。かみちゃん です。 
 >セル:G2が、[倉庫A] か [倉庫B] か [倉庫C] の場合、
 >セル:K2に、担当者の [鈴木さん] を入力したいと、考えています。
 >
 >データ量に関係無く、セルG2〜セルGの最終行まで、上記の条件分岐を
 >LOOPで処理するには、どうしたらよいでしょうか?
 
 繰り返し処理には、いろいろありますので、以下3案を示します。
 
 'Do 〜 Loopを使う方法
 Sub Sample1_1()
 Dim lngRow As Long
 Dim lngRowLast As Long
 
 With ActiveSheet
 lngRowLast = .Range("G" & .Rows.Count).End(xlUp).Row
 lngRow = 2
 Do While lngRow <= lngRowLast
 With .Range("G" & lngRow)
 Select Case .Value
 Case Is = "倉庫A", "倉庫B", "倉庫C"
 .Offset(, 4).Value = "鈴木さん"
 Case Is = "倉庫D", "倉庫E", "倉庫F"
 .Offset(, 4).Value = "山田さん"
 Case Is = "倉庫G", "倉庫H", "倉庫I"
 .Offset(, 4).Value = "森さん"
 End Select
 End With
 lngRow = lngRow + 1
 Loop
 End With
 
 MsgBox "終了しました"
 End Sub
 
 'For 〜 Nextを使う方法
 Sub Sample1_2()
 Dim lngRow As Long
 Dim lngRowLast As Long
 
 With ActiveSheet
 lngRowLast = .Range("G" & .Rows.Count).End(xlUp).Row
 For lngRow = 2 To lngRowLast
 With .Range("G" & lngRow)
 Select Case .Value
 Case Is = "倉庫A", "倉庫B", "倉庫C"
 .Offset(, 4).Value = "鈴木さん"
 Case Is = "倉庫D", "倉庫E", "倉庫F"
 .Offset(, 4).Value = "山田さん"
 Case Is = "倉庫G", "倉庫H", "倉庫I"
 .Offset(, 4).Value = "森さん"
 End Select
 End With
 Next
 End With
 
 MsgBox "終了しました"
 End Sub
 
 'For 〜 Each 〜 Nextを使う方法
 Sub Sample1_3()
 Dim rngLast As Range
 Dim c As Range
 
 With ActiveSheet
 Set rngLast = .Range("G" & .Rows.Count).End(xlUp)
 For Each c In .Range("G2", rngLast)
 Select Case c.Value
 Case Is = "倉庫A", "倉庫B", "倉庫C"
 c.Offset(, 4).Value = "鈴木さん"
 Case Is = "倉庫D", "倉庫E", "倉庫F"
 c.Offset(, 4).Value = "山田さん"
 Case Is = "倉庫G", "倉庫H", "倉庫I"
 c.Offset(, 4).Value = "森さん"
 End Select
 Next
 End With
 
 MsgBox "終了しました"
 End Sub
 
 |  |