| 
    
     |  | liee_chang さん、こんにちわ。 
 >シートのセルが空欄だったらある範囲の色と保護をはずす。これをトナリのシートにも繰り返すというロジックにしたいのです。
 ↓ここでは指定していても、
 >  Do While Worksheets(r + 1).Cells(18, 4).Value = ""
 ↓ここでシートを指定していないので常に表示中のシートが対象で範囲選択
 >    Range("D18:O19,D25:O28").Select
 >
 
 Sub Test()
 Dim ws As Worksheet
 For Each ws In ActiveWorkbook.Worksheets
 With ws 'WorksheetオブジェクトでWith
 If .Cells(18, 4).Value = "" Then
 With .Range("D18:O19,D25:O28") 'RangeオブジェクトでWith
 .Interior.ColorIndex = 8
 .Locked = False
 .FormulaHidden = False
 End With
 End If
 End With
 Next
 End Sub
 
 こんな感じです。
 
 |  |