利用済データの削除とクリアのVBA FAX注文書作成

faxhatyudataCReyecatch

エクセルVBAでFAX注文書の作成途上です。
今回は、利用済データのクリアと削除のコードについてです。
ClearContentsやDeleteを使用します。

こんにちは、じゅんぱ店長(@junpa33)です。

先回は、「FAX注文書作成.xlsm」でまとめたデータを、「FAX注文書テンプレート.xlsm」に移動し注文書作成できるように、1ページづつのデータ括り編集を行いました。

この作業をさらに進める前に、

今回は、使用の終わった『「FAX注文書作成.xlsm」でまとめたデータ』を、次回のツール利用ために、データの削除とクリアを行うVBAコードを組み立てておきます。

データの削除とクリアの方法

faxhatyudata015kai

手作業で、データを削除していくのであれば、目視確認で行うことが出来ますが、VBAコードで行いますので、 ” 違うもの ” まで削除してしまわないように注意する必要があります。

データの削除とクリアを実行するコマンドボタンは、1つ(ワンクリック)で行えるようにしますが、削除とクリアの内容としては、1シート毎に処理を行っていきます。

VBAコードの設置は新しいモジュール(Module4)に記入します。

VBEでモジュールを挿入してください。

「抽出データ」シートのクリア

最初にクリアーするのは「抽出データ」シートです。

その前に、シートクリアのコード作成の前に、

このモジュール(Module4)で頻繁に使うオブジェクトを変数化しておきます。

VBA
Option Explicit

Function wb() As Workbook
    Set wb = Workbooks("FAX注文書作成.xlsm")
End Function

Function wsT() As Worksheet
    Set wsT = wb.Worksheets("抽出データ")
End Function

Function wsS() As Worksheet
    Set wsS = wb.Worksheets("出版社リスト")
End Function

ClearContentsメソッドで値をクリアします。

「抽出データ」シートは常に必要なので、シートは削除しません。

VBA
Sub 抽出データクリアー()
        With wsT
            .Activate
            .Cells.ClearContents
            .Range("A1").Select
        End With
        Worksheets("操作ボタン").Select
        Range("A1").Select
End Sub

出版社各シートの削除

「出版社リスト」シートをクリアする前に、各出版社のシートを削除します。

発注データを作成するときに、「出版社リスト」にある出版社名でそれぞれにシートを新規作成しましたので、削除についてはその逆を行います。

なお、

「出版社リスト」シートは毎回必ず必要なので、シートは残しますが、「出版社別各シート」は毎回その都度作成しますので、使い終わればシートは削除します。

VBA
Sub 出版社シートクリアー()
    Dim PrRow, t As Long
    Dim PrV As Variant
        wsS.Activate
        If Range("A1").Value <> "" Then
            PrRow = Cells(Rows.Count, 1).End(xlUp).Row
            For t = PrRow To 1 Step -1
                PrV = wsS.Range("A" & t).Value
                With Worksheets(PrV)
                    .Select
                    Application.DisplayAlerts = False
                    .Delete
                    Application.DisplayAlerts = True
                End With
                wsS.Activate
            Next t
        End If
End Sub

「出版社リスト」シートのクリア

出版社リストをクリアーします。抽出データの場合と同じです。

VBA
Sub 出版社リストクリアー()
        With wsS
            .Activate
            .Cells.ClearContents
            .Range("A1").Select
        End With
        Worksheets("操作ボタン").Select
        Range("A1").Select
End Sub

3つのクリアと削除コードをまとめるプロシージャー

今までの3つのクリア・削除を一つにまとめるプロシージャーを作っておきます。

VBA
Sub ALLクリアー()
        Call Module4.抽出データクリアー
        Call Module4.出版社シートクリアー
        Call Module4.出版社リストクリアー
End Sub

ALLクリアーボタンを「操作ボタン」シートに設置

ALLクリアープロシージャーを実行する「ALLクリア」ボタンを設置します。

これで、「操作ボタン」シートのコマンドボタン設置は終了です。

faxhatyudata010a

クリアーと削除のまとめ

faxhatyudata016kai

データ利用後のクリアと削除についてのVBAコードを作りました。

ここではシートを削除する作業もありますので、一番安全で、確実な削除手法で行うことが重要になります。

シートのインデックス番号を使うのではなく、シート名がすでに判明しているので、 ” 名指し ” でシートを削除するのが安全でしょう。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。