エクセルで適格請求書3点伝票を作成します。
今回は使用する8枚のワークシートの開始設定をVBAコード化していきます。
シートをクリアして見出し項目を配置します。
こんにちは、じゅんぱ店長(@junpa33)です。
インボイス制度に利用できる適格請求書をエクセルVBAで作成できるようにします。
インボイス見積納品請求3点伝票は2つの種類を紹介していますが、これから数回に渡って、
「インボイス見積納品請求伝票日付版」を、VBAで作成する方法を解説していきます。
今回は白紙のエクセルブックで、帳票を作成するために利用するワークシートの必要な開始設定の説明です。
インボイス見積納品請求3点伝票作成の記事編成
- インボイス見積納品請求3点伝票作成ソフトの使い方とダウンロード
- インボイス見積納品請求伝票日付版作成ソフトの使い方とダウンロード
コンテンツ
ワークシートを開始設定する
まず最初に、売上データを記述する各ワークシートの見出し項目の表示設定を行うためのVBAを設定します。
ここではModule5に記述しています。
使用するワークシート数は8枚
「インボイス見積納品請求伝票日付版」をエクセルVBAで作成するに当たって、使用するワークシートは8枚です。
- 「作業シート」
- 「請求書」
- 「納品書」
- 「見積書」
- 「宛名の登録」
- 「電子印鑑の登録」
- 「外税計算」
- 「データストック」
を準備設定していきます。
ワークシートの開始設定で行うこと
白紙のシート状態から、そのシートで必要な売上データ項目の見出し行を設置します。
また、一部の項目はコマンドボタンになっていて、クリックで次の必要な操作を行えるようにしておきます。
前に使用したデータは次に使用するときにはに必要がないので、準備の設定ではワークシートをデフォルトの状態に戻すためのVBAコードをまず記述しておきます。
シートクリアーを目的のメソッド別にVBA最速理解 With ActiveSheet
.Cells.ClearFormats
.Cells.ClearContents
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
.DrawingObjects.Delete
End With
このコードに続けて、ワークシートそれぞれの開始設定のためのコードをつないでいきます。
各ワークシートの開始設定のコード
「作業シート」を準備設定するVBAは以下の様になります。
With~End Withの使い方。VBAコードを簡潔に記述するSub 作業シート再構成()
'前回使用で設置したチェックボックスとコマンドボタンを削除
With ThisWorkbook.Worksheets("作業シート")
.CheckBoxes.Delete
.Buttons.Delete
.Range("B2:C" & Rows.Count).Clear
.Rows(1).Font.Bold = True
'A1セルにコマンドボタン設置
With .Range("A1")
.RowHeight = 38.25
.ColumnWidth = 4.75
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "通番設置"
.OnAction = "通番再配置"
With .Characters
.Text = "通番"
.Font.Size = 10
End With
End With
End With
'B1セルにコマンドボタン設置
With Range("B1")
.ColumnWidth = 4.63
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "消費税非課税設定ボタン"
.OnAction = "チェックボックス非配置"
With .Characters
.Text = "非課税CHECKBOX"
.Font.Size = 8
End With
End With
End With
'C1セルにコマンドボタン設置
With Range("C1")
.ColumnWidth = 4.63
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "消費税8%設定ボタン"
.OnAction = "チェックボックス8配置"
With .Characters
.Text = "8%CHECKBOX"
.Font.Size = 8
End With
End With
End With
'各項目タイトルを表示
With .Range("D1")
.Value = "日付"
.ColumnWidth = 8.38
End With
With .Range("E1")
.Value = "品名"
.ColumnWidth = 69.13
End With
With .Range("F1")
.Value = "数量"
.ColumnWidth = 8.38
End With
With .Range("G1")
.Value = "単位"
.ColumnWidth = 8.38
End With
With .Range("H1")
.Value = "単価"
.ColumnWidth = 8.38
End With
With .Range("I1")
.Value = "税別金額"
.ColumnWidth = 8.38
End With
End With
End Sub
前回使用したチェックボックス、コマンドボタンなどのコントロールは、このコードでクリアされます。
チェックボックスは、Boolean型で指定したセルに値を排出します。
なので、その指定した位置にあるセルも値をクリアしておきましょう。
データの通番を振るためのコマンドボタンを設置します。
クリック時の動作は、「 OnAction = プロシージャー名 」で指定します。
消費税が非課税の商品をマークするチェックボックスを設置する用のコマンドボタンを作ります。
消費税が8%課税の商品をマークするチェックボックスを設置する用のコマンドボタンを作ります。
見出し行にその他の項目表示を行います。
3伝票を表示させるこれらのワークシートは、データや書式設定や画像すべてをクリアしたデフォルト状態に戻しておきます。
先述のシートクリアのVBAコードになります。
「宛名の登録」シートについては見出し行の項目の表示のみになります。
Sub 宛名の登録再構成()
With ThisWorkbook.Worksheets("宛名の登録")
With .Range("A1")
.Value = "NO"
.ColumnWidth = 8.38
.RowHeight = 24
End With
With .Range("B1")
.Value = "顧客番号"
.ColumnWidth = 8.38
End With
With .Range("C1")
.Value = "宛名"
.ColumnWidth = 73.13
End With
With .Range("D1")
.Value = "郵便番号"
.ColumnWidth = 8.38
End With
With .Range("E1")
.Value = "住所"
.ColumnWidth = 30.63
End With
End With
End Sub
「電子印鑑の登録」シートについては、見出し項目表示と作表(データ記入欄)を作ります。
「罫線」のVBAを最速理解 Bordersの/位置/線種/太さ/色/と<外枠だけの罫線>の設置Sub 電子印鑑の登録再構成()
With ThisWorkbook.Worksheets("電子印鑑の登録")
.Rows("1:12").RowHeight = 24
.Columns(1).ColumnWidth = 8.38
.Columns(2).ColumnWidth = 44.38
.Range("A1:A13, B1").Interior.ColorIndex = 15
With Range("A1:B13")
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlHairline
.BorderAround LineStyle:=xlContinuous, _
Weight:=xlThin
End With
With Range("A12:B12").Borders(xlEdgeBottom)
.LineStyle = xlNone
End With
With .Range("A1")
.Value = "項目"
End With
With .Range("B1")
.Value = "内容"
End With
With .Range("A2")
.Value = "自社名"
End With
With .Range("A3")
.Value = "代表者名"
End With
With .Range("A5")
.Value = "郵便番号"
End With
With .Range("A6")
.Value = "住所"
End With
With .Range("A7")
.Value = "電話番号"
End With
With .Range("A8")
.Value = "FAX番号"
End With
With .Range("A9")
.Value = "メール"
End With
With .Range("A10")
.Value = "登録番号"
End With
With .Range("A11")
.Value = "振込銀行"
End With
With .Range("A13")
.Value = "社印"
.RowHeight = 70.54
End With
End With
End Sub
「外税計算」シートについては、作業シートと同様にコマンドボタンを見出し行に設置します。
Sub 外税計算再構成()
'前回使用で設置したチェックボックスとコマンドボタンを削除
With ThisWorkbook.Worksheets("外税計算")
.CheckBoxes.Delete
.Buttons.Delete
.Range("B2:C" & Rows.Count).Clear
.Rows(1).Font.Bold = True
'A1セルにコマンドボタン設置
With .Range("A1")
.RowHeight = 38.25
.ColumnWidth = 4.75
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "通番設置"
.OnAction = "通番再配置"
With .Characters
.Text = "通番"
.Font.Size = 10
End With
End With
End With
'B1セルにコマンドボタン設置
With Range("B1")
.ColumnWidth = 4.63
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "消費税内税ボタン"
.OnAction = "チェックボックス内税配置"
With .Characters
.Text = "内税CHECK"
.Font.Size = 8
End With
End With
End With
'C1セルにコマンドボタン設置
With Range("C1")
.ColumnWidth = 4.63
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "内税8%チェック"
.OnAction = "チェック8内税配置"
With .Characters
.Text = "8%内税CHECK"
.Font.Size = 8
End With
End With
End With
'K1セルにコマンドボタン設置
With Range("K1")
.ColumnWidth = 8.38
With ActiveSheet.Buttons.Add(.Left, .Top, _
.Width, .Height)
.Name = "税別化し転送"
.OnAction = "税別化転送"
With .Characters
.Text = "税別化転送"
.Font.Size = 8
End With
End With
End With
'各項目タイトルを表示
With .Range("D1")
.Value = "日付"
.ColumnWidth = 8.38
End With
With .Range("E1")
.Value = "品名"
.ColumnWidth = 69.13
End With
With .Range("F1")
.Value = "数量"
.ColumnWidth = 8.38
End With
With .Range("G1")
.Value = "単位"
.ColumnWidth = 8.38
End With
With .Range("H1")
.Value = "単価"
.ColumnWidth = 8.38
End With
With .Range("I1")
.Value = "税別金額"
.ColumnWidth = 8.38
End With
With .Range("J1")
.Value = "備考"
.ColumnWidth = 8.38
End With
End With
End Sub
前回使用したチェックボックス、コマンドボタンなどのコントロールは、このコードでクリアされます。
チェックボックスは、Boolean型で指定したセルに値を排出します。
なので、その指定した位置にあるセルも値をクリアしておきましょう。
データの通番を振るためのコマンドボタンを設置します。
クリック時の動作は、「 OnAction = プロシージャー名 」で指定します。
消費税が内税計算されている商品をマークするチェックボックスを設置する用のコマンドボタンを作ります。
消費税が8%で内税計算されている商品をマークするチェックボックスを設置する用のコマンドボタンを作ります。
『チェックボックスにチェックが入った商品の内税価格を本体(外税)価格にリバースし、その処理後のデータ全体を「作業シート」に転記する』ことを実行するためのコマンドボタンを見出し行に設置します。
見出し行にその他の項目表示を行います。
「データストック」シートは単にメモのためのシートです。例えば、必要な売上データの一時退避地に使えるシートです。
なので、シート準備のためのVBAコードは、ワークシートをデフォルトの白紙に戻すだけのものになります。
それぞれのワークシート開始設定のコードを一纏めにする
それぞれのワークシートの処理コードを1回ずつ選択して実行していては大変ですので、全ての処理が1クリックで実行できるように「ひとまとめにした処理コード」を作成します。
ただし、常にすべてのワークシートを一度にデフォルト化したい訳ではないので、少しVBAコードに工夫を加えます。
Sub Clearする()
Dim Answ As Long
ThisWorkbook.Activate
'実行ボタンがクリックされた時の再確認メッセージ
Answ = MsgBox("実行するとシートが初期化されます。" _
& vbCrLf & "実行しますか?" _
, vbYesNo + vbQuestion, _
"インボイス見積納品請求3点日付版作成")
If Answ = vbYes Then
'全シート共通処理コード
With ActiveSheet
.Cells.ClearFormats
.Cells.ClearContents
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
.DrawingObjects.Delete
End With
'シート別の処理方法指定
If ActiveSheet.Name = "作業シート" Then
Call Module5.作業シート再構成
ElseIf ActiveSheet.Name = "宛名の登録" Then
Call Module5.宛名の登録再構成
ElseIf ActiveSheet.Name = "電子印鑑の登録" Then
Call Module5.電子印鑑の登録再構成
ElseIf ActiveSheet.Name = "外税計算" Then
Call Module5.外税計算再構成
End If
Else
Exit Sub
End If
ActiveSheet.Range("A1").Select
End Sub
ユーザーフォームのコマンドボタンで操作、実行できるようにしますが、間違いクリックを防止するためにメッセージを表示して再確認を行います。
ワークシートをデフォルトの白紙に戻すVBAコードです。
If条件文を使ってワークシート別に処理を分岐させています。
ワークシートの準備設定のまとめ
このワークシートの準備設定を行うことで、インボイス見積納品請求伝票日付版を操作するためのスタンバイとなります。
一度使用したそれぞれのシートを、次回使用時にデフォルト状態にリセットすることが出来るようになりました。
次回は、コントロールパネルとなるユーザーフォームを作成していきます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。