クリア
クリアボタンの全体像
クリアボタンはセルの値をクリア(change)するため、Application.EnableEventでイベントを無効にしたのちに、入力欄、申請日欄、伝票番号欄、入力候補欄をクリアします。
Sub Clr_01() ‘入力欄クリア
Application.EnableEvents = False
Range(“E6:L6,I9,K9”).Select
Selection.ClearContents
ActiveSheet.Range(“A6:C100”).Select
Selection.ClearContents
Range(“F4”).Select
Application.EnableEvents = True
End Sub
クリアボタンの詳細
Application.EnableEvents = Falseで他のイベント起動を無効化し、Application.EnableEvents = Trueで復活します。
Range(“E6:L6,I9,K9”).Select
Selection.ClearContents
選択したセル範囲の入力内容をクリアしています。
ActiveSheet.Range(“A6:C100”).Select
Selection.ClearContents
選択したセル範囲の入力内容をクリアしています。
Range(“F4”).Select
連続して入力を行う場合、F6セル以外を選択して。日付入力時にF6セルを選択することでWorksheet_SelectionChangeが起動します。
発行
発行ボタンの全体像
はじめにワークシート「管理番号」の情報をもとに伝票番号を作成します。
発行ボタンはワークシート「経費申請」のF8セルからK57セルまでを経費申請書として使用します。
次に印刷プレヴュー画面を開きます。
Sub PrintS() ‘帳票管理番号の作成と帳票印刷
Set DTH(2) = Worksheets(“管理番号”).Range(“A1”)
str(1) = DTH(2).Cells(2, 3) ‘前回発行時の年月
str(2) = DTH(2).Cells(2, 4) + 1 ‘前回発行時のカウント
str(3) = Mid(Date, 1, 4) & Mid(Date, 6, 2) ‘今日の年月
If str(1) = str(3) Then ‘前回年月と変わらない場合
str(5) = DTH(2).Cells(2, 2) + str(1) + “-” + str(2)
DTH(2).Cells(2, 4) = str(2)
Else ‘前回年月と違う場合に連番に1を代入
str(5) = DTH(2).Cells(2, 2) + str(3) + “-” + “1”
DTH(2).Cells(2, 4) = 1
DTH(2).Cells(2, 3) = str(3)
End If
Cells(9, 11).Value = str(5)
Cells(9, 9).Value = Mid(Date, 1, 4) & Mid(Date, 6, 2) & Mid(Date, 9, 2)
Worksheets(“経費申請”).PrintPreview EnableChanges:=False
Cells(9, 5).Value = “発行済”
End Sub
発行ボタンの詳細
伝票番号の作成
Set DTH(2) = Worksheets(“管理番号”).Range(“A1”)
str(1) = DTH(2).Cells(2, 3) ‘前回発行時の年月
str(2) = DTH(2).Cells(2, 4) + 1 ‘前回発行時のカウント
str(3) = Mid(Date, 1, 4) & Mid(Date, 6, 2) ‘今日の年月
str(0)にはB2セルの値、管理番号「伝票種」頭文字”DF”(任意)を取得します。
str(1)にはC2セルの値(前回発行時の年月)を取得します。
str(2)にはD2セルの値(前回発行時のカウント)に”1”を足した値を取得します。
str(3)には今日の日付から西暦4桁と月2桁の文字列 (“yyyymm”形式)を作成します。
If str(1) = str(3) Then ‘前回年月と変わらない場合
str(5) = str(0)+ str(3) + “-” + str(2)
DTH(2).Cells(2, 4) = str(2)
Else ‘前回年月と違う場合に連番に1を代入
str(5) = str(0) + str(3) + “-” + “1”
DTH(2).Cells(2, 4) = 1
DTH(2).Cells(2, 3) = str(3)
End If
伝票番号は頭文字 + 当月年月 + 前回カウントに”1”を足した値
>b>D2セルには今回のカウント(連番)を代入します。
str(1)と str(3)を比較して、違うとき
伝票番号は頭文字 + 当月年月 + ”1”
D2セルには1を代入します。
C2セルには当月年月(“yyyymm”形式)を代入します。
Cells(9, 11).Value = str(5)
Cells(9, 9).Value = Mid(Date, 1, 4) & Mid(Date, 6, 2) & Mid(Date, 9, 2)
作成された伝票番号は「経費申請書」ごとに発番、発行され、最終的に「経費実績」に記録されます。
I9セルには今日の日付を申請日として代入します。
印刷プレヴュー
ーーーーーーーーーーーーーーーー<中略>ーーーーーーーーーーーーーーーーーーーー
Worksheets(“経費申請”).PrintPreview EnableChanges:=False
Cells(9, 5).Value = “発行済”
Worksheets(“経費申請”).PrintPreviewだけでも印刷プレヴュー画面に遷移します。
EnableChanges:=Falseは、プレビュー画面で、印刷設定が使用不可となります。
最後にE8セルの「進捗」を”発行済“として完了です。
「進捗」を”発行済“とすることで新規の作成ができなくなります。
VBA 経費管理6(クリア、帳票)はここまでです。次回は「清算完了」ボタンを作成していきます。