トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 持続可能なスキーム編: 第18話「泉先輩と水木さん」3/4 :削除処理を作成しよう

やってみよう!Excel VBAで業務改善! 持続可能なスキーム編|第18話 「泉先輩と水木さん」

削除処理を作成しよう


Sub データ削除()
    Dim rs As New ADODB.Recordset
    Dim sql As String
    Dim num As String
    
    If DB接続 Then
        num = Cells(ActiveCell.Row, 1).Value
        
        If num <> "" Then
            sql = "SELECT * FROM 進捗TBL WHERE num='" & num & "'"
            rs.Open sql, CN, adOpenKeyset, adLockOptimistic
            
            If Not rs.BOF Then
                Rows(ActiveCell.Row).Select
                
                If MsgBox("このデータを削除してもいいですか?", vbYesNo) = vbYes Then
                    rs.Delete
                    MsgBox "データを削除しました"
                End If
            End If
            
            Call データ取得
        End If
    End If
End Sub

「うん。こんなものじゃないかな?
削除と言っても、ワークシートの行を削除したところで、テーブルから削除されるわけじゃない。
テーブルから削除するには、レコードセットのDeleteメソッドを使う必要がある」

八木特製ブレンドを口にしながら、八木くんは1行ずつコードを確認していきます。

「まず変数numに、アクティブセルのある行のA列…つまり案件番号を格納する。
次に進捗TBLから、格納した番号のレコードセットを取得する。
あとは、確認メッセージを表示して、ユーザーが"はい"を選択したら、
rs.Deleteで削除してやればオッケーだ」

一覧にもどる