Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50999 / 76732 ←次へ | 前へ→

【30609】Re:SumIfの集計
発言  ichinose  - 05/10/31(月) 22:48 -

引用なし
パスワード
   ▼琴葉 さん:
こんばんは。

>
>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貸借対照表の

借方金額 貸方金額 残高を計算します。

確認してみて下さい。

1 hits

【30483】SumIfの集計 琴葉 05/10/28(金) 16:09 質問
【30492】Re:SumIfの集計 ichinose 05/10/28(金) 17:16 発言
【30575】Re:SumIfの集計 琴葉 05/10/31(月) 10:12 質問
【30609】Re:SumIfの集計 ichinose 05/10/31(月) 22:48 発言
【30636】Re:SumIfの集計 Jaka 05/11/1(火) 17:49 発言
【30670】Re:SumIfの集計 琴葉 05/11/2(水) 10:35 お礼
【30669】Re:SumIfの集計 琴葉 05/11/2(水) 10:32 お礼

50999 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free