返品了解書の情報入力VBA。利用後データのクリアコードの組み立て方

henjyocleyecatcha

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

 

今回は,

返品了解書作成ソフト作りでの「返品書籍情報.xlsm」での最後の項目についてです。

つまり、

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

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

 

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

 

その前に、

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

返品了解書作成のVBA。出版社リストのデータを他のエクセルに送る

 

返品了解書作成に関連の記事はこちらです。

「返品了解書作成」の記事一覧を開く

 

返品了解書VBA 入力データのクリアコード作成の流れ

 

データをクリアする項目はこのようになります。

①.各出版社別シートを削除します。

②.「出版社リスト」シートをクリアします。

③.「抽出データ」シートをクリアします。

④.「操作ボタン」シートにクリアボタンを設置します。

 

クリアの実行は、「操作ボタン」シートのクリアボタンを押すことで行います。

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

 

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

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

 

作業途中、「データ転送連携実行」をクリック後(VBAの実行後)にその転送したデータを修正したい場合、

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

その場合のクリア用のVBAを準備します。

⑤.「返品了解申請.xlsm」の「返品本分類」シートクリアとクリアボタン設置

 

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

 

新たに標準モジュールを挿入します。

 

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

エクセルVBA 始めての起動。VBEの立ち上げ、保存と終了

 

MEMO

シートのクリアのためのエクセルVBAコードの作り方については、この記事が参考になります。

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

 

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

 

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

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

シートを削除するときには”アラート”が表示されます。

この時にVBA動作が中断されてしまいますので、表示されないようにすることが必要です。

この一連のVBAが終了した後は、”アラート”が表示されるように戻しておきます。

 

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

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

 

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

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

 

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

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

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

VBAコードはこのようになります。

関連記事

Gotoステートメントの利用法を最速に理解。毒コードと薬コード

 

MEMO

入力セルの最終行を取得する方法はこちらを参考にしてください。

エクセルVBA データ入力済セルの最終行番号を取得する方法

 

Sub 出版社別シートCL()

Dim SRow 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プロパティ」でセルの高さと幅を元に戻します。

 

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

Sub 出版社リストCL()
End Sub

 

VBAコードはこのようになります。

Sub 出版社リストCL()

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

 

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

 

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

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

Sub 抽出データCL()
End Sub

 

同様に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つのプロシージャーを一度に行えるプロシージャーを作成します。

 

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

Sub 返品情報データCL()

 出版社別シートCL
 出版社リストCL
 抽出データCL
End Sub
VBAコード参考記事
ここの説明で出てくるVBAコードの参考にしていただける記事です。

vbacalleyecatch Callステートメントはプロシージャーの部品化に必須項目 エクセルVBA最速理解

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

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

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

 

henpinjyocl001a

 

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

 

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

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

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

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

 

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

 

Sub データ転送先データCL()

Module3.返品申請OPEN

Workbooks("返品了解申請.xlsm").Worksheets("返品本分類").Activate
Worksheets("返品本分類").Cells.Clear
  With Worksheets("返品本分類")
    .Cells.UseStandardHeight = True
    .Cells.UseStandardWidth = True
  End With
End Sub

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

 

henpinjyocl002a

 

 

 

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

 

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

 

henpinjyocl003a

 

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

 

この記事では返品の書籍データ作成転送後に、

次の利用のための現データクリアのためのVBAコードを組み立てました。

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

 

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

転送したデータを載せて行く仕組みを作っていきます。

 

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAを独学で習得するためのポイントは?良書との出会いは重要

 

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

 

次の記事に進むのはこちら↓から

返品依頼テンプレートへのデータ流し込みをエクセルVBAで行う方法

 

エクセルVBAを使って、業務効率UPを図る上で始めのうちに知っておきたい内容を纏めています。

「VBA最速理解」の記事一覧を開く

 

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

 

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