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

henpihashineyecatchaa

返品元(発信元)情報を表示するためのエクセルVBAを組み立てます。
チェックボックスを設置して、デジタル化した番線印も選択表示できるようにします。

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

今回は,

エクセルBOOK「返品了解申請.xlsm」の「返品依頼テンプレート」に、

発信元(返品元)情報を表示するためのVBAプログラム作りを行っていきます。


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

henpitempdataeyecatcha 返品依頼テンプレートを出版社別に複製しデータを流し込む

返品元情報の表示のVBA作成の流れ

henpinhatsinp006

今回は、エクセルBOOK「返品了解申請.xlsm」の「スタート設定」シートを使います。

返品依頼の「発信元情報」を登録する入力欄を作成します。

  1.  「発信元情報」を登録する入力欄を作成します。
  2.  番線印と番線印情報を選択表示できるようにします。

ここで行うデータ処理は、「返品依頼テンプレート」に対して反映させます。

つまり、出版社別の返品依頼書を作成する時の、返品元情報ということになります。

なのでこの発信元情報の表示は、少なくとも「返品依頼テンプレート」に対しての書誌データ転記と同じタイミングで、行っておく必要があります。

情報表示のVBAコード作成

henpinhatsinp007

新しくモジュールを挿入してください。

(挿入の方法はこちら↓で確認できます。)

VBE(ビジュアルベーシックエディター)を起動する

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

発信元情報の入力欄の作成

最初に「スタート設定」シートのセルサイズを決めていきます。

全体として

セル高さ・・・
シート全体をつかんで、「高さ:37ピクセル」にセットしてください。

セル幅・・・
シート全体をつかんで、「幅:72ピクセル」にセットしてください。

I列の幅を267ピクセルに、K列の幅を334ピクセルにします。

「発信元情報」はH2からL7

「番線印」はH12からL15

のセル範囲で作成します。

セル範囲の外枠を実線で囲みます。

「番線印」についてはセルのコピぺで番線印画像を移動します。

ですので「番線印」を置くセルには罫線が付かないようにします。(隣り合う4辺のセルを緩衝セルとします。)

「入力欄」の完成はこのようになります。

henpinhatsin001a


色付きセルの部分は、入力項目の表示になります。

VBAコードを組み立てる

VBAコードを組んでいきます。

プロシージャー名を「発信元情報」とします。

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

  1. 「発信元(注文元)」・・・・・Ha
  2. 「部署名/担当者名」・・・・・Hb
  3. 「住所」・・・・・・・・・・・Hc
  4. 「電話番号」・・・・・・・・・Hd
  5. 「FAX番号」・・・・・・・・He

「返品依頼テンプレートシート」に表示するときには、

前に入力した情報に上書きされる状態になります。

VBA
Option Explicit

Sub 発信元情報()
    Dim Ha As Variant
    Dim Hb As Variant
    Dim Hc As Variant
    Dim Hd As Variant
    Dim He As Variant
        With Worksheets("スタート設定")
            Ha = .Range("K3")
            Hb = .Range("K4")
            Hc = .Range("K5")
            Hd = .Range("K6")
            He = .Range("K7")
        End With
        With Worksheets("返品依頼テンプレート")
            .Range("C31") = Ha
            .Range("C32") = Hb
            .Range("C33") = Hc
            .Range("C34") = Hd
            .Range("C35") = He
        End With
End Sub

番線印については、「番線印」と「番線印情報」を選択できるようにします。

チェックボックスを挿入して行います。

VBACheckBoxeyecatch シートへの【2種類のチェックボックス】の設置と使い方の違い

チェックボックスは「開発タブ」の「挿入」より「ActiveXコントロール」のチェックボックスを選択します。

henpinhatsin005a

今回のチェックボックスは、1つのみ選択・2つ選択・選択無しの3パターンがあります。

  •  「1つ選択」・・・チェックした方が表示されます。
  •  「2つ選択」・・・「番線印」が表示されます。
  •  「選択無し」・・・何も表示されません。

VBAコードを組みます。

プロシージャー名を「番線印転記」とします。

VBAコードは以下ようになりますが、「番線印」をコピーペーストするので、

連絡表の「書店印欄」の外枠線が消えてしまいますので、プロシージャー名を「線引き直し」として、

外枠線を復活させるVBAを組んでおきます。

VBA
Sub 番線印転記()
    Dim BNa As Boolean
    Dim BNb As Boolean
        Worksheets("スタート設定").Select
        If Worksheets("スタート設定").CheckBox1.Value = True Then
            BNa = True
        End If
        If Worksheets("スタート設定").CheckBox2.Value = True Then
            BNb = True
        End If
        If BNa = True And BNb = True Then
            BNa = True
            BNb = False
        End If
        Worksheets("返品依頼テンプレート").DrawingObjects.Delete
        If BNa = True Then
            Range("I14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A31")
            Range("I14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A40")
            Range("I14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A66")
        ElseIf BNb = True Then
            Range("K14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A31")
            Range("K14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A40")
            Range("K14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A66")
        End If
        Call Module2.線引き直し
End Sub

プロシージャー名を「線引き直し」

vbacellsbordereyecatch 「罫線」のVBAを最速理解
VBA
Sub 線引き直し()
        Worksheets("返品依頼テンプレート").Select
        With Range("A40").Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
        With Range("A66").Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
End Sub

これで発信元情報の表示は完了です。

今回作成したコード

henpinhatsinp008

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

VBA
Option Explicit

Sub 発信元情報()
    Dim Ha As Variant
    Dim Hb As Variant
    Dim Hc As Variant
    Dim Hd As Variant
    Dim He As Variant
        With Worksheets("スタート設定")
            Ha = .Range("K3")
            Hb = .Range("K4")
            Hc = .Range("K5")
            Hd = .Range("K6")
            He = .Range("K7")
        End With
        With Worksheets("返品依頼テンプレート")
            .Range("C31") = Ha
            .Range("C32") = Hb
            .Range("C33") = Hc
            .Range("C34") = Hd
            .Range("C35") = He
        End With
End Sub

Sub 番線印転記()
    Dim BNa As Boolean
    Dim BNb As Boolean
        Worksheets("スタート設定").Select
        If Worksheets("スタート設定").CheckBox1.Value = True Then
            BNa = True
        End If
        If Worksheets("スタート設定").CheckBox2.Value = True Then
            BNb = True
        End If
        If BNa = True And BNb = True Then
            BNa = True
            BNb = False
        End If
        Worksheets("返品依頼テンプレート").DrawingObjects.Delete
        If BNa = True Then
            Range("I14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A31")
            Range("I14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A40")
            Range("I14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A66")
        ElseIf BNb = True Then
            Range("K14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A31")
            Range("K14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A40")
            Range("K14").Copy _
                Destination:=Worksheets("返品依頼テンプレート").Range("A66")
        End If
        Call Module2.線引き直し
End Sub

Sub 線引き直し()
        Worksheets("返品依頼テンプレート").Select
        With Range("A40").Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
        With Range("A66").Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
End Sub

返品元情報表示VBA作成のまとめ

henpinhatsinp009

これで返品了解書作成部分までは完了しました。

次回は、作成後 次に利用するときのための「データをクリアー」する作業について行っていきます。

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

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

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

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

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

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

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min