エクセルVBAで発行者名を刻印 インボイス領収書3

invorecipineieyecatch

エクセルで作成しているインボイス領収書に、発行者名や印鑑を設置します。
登録用のシートを「印影シート」として作成し、VBAでテンプレートにコピペします。

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

今回は、インボイス領収書に、発行者名を設置、刻印と「適格請求書発行事業者」の「登録番号」を記入できるようにしていきます。

インボイスの適格事業者の登録番号はここで管理します。

領収書に記述するデータは、この「印影」シートに保管スペースを作成します。

領収書テンプレートへのデータ転記については、ワークシートのイベントプロシージャーで行います。

印影シートの作成

invorecipineip002

印影シートもインボイス領収書テンプレートと同様に、VBAコードで作成します。

領収書に印字される発行者名や印影、登録番号は、それぞれ手入力することになります。

また、登録したデータ削除については、ワンクリックでオールクリアできるようにします。

新規作成やリセットする場合は、

「印影オールクリア」→「印影テンプレート作成」→「印字データ手入力」の流れとなります。

invorecipineip001

これから記述するVBAコードは「Module3」に記述していきます。

印影シート存在の確認

「印影」シートが存在するかどうかをチェックするプロシージャーを作成しておきます。

VBA
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

発行者データの保存欄作成

順にセルサイズ、結合、罫線と作成作業を進めます。

このコードを起動するために、コマンドボタンをユーザーフォーム上に設置します。

VBA
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

発行者名のクリア

名称変更など、発行者のデータリセットがある場合にはワンクリックでデータをクリアできるようにしておきます。

また、このコードを起動するために、コマンドボタンをユーザーフォーム上に設置します。

VBA
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

インボイス領収書への発行者データ刻印

invorecipineip003

領収書テンプレートに発行者データを張り付ける方法として、「インボイス領収書」シートがアクティブ(選択)された時にコピペが実行されるようにします。

けれども、シートが選択されるたびにコピペが実行されると、社印などの画像データは回数分積み重なってしまいます。

なので、領収書シートがアクティブになる時に、一旦、発行者データを全クリアして、画像の重なりを起こさないようにVBAコードを組み立てておきます。

「インボイス領収書」シートのシートモジュールへの記述は次のようになります。

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

まとめ

invorecipineip004

今回の発行者データの登録で、インボイス領収書の必要入力事項はほぼ揃いました。

発行日付については、ユーザーフォームからの入力項目となります。

次回はユーザーフォームを作成していきます。

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

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

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

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

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

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

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

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

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min