利用後データのクリアコードの組み立て方。返品了解書作成

henjyocleyecatcha

次回利用のために、利用の終わったデータをクリアするVBAコードを組み立てます。
追加で作成した出版社シートだけを削除する、別ブックに転記したデータだけを削除するなど。

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

今回は,

「返品了解申請.xlsm」での作業終了後に、

次回の使用のために今あるデータをクリアーするVBAを組み立てます。そしてそれをボタンで起動できるようにします。

データのクリアーは自動で行うこともできますが、一時的にデータを保存したいこともあるかと思いますので、
ボタンクリックでのクリアー操作ということにします。

その前に、

先回の返品了解書作成記事はこちら↓からご確認いただけます。

datarenkeyecatch データのあるブックから別のエクセルに値を転送するVBA

入力データ利用後のクリアコード作成の流れ

henpinjyoclp001

データをクリアするコード設計はこのようにします。

  1.  各出版社別シートを削除します。
  2.  「出版社リスト」シートをクリアします。
  3.  「抽出データ」シートをクリアします。
  4.  「操作ボタン」シートにクリアボタンを設置します。
  5.  「返品了解申請.xlsm」の「返品本分類」シートクリアとクリアボタン設置

クリアの実行は、「返品書誌情報.xlsm」の「操作ボタン」シートにあるクリアボタンを押すことで行います。

また、

「返品書誌情報.xlsm」で作成したデータは、次の「返品了解申請.xlsm」に引き継がれます。

作業途中で一旦休止保存する場合、

「操作ボタン」シートで「データ転送連携実行」ボタンをクリック(VBAの実行)していない場合は、そのまま上書き保存します。

「データ転送連携実行」ボタンをクリック後(VBAの実行後)に、その転送されてしまったデータを修正したい場合は、

「返品了解申請.xlsm」の転送先「返品本分類」シートのデータを一旦クリアする必要があります。

