ゆうちょ振替用紙への印字方法について考えます。今回ははめ込み印字のためのテンプレートを作成します。
小さな用紙ですので画面表示の拡大率を上げるなどの工夫で行います。
こんにちは、じゅんぱ店長(@junpa33)です。
今回より「ゆうちょの振替」用の「振替用紙(払込取扱票)」の作成の方法を説明していきます。
まずは、テンプレートづくりからです。
「振替用紙(払込取扱票)」はもともとのサイズが結構小さいので
テンプレートづくりは細かい作業になりますが、
画面表示を拡大しながらの作業を行っていきましょう。
請求時に添付したい「振替用紙(払込取扱票)」の作成についての概要は、
一つ前のこの記事↓で確認できます。

コンテンツ
ゆうちょ振替用紙の独自テンプレート作成方針

今回の作るテンプレートは、
振替用紙(払込取扱票)をそのままコピーしたものを、エクセルシート上に再現するというものではありません。
テンプレート作成の目的は、
既製の振替用紙(払込取扱票)に口座番号や、振替先、振替元、住所などを印字することです。
すでにある振替用紙(払込取扱票)を印刷用紙として使いますので、マス目や罫線印字は必要ありません。
なので、
いつものように作るテンプレートのような、文字や罫線を使った表や伝票とは違ったものになります。
数字や文字を打ち込むセルを実際の振替用紙の記入位置に合わせることが目的です。
テンプレートの印字については、前の記事でも説明した通り
普通にそのまま作成して印刷したのでは、どうしても印刷できない部分が出来てしまいます。
(テンプレートを作成して印刷しようとした場合解決をしないといけない問題)
そこで、プリンターの印刷可能エリアによる印字範囲制限をクリアーするために、
この解決策として、エクセルシート上に「テンプレートを上下逆」に作成することにします。
印字範囲的には、この上下逆印刷案でOKと言うことが分かりましたが、
エクセルの「セルにタイプする印字内容」が正立した文字だと、全く意味を成しません。
上下逆印刷案では「セルにタイプする印字内容」も全て倒立した文字であることが必要です。
それを踏まえたうえで、今回は上下逆印刷のための独自テンプレートを作成していきます。
独自テンプレートを作っていきます

これから作成する「ゆうちょ払込取扱票印字」ソフトは、テンプレート内のそれぞれのセルに、直接取引金額と内容を表示して印刷するというものです。
つまり、テンプレートについては何度も使用されることになります。
そこで、
ソフト使用中での、テンプレートの破損や誤削除を防止するために、テンプレートを使わない時は、「シート保護」をかけてロックしておきます。
「ゆうちょ払込取扱票印字」ソフト使用時には、このテンプレートを別のシート上にコピーして使用するようにします。
1.エクセルBOOKを作ります
エクセルを起動し、「新規」から「空白のブック」をクリックします。
作成された新しいBOOKを、名前を付けて保存で、「マクロ有効ブック*.xlsm」で「振替用紙印字.xlsm」として保存します。
2.テンプレートを作成します
保存した「振替用紙印字.xlsm」を開き「Sheet3」にテンプレートを作成していきます。
用紙のサイズが小さいので1マスを5ピクセルとします。

拡大表示100%では作業できませんので、400%で行います。
薄い点線の罫線でセルを見やすくしておきます。

これを一旦、プリントアウトします。
この時、印刷設定で、余白を上下左右「0」にしてください。
実際の既製の振替用紙を、プリントした方眼紙に当てて振替用紙の「書き込みマス」の方眼紙位置をチェックしていきます。
ちょっとしたコツとしては、振替用紙の上の方(方眼紙で言うと下の方)から「書き込みマス」のサイズ合わせをしていくことです。
このような方法で、振込用紙と方眼紙を合わせていって、下の画像のように作ります。上下を逆に作っています。
赤丸のセルは、隣のセルとの結合セルになります。

