VBA 経費管理6(登録2)

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) 

E6セルのID番号を取得しています。

For h = 13 To 37
 If Cells(h, 5) = j Then
 <中略>
 End If
Next

支出に登録された行の中からE列に一致するID番号を探します

支出入力データの登録

For k = 6 To 11
 Cells(h, k) = Cells(6, k)
Next
GoTo jump1

ID番号が一致する行があれば、その行の内容を上書きします。
その後jump1まで処理を飛ばします。

支出に登録された行の中にID番号が一致するものがない場合に、For h = 13 To 37・・・Nextを抜けます。

収入ID番号の探索

For h = 41 To 45
 If Cells(h, 5) = j Then
 <中略>
 End If
Next

次に、収入に登録された行の中からE列に一致するID番号を探します。
<中略>の中身は支出と同じです。

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

金額を代入するfに0を代入して、支出データ行の10列目の金額を連続して足していきます。
最後に合計金額をJ48セルに代入します。

収入金額の合計

‘収入行集計
f = 0
For h = 41 To 45
 f = f + Cells(h, 10)
Next
Cells(49, 10) = f

収入金額も同様に計算し、最後に合計金額をJ49セルに代入します。

差引金額計算

‘差引金額計算
Cells(50, 10) = Cells(49, 10) – Cells(48, 10)

J49セルからJ48セルの値を引いた金額をJ50セルに代入します。

手許残高

‘実績最終行の取得
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

ワークシート「経費実績」から前回までの手許残高を取得し、今回の差し引き金額と合わせて今回の手許残高を計算してJ51セルに代入します。
ワークシート「経費実績」が空の場合、f = 1(見出し行のみ)となりJ50セルの値をJ51セルに代入します。

以上でVBA 経費管理6(登録2)は終わりです。
次回は「クリア」、「発行」ボタンについて作成していきます。

タイトルとURLをコピーしました