返品了解情報クリアのVBAとマクロ実行のボタン設置

riyojoucleareyecatcha

返品了解の依頼書を使用後の情報データを、クリアするエクセルVBAと、実行のコマンドボタンをワークシートに作成します。

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

今回は,

エクセルBOOK「返品了解申請.xlsm」で返品了解依頼書を作成した後、

次回の使用のために、利用した返品データをクリアするVBAプログラムを作ります。

そしてこのプログラムを実行するための実行ボタンを「スタート設定」シートに設置します。


前回の記事の確認をしたいという方はこちら↓からお読みいただけます。

henpihashineyecatchaa 返品元情報を表示するVBAコード。返品依頼書作成

返品了解情報をクリアするVBA作成の流れ

riyojyouclea005

利用済みの情報のクリアする部分は「各出版社別」シートの削除と「返品本分類」シートのクリアになります。

「返品依頼テンプレート」には、発信元情報を入力していますが、その度に変わるものではありませんので、

このクリアの対象とはしません。

  1.  「各出版社別」シートの削除 シートそのものを削除します。
  2.  「返品本分類」シートのクリア シート状態をデフォルトの状態に戻します。

このクリアのVBAコードによって、エクセルにある作成したデータはすべて消えてしまいます。

エクセルのデータを保存したい場合は、

このクリアのVBAを作動させる前に、エクセルBOOK「返品了解申請.xlsm」を別名保存しておきましょう。

保存する時の注意点

保存名を変えて保存すること。(名前を付けて保存)

マクロなしBOOK(拡張子.xlsx)で保存します。(少しデータ量が軽くなります)

riyojyouclea001a

情報クリアのVBAコード作成

riyojyouclea006

今回も新しく「返品了解申請.xlsm」に標準モジュール(Module3)を挿入します。

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

vbavbekidoeyecatch VBA初めての起動。VBEの立ち上げ、保存と終了

各出版社別シートの削除

各出版社別シートの削除は「返品本分類」シートのA列の値(ページ数)に基づいて行っていきます。

A列の値が、それぞれのシート名になっているからです。

プロシージャー名を「各ページクリア」とします。

変数をこのように設定します。

  1.  「返品本分類のデータ行数」・・・・・CRow
  2.  「削除するシートのページNO.」・・SN
  3.  「ループ処理のループ回数」・・・・・c

条件分岐については、各出版社別シート作成の時と同じ方法で行います。

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

Sub 各ページクリア()
    Dim CRow As Long
    Dim SN As Variant
    Dim c As Long
        Worksheets("返品本分類").Select
        CRow = Cells(Rows.Count, 1).End(xlUp).Row
        If CRow <= 1 Then
            MsgBox "クリアするシートリストがないか、" & _
                                "クリアするシートがありません。"
            Exit Sub
        End If
        For c = 1 To CRow
            SN = Range("A" & c).Value
            If c = 1 Then GoTo step1
            If SN = Range("A" & c - 1).Value Then GoTo step2
step1:
            Application.DisplayAlerts = False
            Worksheets(SN).Delete
step2:
            Worksheets("返品本分類").Select
        Next c
        Application.DisplayAlerts = True
End Sub

返品本分類シートのクリア

vbacleareyecatch シートクリアーを目的のメソッド別にVBA最速理解

プロシージャー名を「本分類クリア」とします。

シートの状態をデフォルトに戻すのには、

「.UseStandard」プロパティを使います。

VBA
Sub 本分類クリア()
        With Worksheets("返品本分類")
            .Cells.Clear
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

作成したクリアコード

クリアコードはこのようになります。

VBA
Option Explicit

Sub 各ページクリア()
    Dim CRow As Long
    Dim SN As Variant
    Dim c As Long
        Worksheets("返品本分類").Select
        CRow = Cells(Rows.Count, 1).End(xlUp).Row
        If CRow <= 1 Then
            MsgBox "クリアするシートリストがないか、" & _
                                "クリアするシートがありません。"
            Exit Sub
        End If
        For c = 1 To CRow
            SN = Range("A" & c).Value
            If c = 1 Then GoTo step1
            If SN = Range("A" & c - 1).Value Then GoTo step2
step1:
            Application.DisplayAlerts = False
            Worksheets(SN).Delete
step2:
            Worksheets("返品本分類").Select
        Next c
        Application.DisplayAlerts = True
End Sub

Sub 本分類クリア()
        With Worksheets("返品本分類")
            .Cells.Clear
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

スタート設定シートのマクロ実行ボタン設置

riyojyouclea007

「スタート設定」シートに作動ボタンを設置していきます。

このボタンのためのプロシージャーを設置する新たなモジュール(Module4)を挿入します。

作動させるプロシージャーの順番を間違えるとうまく動かないことになりますので、

記述順を間違えないようにしてください。

ボタン関連付けのプロシージャー

vbacalleyecatch 部品化プロシージャーでCallステートメントは必須

①返品依頼の作成についてのボタンを作成します。

プロシージャー名を「返品依頼作成」として、このボタンに関連付けします。

VBA
Option Explicit

Sub 返品依頼作成()
        Call Module1.テンプレコピー
        Call Module1.データ移動
        Call Module1.電話番号検索
End Sub

②発信元表示のボタンを設置します。

プロシージャー名を「発信元表示」として、このボタンに関連付けします。

VBA
Sub 発信元表示()
        Call Module2.発信元情報
        Call Module2.番線印転記
End Sub

③オールクリアのボタンを設置します。

プロシージャー名を「オールクリア」として、このボタンに関連付けします。

VBA
Sub オールクリア()
        Call Module3.各ページクリア
        Call Module3.本分類クリア
End Sub

実行ボタンの設置

ボタンの設置方法は、こちら↓を参考にしてください。

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

vbabuttoneyecatch コマンドボタンをシートに設置する2つの方法
riyojyouclea004a

返品了解情報のクリアVBAと実行ボタン設置のまとめ

riyojyouclea008

データをクリアする方法と「スタート設定」シート作成はこれで完了になります。

データをエクセルで保存する時は、ファイル名を変えて保存するようにしてください。

データの保存目的であれば、「マクロなしBOOKでの保存」(.xlsx)で保存しましょう。

今回で、エクセルBOOK「返品了解申請.xlsm」は完成です。

先に完成しているエクセルBOOK「返品書誌情報.xlsm」と

エクセルBOOK「FAX電話番号.xlsx」

3点は同じディレクトリ(同じフォルダー)に置いてください。

(設置場所をバラバラに変えてしまうと、参照エラーでVBAが止まってしまいます。)

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

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

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

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

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

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