VBA 経費管理5(登録1)に続いて「登録」ボタンに関する残りのモジュールをPaste2、Calc1について解説していきます。
Paste2の全体像
Paste1は新規登録、Paste2は修正登録になります。新規登録はID番号を取得しますが、修正では呼出したID番号で内容を上書きします。
1. 修正したいID番号をE6セルに入力して、過去に入力した内容を入力欄に呼び出す。
2. 入力内容のうち修正したい項目を上書きます。
3. 「修正」ボタンを押して修正内容を登録します。
1. はVBA経費管理2 (Worksheet_Change)のID No.入力してデータの呼出を参照してください。
2. は手入力修正です。
3. は以下のモジュールを参照してください。
Sub Paste2() ‘修正
‘支出行
j = Cells(6, 5)
For h = 13 To 37
If Cells(h, 5) = j Then
For k = 6 To 11
Cells(h, k) = Cells(6, k)
Next
GoTo jump1
End If
Next
‘収入行
For h = 41 To 45
If Cells(h, 5) = j Then
For k = 6 To 11
Cells(h, k) = Cells(6, k)
Next
GoTo jump1
End If
Next
jump1:
Calc1
End Sub
支出ID番号の探索
j = Cells(6, 5)
For h = 13 To 37
If Cells(h, 5) = j Then
<中略>
End If
Next
支出入力データの登録
For k = 6 To 11
Cells(h, k) = Cells(6, k)
Next
GoTo jump1
その後jump1まで処理を飛ばします。
支出に登録された行の中にID番号が一致するものがない場合に、For h = 13 To 37・・・Nextを抜けます。
収入ID番号の探索
For h = 41 To 45
If Cells(h, 5) = j Then
<中略>
End If
Next
<中略>の中身は支出と同じです。
Calc1
Calc1では金額を集計します。ワークシート「経費申請」で支出行金額を合計してJ48セルに代入、収入行金額を合計してJ49セルに代入、その差し引き金額をJ50セルに代入します。
続いて、ワークシート「経費実績」に移動して最終行の取得、15列目、前回までの「残高」金額を取得、今回の差し引き金額を足して今回の手元金額を算出します。
Sub Calc1()
‘支出行集計
f = 0
For h = 13 To 37
f = f + Cells(h, 10)
Next
Cells(48, 10) = f
‘収入行集計
f = 0
For h = 41 To 45
f = f + Cells(h, 10)
Next
Cells(49, 10) = f
‘差引金額計算
Cells(50, 10) = Cells(49, 10) – Cells(48, 10)
‘実績最終行の取得
Set DTH(1) = Worksheets(“経費実績”).Range(“A1”).CurrentRegion
f = DTH(1).Rows.Count
‘手許残高
If f = 1 Then
Cells(51, 10) = Cells(50, 10).Value
Else
Cells(51, 10) = DTH(1).Cells(f, 15).Value + Cells(50, 10).Value
End If
End Sub
支出金額の合計
f = 0
‘支出行集計
For h = 13 To 37
f = f + Cells(h, 10)
Next
Cells(48, 10) = f
最後に合計金額をJ48セルに代入します。
収入金額の合計
‘収入行集計
f = 0
For h = 41 To 45
f = f + Cells(h, 10)
Next
Cells(49, 10) = f
差引金額計算
‘差引金額計算
Cells(50, 10) = Cells(49, 10) – Cells(48, 10)
手許残高
‘実績最終行の取得
Set DTH(1) = Worksheets(“経費実績”).Range(“A1”).CurrentRegion
f = DTH(1).Rows.Count
‘手許残高
If f = 1 Then
Cells(51, 10) = Cells(50, 10).Value
Else
Cells(51, 10) = DTH(1).Cells(f, 15).Value + Cells(50, 10).Value
End If
ワークシート「経費実績」が空の場合、f = 1(見出し行のみ)となりJ50セルの値をJ51セルに代入します。
以上でVBA 経費管理6(登録2)は終わりです。
次回は「クリア」、「発行」ボタンについて作成していきます。