|
▼Ex初心者 さん:
動作を条件に沿ってゴリゴリまわしてみました。
もっとスマートなコードもあるかと思いますが、一応
Sub sub_sampleple()
Dim myB2 As Integer
Dim myMOVE As Boolean
Dim myRow As Long
Dim myRowMax As Long
Dim myCnt As Long
'第一条件の判定
Select Case Range("B2").Value
Case "あ", "い", "う"
myB2 = 1
Case "え", "お"
myB2 = 2
End Select
myRow = 3 'B3から
myRowMax = 20 'B20までをチェック
Do
'第二条件の判定
Select Case Cells(myRow, 2).Value
Case 1, 11, 20
myMOVE = (myB2 = 1)
Case 50, 100
myMOVE = (myB2 = 2)
Case Else
myMOVE = False
End Select
'移動処理
If myMOVE Then
Rows(myRow).Cut
Rows(30 + myCnt).Insert Shift:=xlDown '30行目に挿入
Rows(30 - 1).Insert Shift:=xlDown
myCnt = myCnt + 1
myRowMax = myRowMax - 1
Else
myRow = myRow + 1
End If
Loop Until myRow > myRowMax
End Sub
|
|