こんにちは、じゅんぱ店長(@junpa33)です。
今回は,
返品了解書作成ソフト作りでの「返品書籍情報.xlsm」での最後の項目についてです。
つまり、
「返品了解申請.xlsm」での処理終了後に、
次回の使用のために今あるデータをクリアーするためのVBAを組み立てて、それをボタンで起動できるようにします。
データのクリアーは自動で行うこともできますが、一時的にデータを保存したいこともあるかと思いますので、
マニュアル操作でのクリアー操作ということにしています。
その前に、
先回の返品了解書作成記事はこちら↓からご確認いただけます。
返品了解書作成のVBA。出版社リストのデータを他のエクセルに送る
返品了解書作成に関連の記事はこちらです。
コンテンツ
返品了解書VBA 入力データのクリアコード作成の流れ
データをクリアする項目はこのようになります。
①.各出版社別シートを削除します。
②.「出版社リスト」シートをクリアします。
③.「抽出データ」シートをクリアします。
④.「操作ボタン」シートにクリアボタンを設置します。
クリアの実行は、「操作ボタン」シートのクリアボタンを押すことで行います。
作成したデータは、次の「返品了解申請.xlsm」に引き継がれます。
作業途中で一旦休止保存する場合、
「操作ボタン」シートで「データ転送連携実行」をクリック(VBAの実行)していない時は、そのまま上書き保存します。
作業途中、「データ転送連携実行」をクリック後(VBAの実行後)にその転送したデータを修正したい場合、
「返品了解申請.xlsm」の転送先のデータをクリアする必要があります。
その場合のクリア用のVBAを準備します。
⑤.「返品了解申請.xlsm」の「返品本分類」シートクリアとクリアボタン設置
利用後データのクリアコードの組み立て
新たに標準モジュールを挿入します。
(挿入の方法はこちら↓で確認できます。)
「VBE(ビジュアルベーシックエディター)を起動する」
「エクセルVBA 始めての起動。VBEの立ち上げ、保存と終了」
各出版社別のシートを削除するVBA
各出版社別のシートを削除するVBAの組み立て方はいくつか考えることが出来ます。
今回は、「出版社リスト」によってそれぞれのシートを作成していった事の逆を行っていきます。
シートを削除するときには”アラート”が表示されます。
この時にVBA動作が中断されてしまいますので、表示されないようにすることが必要です。
この一連のVBAが終了した後は、”アラート”が表示されるように戻しておきます。
Subプロシージャー名を「出版社別シートCL」とします。
Sub 出版社別シートCL()
End Sub
このVBAで使用する変数をこのようにします。
「出版社リストに掲載の出版社数」・・SRow
「削除する出版社名」・・・・・・・・SN
もし、出版社別シートが一部”シート削除”されていた場合
「出版社リスト」にある出版社の出版社別シートが揃っていない場合は、VBAエラーが起こります。
そこで、その場合は無視して次へ進むようにコードを作っていきます。
VBAコードはこのようになります。
関連記事
Gotoステートメントの利用法を最速に理解。毒コードと薬コード
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

ボタン 「返品情報データクリア」を「操作ボタン」シートに設置します。
設置方法の確認はこちら↓での確認できます。
データ修正のための転送済データクリアとボタン設置
「操作ボタン」シートの「データ転送連携実行」ボタンを押した後で、書誌データの情報を修正したい時、
すでに転送したデータを一旦クリアすることが必要です。
「返品了解申請.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
ボタンの設置はこのような感じです。
今回組み立てたクリアコード
作成したVBAコードはこのようになります。
データクリアのVBAコードまとめ
この記事では返品の書籍データ作成転送後に、
次の利用のための現データクリアのためのVBAコードを組み立てました。
エクセルBOOK「返品書籍情報」を終了するときは、「上書き保存」で終了してもらえればOKです。
次回からは、エクセルBOOK「返品了解申請」で作成したテンプレートを複製して、
転送したデータを載せて行く仕組みを作っていきます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAを独学で習得するためのポイントは?良書との出会いは重要
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
次の記事に進むのはこちら↓から
返品依頼テンプレートへのデータ流し込みをエクセルVBAで行う方法
エクセルVBAを使って、業務効率UPを図る上で始めのうちに知っておきたい内容を纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。