|
▼琴葉 さん:
こんばんは。
>
>sheet仕訳帳
> A B C D E F G
>1 日付 工番 借方金額 借方科目 摘要 貸方科目 貸方金額
>2 2005/10/28 1 100 現金 @ 普通預金 100
>3 2005/10/28 1 200 普通預金 @ 現金 200
>4 2005/10/29 1 150 現金 @ 普通預金 150
>5 2005/10/29 2 300 現金 @ 普通預金 300
>5 2005/10/29 2 300 普通預金 @ 現金 300
>
>上記のようなデータベースをsheet貸借対照表にユーザーフォームを作り
>コンボボックス月、コンボボックス工番から下記4タイプを選択し集計(SumIf)しようと考えています。
>月別---工番別
> 全工事
>年間---工番別
> 全工事
>たとえばコンボボックスにて ALL月、ALL工番を選択した場合
では、例題として、 ↑この場合を取り上げます。
>
>sheet貸借対照表
> A B C D E
>1 科目 前期繰越金 借方金額 貸方金額 残高
>2 現金 * 550 500 前期繰越金+50
>3普通預金 * 500 550 前期繰越金-50
>4 * *
>5 * *
>6 * *
> G H I J K
>1 科目 前期繰越金 借方金額 貸方金額 残高
>2 * *
>3 * *
>4 * *
>5 * *
>6 * *
>と集計表示したいです。(*はすでに手入力にて記入済み,科目が多いためG..使用)
>
>sheet貸借対照表A2がsheet仕訳帳C列にあれば→sumif集計するという感じで
>処理したいのです。最近やっと分岐やloopを使い始めたばかりでよくわかっておりませんが、自分でもいろいろがんばって見ますのでよろしくお願いいたします。
シート名は、「sheet仕訳帳」と「sheet貸借対照表」とします。
標準モジュールに
'========================================================
Sub main()
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Dim 借方 As String
Dim 借方金額 As String
Dim 貸方 As String
Dim 貸方金額 As String
With Worksheets("sheet仕訳帳")
Set rng1 = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
End With
With Worksheets("sheet貸借対照表")
Set rng2 = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
Set rng3 = .Range("g2", .Cells(.Rows.Count, 7).End(xlUp))
End With
If rng1.Row > 1 Then
借方 = rng1.Offset(0, 3).Address(, , , True)
借方金額 = rng1.Offset(0, 2).Address(, , , True)
貸方 = rng1.Offset(0, 5).Address(, , , True)
貸方金額 = rng1.Offset(0, 6).Address(, , , True)
If rng2.Row > 1 Then
With rng2.Offset(0, 2).Resize(, 3)
.Formula = Array("=sumif(" & 借方 & ",a2," & 借方金額 & ")", _
"=sumif(" & 貸方 & ",a2," & 貸方金額 & ")", _
"=b2+c2-d2")
'.Value = .Value 'これを入れると実数値が入ります
End With
End If
If rng3.Row > 1 Then
With rng3.Offset(0, 2).Resize(, 3)
.Formula = Array("=sumif(" & 借方 & ",g2," & 借方金額 & ")", _
"=sumif(" & 貸方 & ",g2," & 貸方金額 & ")", _
"=h2+i2-j2")
'.Value = .Value 'これを入れると実数値が入ります
End With
End If
End If
End Sub
mainを実行してみて下さい。
sheet貸借対照表の
借方金額 貸方金額 残高を計算します。
確認してみて下さい。
|
|