実際にはマクロは必要ありません (ただし、一番下にマクロを用意しています)。
[これは Windows 上の Excel で機能するソリューションであることに注意してください - 私は Excel for Mac の経験がないため、以下のソリューションのいずれかまたは両方が機能することを保証できません]
手動ソリューション
- 列 A、C、D、および E を選択します (最初に列 A を選択する必要があります)。
- F5を押して....スペシャルに移動し、ブランクを選択してから「OK」を押します
- 数式バーに「=A1」と入力します。ここで、A1 は手順 2 の最初の空白セルのすぐ上のセルです (下の図を参照してください。このセルは A1 です)。
- CtrlキーとEnterキーを同時に押します。子行に正しいデータが含まれるようになりました
- 列 A:E を選択し、[コピー] から [値として特殊貼り付け] を選択して、子行に入力した数式を値に変換します。
- B列を選択
- F5を押して....スペシャルに移動し、ブランクを選択して「OK」を押します(下の写真を参照)
- 選択した行を削除

コード ソリューション
Sub Delete()
Dim rng1 As Range
Dim rng2 As Range
On Error Resume Next
Set rng1 = Range("A:A,C:E").SpecialCells(xlBlanks)
On Error GoTo 0
If rng1 Is Nothing Then Exit Sub
rng1.Formula = "=R[-1]C"
'handles two row areas else SpecialCells will force both areas to area1 formulae
For Each rng2 In rng1.Areas
rng2.Value = rng2.Value
Next rng2
On Error Resume Next
Set rng1 = Range("B:B").SpecialCells(xlBlanks)
On Error GoTo 0
If Not rng1 Is Nothing Then rng1.EntireRow.Delete
End Sub