各セルのサイズ設定はこのようになります。
- 1行目 45ピクセル
- 2行目 15ピクセル
- 3行目 50ピクセル
- 4行目 19ピクセル
- 5行目 14ピクセル
- 6行目 20ピクセル
- 7行目 63ピクセル
- 8行目 34ピクセル
- 9行目 14ピクセル
- 10行目 48ピクセル
- 11行目 43ピクセル
- 12行目 34ピクセル
- 13行目 7ピクセル
- 14行目 6ピクセル
- 15行目 24ピクセル
- A列 5ピクセル
- B列 21ピクセル
- C列 11ピクセル
- D列 11ピクセル
- E列 11ピクセル
- F列 11ピクセル
- G列 21ピクセル
- H列 21ピクセル
- I列 21ピクセル
- J列 21ピクセル
- K列 20ピクセル
- L列 20ピクセル
- M列 43ピクセル
- N列 21ピクセル
- O列 21ピクセル
- P列 21ピクセル
- Q列 21ピクセル
- R列 21ピクセル
- S列 21ピクセル
- T列 21ピクセル
- U列 21ピクセル
- V列 20ピクセル
- W列 21ピクセル
- X列 21ピクセル
- Y列 21ピクセル
- Z列 21ピクセル
- AA列 21ピクセル
- AB列 21ピクセル
- AC列 21ピクセル
- AD列 10ピクセル
- AE列 20ピクセル
- AF列 10ピクセル
- AG列 21ピクセル
- AH列 21ピクセル
- AI列 21ピクセル
- AJ列 21ピクセル
- AK列 16ピクセル
一つずつセットしていくのは大変ですので、
この下のVBAをモジュールに張り付けて実行すれば、作業が簡単になります。
このコードはこれ一回の使い道ですので、利用後は用済みになります。適時消去していただければOKです。
Sub tmpセル設定()
Dim i As Long
Dim R(14) As Long
Dim C(36) As Long
Worksheets("Sheet3").Select
R(0) = 45
R(1) = 15
R(2) = 50
R(3) = 19
R(4) = 14
R(5) = 20
R(6) = 63
R(7) = 34
R(8) = 14
R(9) = 48
R(10) = 43
R(11) = 34
R(12) = 7
R(13) = 6
R(14) = 24
C(0) = 5
C(1) = 21
C(2) = 11
C(3) = 11
C(4) = 11
C(5) = 11
C(6) = 21
C(7) = 21
C(8) = 21
C(9) = 21
C(10) = 20
C(11) = 20
C(12) = 43
C(13) = 21
C(14) = 21
C(15) = 21
C(16) = 21
C(17) = 21
C(18) = 21
C(29) = 21
C(20) = 21
C(21) = 20
C(22) = 21
C(23) = 21
C(24) = 21
C(25) = 21
C(26) = 21
C(27) = 21
C(28) = 21
C(29) = 10
C(30) = 20
C(31) = 10
C(32) = 21
C(33) = 21
C(34) = 21
C(35) = 21
C(36) = 16
For i = 0 To 36
If i < 15 Then
Rows(i + 1).RowHeight = R(i) * 0.75
Columns(i + 1).ColumnWidth = C(i) * 10 / 85
Else
Columns(i + 1).ColumnWidth = C(i) * 10 / 85
End If
Next i
End Sub
作成が出来ましたら、このテンプレートのシート名を「印刷用tmp」として保存してください。
細かいテンプレートですので、間違って触って変更してしまわないようシートの保護をしておきましょう。
保護の方法は、
「印刷用tmp」シートを開いた状態で、「ファイル」タブから「情報」の「ブックの保護」クリックで
「現在のシートの保護」を表示します。
パスワードは、設定しないでください。
(どうしても設定したい場合は、後で作業するVBAの中で設定解除のVBA記述を行う必要があります。)
これでテンプレートづくりは完了です。
あとは、最後のテスト印刷の時に、微調整する必要があればその時いじる程度かと思います。
3.テンプレート複製VBAコードの組み立て
次は、作成したテンプレートを複製するVBAコードを作成します。
いつものように、新しくModuleを挿入します。
挿入の方法はこちら↓で確認できます。
「VBE(ビジュアルベーシックエディター)を起動する」

複製するテンプレートのシート名を「印刷用テンプレート」とします。
「印刷用テンプレート」シートが既に存在すれば、一旦それを削除します。
そして新たに複製を末尾に作成します。
新しく挿入したModule1に以下のVBAコードを記述します。
シート保護をしているテンプレートを、複製時に一旦保護解除して、
複製完了後に再度シート保護を有効にします。(パスワードを設定しないで保護しています。)
Option Explicit
Sub テンプレシート()
Dim Ws As Worksheet
Dim Flag As Boolean
For Each Ws In Worksheets
If Ws.Name = "印刷用テンプレート" Then
Flag = True
Exit For
End If
Next Ws
If Flag = True Then
Application.DisplayAlerts = False
Worksheets("印刷用テンプレート").Delete
Application.DisplayAlerts = True
End If
Worksheets("印刷用tmp").Select
ActiveSheet.Unprotect
Worksheets("印刷用tmp").Copy after:= _
Worksheets(Worksheets.Count)
ActiveSheet.Name = "印刷用テンプレート"
Worksheets("印刷用tmp").Select
ActiveSheet.Protect
End Sub




独自テンプレート作成のまとめ

このテンプレートを上手く作るかどうかが、既製の振替用紙(払込取扱票)に印字できるかどうかの分かれ目となります。
実際に印字ソフトを動かすときは、このテンプレートを複製して利用しますので、
このシートに対して何度も操作するということはありません。
このテンプレートを安全に保管することが重要になります。
次回はテンプレートに文字・数字を印刷するための「入力シート」と請求先の情報を登録する「発行データ」シートの記入欄を作成していきます。
エクセルVBAを独習を始めた人へ

この記事で紹介したテンプレートは、作成についてはかなり細かく面倒な部類です。
エクセルVBAで使うテンプレートは、
- VBAコードでテンプレートを作成する。(テンプレ自体を壊してしまっても何回も再生できる)
- 今回のように、手作業でピクセルを計って作成する。(壊さないように保護が必要)
の作成方法があります。
入門的には、面倒でも②の方法が分かり易いかと思いました。
焦らず、徐々に複雑なものにチャレンジしていきましょう。



電子書籍版「大村式【動画&テキスト】Excelマクロ&VBA最高のはじめ方」をamazonで見てみる
(著者)大村あつし(出版社)技術評論社
(税込価格)1,628円(本体1,480円+税)
学習書の新しい形です。
YouTubeと完全リンクした参考書です。入門と基礎を重点的に22本の動画で解説をしています。
ちょっとした空き時間を利用してでもスマホがあれば学習ができます。
動画は優しい語り口調で、視聴者にある意味安心感を与えてくれます。動画は5分から20分間ぐらいで22本の構成です。
文章解説と動画解説の関係性は、動画解説が主で、文章解説がサポートいう使い方もできます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

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