| 
    
     |  | こんにちは。tokiと申します。 
 ワークシートのデータ一括削除ボタンを作成中なのですがご質問です。
 
 (前提)
 1.ワークシート構成は1月〜12月及び上期、下期の合計14枚です。
 2.各シートには各行に社員データが入力されておりA列に職務名が記載されています。
 3.ユーザーフォームにて削除Label1に選択した「職務」が表示されています。
 
 ここで3.にて表示されている職務に該当する全ての人間のデータを14枚のワークシートから一括削除したいと思っています。
 
 以下のコードを作成しました。
 しかしながら、途中でエラーが出てしまいます。結果として上期シートだけ職務該当者の行が削除されるのですが、それ以降の処理が行われていません。
 どこがおかしいのかご指摘お願いします。
 
 
 Private Sub 職務削除ボタン_Click()
 
 Dim sakujyol As String
 Dim ans As Integer
 Dim myRowSJ As Variant
 Dim myRowSJ2 As Variant
 Dim myRowSJ3 As Variant
 
 sakujyol = 削除Label1
 
 Application.DisplayAlerts = False
 ans = MsgBox(sakujyol & "を本当に削除しますか?" & "(この職務に属する登録済の社員データも全て削除されます。)", vbYesNo + vbExclamation, "職務の削除")
 
 Select Case ans
 Case vbYes
 MsgBox sakujyol & "を削除します。", vbInformation, "職務の削除"
 
 With Worksheets("上期")
 Do While IsError(myRowSJ) = False
 myRowSJ = Application.Match(sakujyol, .Range("A:A"), 0)
 .Cells(myRowSJ, "A").EntireRow.Delete shift:=xlUp
 Loop
 End With
 With Worksheets("下期")
 Do While IsError(myRowSJ2) = False
 myRowSJ2 = Application.Match(sakujyol, .Range("A:A"), 0)
 .Cells(myRowSJ2, "A").EntireRow.Delete shift:=xlUp
 Loop
 End With
 For i = 1 To 12
 With Worksheets(i & "月")
 Do While IsError(myRowSJ3) = False
 myRowSJ3 = Application.Match(sakujyol, .Range("A:A"), 0)
 .Cells(myRowSJ3, "A").EntireRow.Delete shift:=xlUp
 Loop
 End With
 Next
 
 Case vbNo
 Exit Sub
 End Select
 
 Application.DisplayAlerts = True
 Unload Me
 Unload 削除選択フォーム
 
 End Sub
 
 |  |