エクセルで作成しているインボイス領収書に、発行者名や印鑑を設置します。
登録用のシートを「印影シート」として作成し、VBAでテンプレートにコピペします。
こんにちは、じゅんぱ店長(@junpa33)です。
今回は、インボイス領収書に、発行者名を設置、刻印と「適格請求書発行事業者」の「登録番号」を記入できるようにしていきます。
インボイスの適格事業者の登録番号はここで管理します。
領収書に記述するデータは、この「印影」シートに保管スペースを作成します。
領収書テンプレートへのデータ転記については、ワークシートのイベントプロシージャーで行います。
インボイス領収書作成の記事編成
- インボイス領収書作成ソフトの使い方とダウンロード
コンテンツ
印影シートの作成
印影シートもインボイス領収書テンプレートと同様に、VBAコードで作成します。
領収書に印字される発行者名や印影、登録番号は、それぞれ手入力することになります。
また、登録したデータ削除については、ワンクリックでオールクリアできるようにします。
新規作成やリセットする場合は、
「印影オールクリア」→「印影テンプレート作成」→「印字データ手入力」の流れとなります。
これから記述するVBAコードは「Module3」に記述していきます。
印影シート存在の確認
「印影」シートが存在するかどうかをチェックするプロシージャーを作成しておきます。
Option Explicit
Function Flagb() As Boolean
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "印影" Then
Flagb = True
Exit For
Else
Flagb = False
End If
Next
End Function
発行者データの保存欄作成
順にセルサイズ、結合、罫線と作成作業を進めます。
このコードを起動するために、コマンドボタンをユーザーフォーム上に設置します。
Sub 印影Temp()
If Flagb = False Then
MsgBox "印影シートが準備されていません。" & vbCrLf & _
"先にシートを準備してください。", vbExclamation, _
"インボイス領収書作成"
Exit Sub
End If
Dim i As Long
With Worksheets("印影")
.Select
'Hight
'18ピクセル
.Range("A13,A14,A37,A38").RowHeight = 13.5
'Width
'24ピクセル
.Columns("A:AA").ColumnWidth = 2.38
'セル結合
.Range("J7:V11").Merge
.Range("J16:V20").Merge
.Range("J22:L22,M22:V22").Merge
'罫線・網掛け
.Range("G4:Y23").BorderAround LineStyle:= _
xlContinuous, Weight:=xlThin
.Range("G13:Y13").Interior.Pattern = xlPatternGray8
'項目設置
.Range("J6") = "発行元名"
.Range("J15") = "印影置き場"
.Range("J22") = "登録番号"
End With
End Sub
発行者名のクリア
名称変更など、発行者のデータリセットがある場合にはワンクリックでデータをクリアできるようにしておきます。
また、このコードを起動するために、コマンドボタンをユーザーフォーム上に設置します。
Sub 印影オールクリア()
If Flagb = False Then
MsgBox "印影シートがありません。" & vbCrLf & _
"印影をクリアすることは不可能です。", vbExclamation, _
"インボイス領収書作成"
Exit Sub
End If
With Worksheets("印影")
.Select
.DrawingObjects.Delete
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
.Cells.Clear
End With
End Sub
インボイス領収書への発行者データ刻印
領収書テンプレートに発行者データを張り付ける方法として、「インボイス領収書」シートがアクティブ(選択)された時にコピペが実行されるようにします。
けれども、シートが選択されるたびにコピペが実行されると、社印などの画像データは回数分積み重なってしまいます。
なので、領収書シートがアクティブになる時に、一旦、発行者データを全クリアして、画像の重なりを起こさないようにVBAコードを組み立てておきます。
「インボイス領収書」シートのシートモジュールへの記述は次のようになります。
Private Sub Worksheet_Activate()
If Flagb = False Then
Exit Sub
End If
With Worksheets("インボイス領収書")
.DrawingObjects.Delete
.Range("K18:W22").ClearContents
.Range("K42:W46").ClearContents
Worksheets("印影").Range("J16:V20").Copy .Range("K18:W22")
Worksheets("印影").Range("J7:V11").Copy .Range("K18:W22")
Worksheets("印影").Range("J16:V20").Copy .Range("K42:W46")
Worksheets("印影").Range("J7:V11").Copy .Range("K42:W46")
Worksheets("印影").Range("M22:V22").Copy .Range("N23,N47")
End With
End Sub
まとめ
今回の発行者データの登録で、インボイス領収書の必要入力事項はほぼ揃いました。
発行日付については、ユーザーフォームからの入力項目となります。
次回はユーザーフォームを作成していきます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。