|
Vハチ さん、こんばんわ。
>まずマウスで選択範囲を指定します。
>その選択範囲でE列を基準に昇順で並び替えをします。
>そしてE列の値が下の値と違ったら、一行挿入します。
>これを指定した範囲で繰り返します。
選択範囲のE列を下からチェックして、上のセルの値と違っていたら行を挿入します。
Sub Macro1()
Dim r1 As Range, Rmin As Long, Rmax As Long, RR As Long
If Application.Intersect(Selection, Columns("E:E")) Is Nothing Then
MsgBox "E列を含めて選択してね"
Else
Set r1 = Selection
'範囲の1行目と最下行の番号
With r1
Rmin = .Cells(1).Row
Rmax = .Cells(.Count).Row
End With
'E列で昇順ソート
r1.Sort Key1:=Cells(Rmin, "E"), Order1:=xlAscending, Header:=xlNo, _
MatchCase:=False, Orientation:=xlTopToBottom
'下からチェック(比較の繰り返しは2行目まででOK)
For RR = Rmax To Rmin + 1 Step -1
If Cells(RR, "E").Value <> Cells(RR - 1, "E").Value Then
'上と違っていたら行挿入
Rows(RR).Insert
End If
Next
End If
End Sub
こんな感じです。
|
|