Excelで家計簿ソフトを作ってみよう

Step 13 先週の収入を合計する

行範囲が取得できましたので、収入の項目毎に金額を集計します。
金額の合計は、ループで開始行から終了行まで費目単位の配列に加算していきます。
配列はボタン数と該当外の8個用意します。
費目名と合っているかどうかは、コマンドボタンのキャプションと比較します。
費目名と一致し、収入に入力されていれば収入金額とします。



Homeに戻る > Excelでアプリケーションソフト2 > 家計簿ソフト

実行画面

■合っているかどうかの確認の為、メッセージボックスで結果を表示させています。
  先週の期間は、8月5日~8月7日です。
  その収入の合計は、給与:0円、賞与:0円、パート:0円、アルバイト:8000円、年金:.0円、雑収入:6500円
  その他:0円、該当外:0円なので、合っているようです。
家計簿の収入金額の合計

実行VBAコード

Private Sub ExSyukei(lstr As Long, lenr As Long)
    Dim i As Long
    Dim j As Long
    Dim lin(7) As Long
    Dim sin(7) As String
    Dim lout(14) As Long
    Dim sout(14) As String
    
    For i = lstr To lenr
        '給与
        If Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton1.Caption And Cells(i, 5) <> "" Then
            lin(0) = lin(0) + Cells(i, 5)
        '賞与
        ElseIf Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton2.Caption And Cells(i, 5) <> "" Then
            lin(1) = lin(1) + Cells(i, 5)
        'パート
        ElseIf Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton3.Caption And Cells(i, 5) <> "" Then
            lin(2) = lin(2) + Cells(i, 5)
        'アルバイト
        ElseIf Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton4.Caption And Cells(i, 5) <> "" Then
            lin(3) = lin(3) + Cells(i, 5)
        '年金
        ElseIf Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton5.Caption And Cells(i, 5) <> "" Then
            lin(4) = lin(4) + Cells(i, 5)
        '雑収入
        ElseIf Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton6.Caption And Cells(i, 5) <> "" Then
            lin(5) = lin(5) + Cells(i, 5)
        'その他
        ElseIf Cells(i, 4) = Sheets("日々の収入・支出入力").CommandButton7.Caption And Cells(i, 5) <> "" Then
            lin(6) = lin(6) + Cells(i, 5)
        '該当なし
        ElseIf Cells(i, 4) <> "" And Cells(i, 5) <> "" Then
            lin(7) = lin(7) + Cells(i, 5)
        End If
    Next
    
    MsgBox lin(0) & "  " & lin(1) & "  " & lin(2) & "  " & _
lin(3) & "  " & lin(4) & "  " & lin(5) & "  " & lin(6) & "  " & lin(7)
End Sub

'先週ボタン
Private Sub CommandButton2_Click()
    Dim stdt As Date
    Dim endt As Date
    Dim strow As Long
    Dim enrow As Long
    
    ExGetAgoWeek stdt, endt
    
    Debug.Print stdt & "  ~  " & endt
    
    MyDataSort
    
    '期間内の行の範囲を調べる
    MyFindDate stdt, endt, strow, enrow
    ExSyukei strow, enrow
End Sub


Homeに戻る > Excelでアプリケーションソフト2 > 家計簿ソフト

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved