利用後情報をクリアするエクセルVBA。返品了解の依頼書の作り方

riyojoucleareyecatcha

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

 

今回は,

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

次回使用のために、今回利用した返品についての書誌情報をクリアするためのVBAプログラム作りを行っていきます。

そしてさらに「スタート設定」シートに今まで作成したVBAの作動ボタンを設置します。

 

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

発信元情報を表示するためのエクセルVBA。返品依頼書を作る

 

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

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

 

利用後情報をクリアするVBA作成の流れ

 

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

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

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

①「各出版社別」シートの削除 シートそのものを削除します。

②「返品本分類」シートのクリア シート状態をデフォルトの状態に戻します。

 

このクリアのVBAによって、エクセルベースの作成したデータがすべて消えてしまいます。

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

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

保存する時の注意点

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

マクロなしBOOKで保存します。(BOOKも少しデータ量が軽くなります)

 

riyojyouclea001a

 

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

 

今回も新しくモジュールを挿入します。

 

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

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

 

各出版社別シートの削除

 

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

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

 

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

Sub 各ページクリア()
End Sub

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

「返品本分類のデータ行数」・・・・・CRow

「削除するシートのページNO.」・・SN

「ループ処理のループ回数」・・・・・c

 

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

 

MEMO

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

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

Gotoステートメントの使い方についてはこちらを参考にしてください。

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

 

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

 

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

 

MEMO

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

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

 

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

Sub 本分類クリア()
End Sub

 

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

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

Sub 本分類クリア()

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

 

作成したクリアコード

 

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

riyojyouclea002a

 

VBA作動ボタンの設置

 

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

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

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

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

 

VBAコード参考記事
ここの説明で出てくるVBAコードの参考にしていただける記事です。

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

 

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

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

Sub 返品依頼作成()

  Module1.テンプレコピー
  Module1.データ移動
  Module1.電話番号検索
End Sub

 

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

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

Sub 発信元表示()

  Module2.発信元情報
  Module2.番線印転記
End Sub

 

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

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

Sub オールクリア()

  Module3.各ページクリア
  Module3.本分類クリア
End Sub

riyojyouclea003a

 

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

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

 

MEMO

コマンドボタンの設置方法はこちらの記事も参考になります。

エクセルVBA コマンドボタンをシートに簡単設置する方法

 

riyojyouclea004a

 

利用後情報のクリアVBA作成のまとめ

 

データをクリアする方法はこれで完了になります。

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

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

 

 

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

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

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

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

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

 

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

 

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

 

次回は、返品了解書作成で作ったエクセルBOOKの取説記事です。

 

返品了解書作成ソフトの取説。上手なエクセル利用法で時短を推進します

 

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

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

 

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

 

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