こんにちは、じゅんぱ店長(@junpa33)です。
今回は,
エクセルBOOK「返品了解申請.xlsm」の「返品依頼テンプレート」に、
発信元(自店)情報を表示するためのVBAプログラム作りを行っていきます。
ちょっとその前に、
前回の記事の確認をしたいという方はこちら↓からお読みいただけます。
返品依頼テンプレートへのデータ流し込みをエクセルVBAで行う方法
返品了解書作成に関連の記事はこちらです。
コンテンツ
発信元情報の表示のVBA作成の流れ
今回は、エクセルBOOK「返品了解申請.xlsm」の「スタート設定」シートを使います。
返品依頼の「発信元情報」を登録する入力欄を作成します。
①「発信元情報」を登録する入力欄を作成します。
②番線印と番線印情報を選択表示できるようにします。
ここでのVBAでのデータ処理は、「返品依頼テンプレート」に対して反映させていきます。
つまり、出版社別シートを作成するための”コピー元”に対してということになりますので、
「返品依頼テンプレートへのデータ流し込みをエクセルVBAで行う方法」でのデータ処理を行う前に、
この発信元情報の表示を「返品依頼テンプレート」に対して行っておく必要があります。
表示のVBAコード作成
新しくモジュールを挿入してください。
(挿入の方法はこちら↓で確認できます。)
「エクセルVBA 始めての起動。VBEの立ち上げ、保存と終了」
発信元情報の入力欄の作成
最初に「スタート設定」シートのセルサイズを決めていきます。
全体として
セル高さ・・・
シート全体をつかんで、「高さ:37ピクセル」にセットしてください。
セル幅・・・
シート全体をつかんで、「幅:72ピクセル」にセットしてください。
I列の幅を267ピクセルに、K列の幅を334ピクセルにします。
●「発信元情報」はH2からL7
●「番線印」はH12からL15
のセル範囲で作成します。
セル範囲の外枠を実線で囲みます。
「番線印」についてはセルのコピぺで番線印画像を移動します。
ですので「番線印」を置くセルには罫線が付かないようにします。(隣り合う4辺のセルを緩衝セルとします。)
「入力欄」の完成はこのようになります。
VBAコードを組み立てる
VBAコードを組んでいきます。
Subプロシージャー名を「発信元情報」とします。
Sub 発信先情報()
End Sub
変数はこのように設定します。
「部署名/担当者名」・・・・・Hb
「住所」・・・・・・・・・・・Hc
「電話番号」・・・・・・・・・Hd
「FAX番号」・・・・・・・・He
「返品依頼テンプレートシート」に表示するときには、
前に入力した情報に上書きされる状態になります。
Sub 発信元情報()
Dim Ha As Variant
Dim Hb As Variant
Dim Hc As Variant
Dim Hd As Variant
Dim He As Variant
Worksheets("スタート設定").Select
Ha = Range("K3")
Hb = Range("K4")
Hc = Range("K5")
Hd = Range("K6")
He = Range("K7")
Worksheets("返品依頼テンプレート").Select
Range("C31") = Ha
Range("C32") = Hb
Range("C33") = Hc
Range("C34") = Hd
Range("C35") = He
End Sub
番線印については、「番線印」と「番線印情報」を選択できるようにします。
チェックボックスを挿入して行います。
チェックボックスは「開発タブ」の「挿入」より「ActiveXコントロール」のチェックボックスを選択します。
今回のチェックボックスは、1つのみ選択・2つ選択・選択無しの3パターンがあります。
「1つ選択」・・・チェックした方が表示されます。
「2つ選択」・・・「番線印」が表示されます。
「選択無し」・・・何も表示されません。
VBAコードを組みます。
Subプロシージャー名を「番線印転記」とします。
Sub 番線印転記()
End Sub
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
線引き直し
End Sub
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作成のまとめ
これで返品了解書作成部分までは完了しました。
次回は、作成後 次に利用するときのための「データをクリアー」する作業について行っていきます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
次の記事はこちら↓からご覧いただけます。
利用後情報をクリアするエクセルVBA。返品了解の依頼書の作り方
エクセルVBAを使って、業務効率UPを図る上で始めのうちに知っておきたい内容を纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。