Step34 登録済みの請求書No.の行を削除: Excel請求書

終了時点で既に請求書No.が登録されている場合は、その登録行を削除します。そして次回を再登録するようにします。

検索はFind関数を使い、見つからなくなるまでDo~Loopステートメントでループします。
行の削除はEntireRow.Deleteで行います。


Homeに戻る > Excelでアプリケーションソフト3 > 請求書アプリ

作成画面

■登録済み請求書No.の行を削除する

下のシートから「SK-1」の行全体を削除します。
「SK-1」の行全体を削除

行全体を削除した実行結果です。
行全体を削除した実行結果


■BeforeCloseイベントの変更コード

下記のVBAコードに変更してください。
MyDeleteNoは、請求書No.を検索し見つからなくなるまで削除し続ける、新しく作成したプロシージャです。

        If MyFindNumber(Worksheets("請求書").Range("x6")) = 0 Then
            MySaveData
        Else
            MyDeleteNo (Worksheets("請求書").Range("x6"))
        End If

■検索し見つかれば行を削除する

下記のコードに追加してください。
FindでC列を完全一致で検索します。 見つかればEntireRow.Deleteで行削除、見つからなければExitでループを抜けます。

Private Sub MyDeleteNo(sv As String)
    Dim trange As Range

    Do
        Set trange = Worksheets("一覧").Columns(3).Find(What:=sv, _
            LookIn:=xlValues, LookAt:=xlWhole)
        If Not trange Is Nothing Then
            trange.EntireRow.Delete
            DoEvents
        Else
            Exit Do
        End If
    Loop
End Sub

[関連リンク]

条件に一致する行を削除する
空白行を削除し詰める
FIND、FINDB 大文字と小文字を区別し文字位置を検索する
Findメソッド


Homeに戻る > Excelでアプリケーションソフト3 > 請求書アプリ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved