|
IROC さん:レスありがとうございました。
しかし、まだよくわかっていません。
つぎのように訂正したのですが、With文でエラーになります。
With文を理解していません。
For i = 29 To 5 Step -2
With Sheets("Menu")
'Sheets("Menu").Select
If Cells(i, 7).Value = "" And Cells(i, 6).Value <> "" Then
Shname = Cells(i, 6).Value
For Each Sh In Worksheets
MsgBox (i & Shname & Sh.Name)
'Sh.Activate
If Sh.Name = "Menu" Or Sh.Name = "基準管理" Then
'If ActiveSheet.Name = "Menu" Or
'ActiveSheet.Name = "基準管理" Then
wdummy = "aaa"
ElseIf Sh.Name = Shname Then
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
Else
wdummy = "bbb"
End If
Next Sh
'Sheets("Menu").Select
End If
End With
Next
>SelectやActive〜のような選択するだけの処理は
>誤動作の原因となるので、使わない方が良いでしょう。
For Each のことでしょうか?
>あとシートを削除すると、行削除と同様に
>シートの順番(インデックス番号)がズレますので
>for〜Next で Step -1 で逆からループしないと正しく動作しません。
For Eachを、For Nextに書き換えるのでしょうか?
上記のFor Nextでは、意味ないように思いますが…。
|
|