エクセルで在庫管理表を作っていますが、今回は作成完了したデータをクリアーするためのためのVBAコードをを解説いたします。
簡単そうでちょっと工夫がいります。そのコツを紹介します。
こんにちは、じゅんぱ店長(@junpa33)です。
雑誌と書籍の在庫管理表のソフト作成方法についてです。
今回は、
在庫表作成で今まで入力や表示を行ったデータを、
クリアーするためのエクセルVBAを考えていきます。
「書誌棚卸表.xlsm」で新しいモジュールに操作を行うVBAコードを記述します。
前の記事の確認をするにはこちら↓から。
書誌棚卸表を調査個所別に仕上げる。シート表記するVBAコード
「雑誌と書籍の在庫リスト」の完成形はこの記事をご覧ください。
【棚卸し】無料入手!在庫管理の「雑誌と書籍の在庫リスト」DLと取説
雑誌と書籍の在庫リスト作成に関連した記事はこちらになります。
コンテンツ
データをクリアーする適材適所のVBAコード
今回のコードの記述はModule4に記述します。
「コード入力表」、「データコピー」、「作業シート」のシートの内容をクリアーします。
作成した完成在庫表については、シートを削除して「書誌棚卸表.xlsm」を
デフォルトのシート状態に戻します。
それでは、「コード入力表」、「データコピー」、「作業シート」と作成した完成在庫表について
それぞれに説明していきます。
「コード入力表」のシートクリアー
コード入力表シートのセルのデータクリアーについて、
単に”Cells.
ただ、セルに色がついていますので、その列のE列を掴んで一挙に
”.Interior.ColorIndex=0”として着色なし状態にします。
コード①
Sub コード入力表クリア()
Worksheets("コード入力表").Select
Cells.Clear
Worksheets("作業シート").Select
Range("E:E").Interior.ColorIndex = 0
Range("A1").Select
End Sub
「データコピー」のシートクリアー
データコピーシートのセルのデータクリアーについて、
同様に”Cells.Clear”で行います。
このシートでは、セルサイズを変化させていますので、データクリアー時にセルのサイズも元に戻します。
”.Cells.UseStandardHeight=True”
”.Cells.UseStandardWidth=True” で
デフォルトに戻します。
コード②
Sub データコピークリア()
Worksheets("データコピー").Cells.Clear
With Worksheets("データコピー")
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
End With
Range("A1").Select
End Sub
「作業シート」のシートクリアー
作業シートのセルのデータクリアーについて、
こちらはデータシートの場合と同じです。
コード③
Sub 作業シートクリア()
Worksheets("作業シート").Cells.Clear
With Worksheets("作業シート")
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
End With
Range("A1").Select
End Sub
完成した在庫表の削除
ここでは「書誌棚卸表.xlsm」の状態を初期に戻すためのコードとなります。
完成した在庫表の一部を削除する場合は、手作業(マニュアル)で行ってください。
初期状態では「コード入力表」、「データコピー」、「作業シート」の3つのシートがあります。
コード作成の考え方としては、この3シート以外はすべて削除するというコードを作成します。
どれだけ完成した在庫表が作られているか(シート枚数があるか)ケースバイケースで分かりませんので、
”For Each…Next”を使って中に条件文を埋め込みます。
エクセルでは何もしないとシートの削除の時に「削除して良いか」のメッセージが出ますので、
コード実行中は、この表示をOFFにします。(しないとコード実行が一時停止します。)
コード終了時に、表示をONに戻すコードを書き忘れないようにします。
関連記事
VBA 回数不定のループ処理はDo LoopとFor Each
コード④
Sub 在庫表クリア()
Dim Wsz As Worksheet
Application.DisplayAlerts = False
For Each Wsz In Worksheets
If Wsz.Name <> "コード入力表" And Wsz.Name <> "データコピー" _
And Wsz.Name <> "作業シート" Then
Wsz.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
全体としてはこの様な感じです。
利用後データをクリアーするVBAコードのまとめ
クリアーの作業は比較的簡単なコードで行うことができます。
エクセルを使っている方で、シートのセルに関数式(数式)を埋めて使っている方も多いかと思います。
そういったセルへの関数式埋め込みの場合は、不注意にデータをクリアーして、
「やっちまったなぁ」の経験された方も多いのではないでしょうか。
自分もそれでマウスやキーボードに当たり散らした経験があります。
それがVBAにチャレンジするきっかけにもなりました。
オンリーVBAプログラムの場合は思っきり消しても大丈夫です。安心して消してください。


電子書籍版「Excelマクロ&VBA超入門」をamazonで見てみる
(著者)井上香緒里(出版社)技術評論社
(税込価格)1,738円(本体1,580円+税)
マクロとVBAについて学んでみたいけれど,いまひとつ自信がないという方のために,ひとつひとつの操作を丁寧に解説する1冊目の教科書です。
エクセルVBAの「い・ろ・は の い」から説明していますので、安心して取り組める参考書です。
例題として、
- 「データ消去」「シートのコピー」「メッセージボックス」の機能を持つお小遣い帳
- 「入力フォーム」の機能を持った歩数表
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
エクセルVBAを使いだして、始めのうちに知っておきたい内容を纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。