その場合のクリア用のVBAを準備します。(VBA組み立て作業⑤

利用後データのクリアコードの組み立て

henpinjyoclp002

「返品書誌情報.xlsm」に新たな標準モジュールを挿入します。

(挿入の方法はこちら↓で確認できます。)
VBE(ビジュアルベーシックエディター)を起動する

vbavbekidoeyecatch VBA初めての起動。VBEの立ち上げ、保存と終了 vbacleareyecatch シートクリアーを目的のメソッド別にVBA最速理解

各出版社シートを削除するVBA

各出版社ごとのシートを削除するVBAの組み立て方はいくつか考えることが出来ます。

今回は、「出版社リスト」のデータ作成したそれぞれのシートの逆プロセスを行っていきます。

エクセルのデフォルト表示では、シートを削除するときには ” 警告 ” がウインドウ表示されます。

この時にはVBAの動作が中断されてしまいますので、進行が中断されないようにする工夫が必要です。

プログラムとして、” 警告 ” がウインドウ表示されないようにするVBAコードを記述しておきます。

そしてこの一連のVBAが終了した後は、 ” 警告 ” 表示が再開されるようにしておきます。

プロシージャー名を「出版社別シートCLとします。

VBA
Sub 出版社別シートCL()
・・・・
End Sub

このVBAで使用する変数をこのようにします。

  1.  「出版社リストに掲載の出版社数」・・SRow
  2.  「削除する出版社名」・・・・・・・・SN

もし、出版社別シートが一部”シート削除”されていた場合

「出版社リスト」にある出版社の出版社別シートが揃っていない場合は、VBAエラーが起こります。

そこで、その場合は無視して次へ進むようにコードを作っていきます。

関連記事

VBAGotoeyecatch001 Gotoステートメントでコードをジャンプ!毒と薬の2面性 vbasheetvariableeyecatch ワークシートを変数化する3つの手法 オブジェクト変数など vbalastcelleyecatch データ入力済セルの最終行番号を取得する fornextirekoeyecatch For~Nextのループと入れ子構造をVBA最速理解
VBA
Option Explicit

Sub 出版社別シートCL()
    Dim SRow, t As Long
    Dim SN As String
        Worksheets("出版社リスト").Activate
        If Range("A1").Value <> "" Then
            SRow = Cells(Rows.Count, 1).End(xlUp).Row
            For t = SRow To 1 Step -1
                SN = Range("A" & t).Value
                On Error GoTo step2
                Worksheets(SN).Select
                Application.DisplayAlerts = False
                Worksheets(SN).Delete
                Worksheets("出版社リスト").Activate
step2:
            Next t
            Application.DisplayAlerts = True
        End If
End Sub

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

このシートのクリアは、A列をクリアするだけでOKですが、

「セル幅を変えて見やすくした。」とか「メモ書きを別セルに書いている」など

している場合には、シート状態をデフォルトにした方が良いと思います。

以前の別記事でも触れましたが、

「セルのUseStandardプロパティ」でセルの高さと幅を元に戻します。

プロシージャー名を「出版社リストCL」とします。

vbawithstateeyecatch With~End Withの使い方。VBAコードを簡潔に記述する
VBA
Sub 出版社リストCL()
        Worksheets("出版社リスト").Cells.Clear
        With Worksheets("出版社リスト")
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

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

「抽出データ」シートのクリアの場合も「出版社リスト」のクリアと同様です。

プロシージャー名を「抽出データCL」とします。

VBA
Sub 抽出データCL()
        Worksheets("抽出データ").Cells.Clear
        With Worksheets("抽出データ")
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
        Worksheets("操作ボタン").Select
        Range("A1").Select
End Sub

クリアボタンの設置

「出版社別シートCL」、「出版社リストCL」、「抽出データCL」の3つのプロシージャーを一度に行えるプロシージャーを作成します。

プロシージャー名を「返品情報データCL」とします。

vbacalleyecatch 部品化プロシージャーでCallステートメントは必須
VBA
Sub 返品情報データCL()
        Call Module4.出版社別シートCL
        Call Module4.出版社リストCL
        Call Module4.抽出データCL
End Sub

ボタン 「返品情報データクリア」を「操作ボタン」シートに設置します。

設置方法の確認はこちら↓での確認できます。

データ抽出ボタンを設置する。

userformcommdeyecatch コマンドボタンをユーザーフォームに設置する
henpinjyocl001a

データ修正のための転送済データクリアとボタン設置

「操作ボタン」シートの「データ転送連携実行」ボタンを押した後で、書誌データの情報を修正したい時、

すでに転送したデータを一旦クリアすることが必要です。

「返品了解申請.xlsm」を開いて、「返品本分類」シートを選んでクリアを実行します。

先回の記事で作成したプロシージャーを呼び出して利用します。

プロシージャー名を「データ転送先データCL」とします。

VBA
Sub データ転送先データCL()
        Call Module3.返品申請OPEN
        Workbooks("返品了解申請.xlsm").Activate
        With Worksheets("返品本分類")
            .Cells.Clear
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

ボタンの設置はこのような感じです。

henpinjyocl002a

今回組み立てたクリアコード

henpinjyoclp003

作成したVBAコードはこのようになります。

VBA
Option Explicit

Sub 出版社別シートCL()
    Dim SRow, t As Long
    Dim SN As String
        Worksheets("出版社リスト").Activate
        If Range("A1").Value <> "" Then
            SRow = Cells(Rows.Count, 1).End(xlUp).Row
            For t = SRow To 1 Step -1
                SN = Range("A" & t).Value
                On Error GoTo step2
                Worksheets(SN).Select
                Application.DisplayAlerts = False
                Worksheets(SN).Delete
                Worksheets("出版社リスト").Activate
step2:
            Next t
            Application.DisplayAlerts = True
        End If
End Sub

Sub 出版社リストCL()
        Worksheets("出版社リスト").Cells.Clear
        With Worksheets("出版社リスト")
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

Sub 抽出データCL()
        Worksheets("抽出データ").Cells.Clear
        With Worksheets("抽出データ")
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
        Worksheets("操作ボタン").Select
        Range("A1").Select
End Sub

Sub 返品情報データCL()
        Call Module4.出版社別シートCL
        Call Module4.出版社リストCL
        Call Module4.抽出データCL
End Sub

Sub データ転送先データCL()
        Call Module3.返品申請OPEN
        Workbooks("返品了解申請.xlsm").Activate
        With Worksheets("返品本分類")
            .Cells.Clear
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

データクリアのVBAコードまとめ

henpinjyoclp004

この記事では返品書誌データを作成し転送し使った後で、

次回のソフト利用のため、今のデータをクリアしておく処理コードを設計しました。

エクセルBOOK「返品書誌情報.xlsm」を終了するときは、「上書き保存」で終了してもらえればOKです。

そして、次回からは、エクセルBOOK「返品了解申請.xlsm」で作成したテンプレートを複製して、

転送したデータを載せて行くプログラムコードを作っていきます。

vbastudyeyecatch002 エクセルVBAを独学で習得する!ために大切な7つのポイントを解説します

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

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

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

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

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

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

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min