Excel VBA質問箱 IV

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

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


91 / 76612 ←次へ | 前へ→

【82190】Re:VBA
発言  マナ  - 23/8/24(木) 16:09 -

引用なし
パスワード
   ▼いとう さん:

データは計上日で降順ソートされている前提


Option Explicit

Sub test()
  Dim dic As Object, aryl As Object
  Dim 品目CD As String, 単価 As Long, 金額 As Long
  Dim v, i As Long, k As String
  
  v = Cells(1).CurrentRegion.Value
  
  Set dic = CreateObject("scripting.dictionary")
  Set aryl = CreateObject("system.collections.arraylist")
  
  For i = UBound(v) To 2 Step -1
    品目CD = v(i, 1)
    単価 = v(i, 3)
    金額 = v(i, 4)
    If 金額 > 0 Then
      k = 品目CD & vbTab & 単価 & vbTab & 金額
      aryl.Add i
      If Not dic.exists(k) Then
      Set dic(k) = CreateObject("system.collections.stack")
      End If
      dic(k).push i
    Else
      k = 品目CD & vbTab & 単価 & vbTab & 金額 * -1
      aryl.Remove dic(k).pop
    End If
  Next
  
  aryl.Add 1
  aryl.Reverse

  v = Application.Index(v, Application.Transpose(aryl.toarray), Array(1, 2, 3, 4))
  Worksheets.Add.Cells(1).Resize(UBound(v), 4).Value = v

End Sub

75 hits

【82179】VBA いとう 23/8/21(月) 17:07 質問[未読]
【82180】Re:VBA MK 23/8/22(火) 10:38 発言[未読]
【82181】Re:VBA いとう 23/8/22(火) 10:54 質問[未読]
【82182】Re:VBA MK 23/8/22(火) 12:15 発言[未読]
【82183】Re:VBA いとう 23/8/22(火) 13:54 発言[未読]
【82184】Re:VBA マナ 23/8/23(水) 14:01 発言[未読]
【82185】Re:VBA いとう 23/8/24(木) 8:53 発言[未読]
【82186】Re:VBA マナ 23/8/24(木) 11:25 発言[未読]
【82187】Re:VBA いとう 23/8/24(木) 13:01 発言[未読]
【82188】Re:VBA マナ 23/8/24(木) 13:39 発言[未読]
【82189】Re:VBA いとう 23/8/24(木) 13:44 発言[未読]
【82190】Re:VBA マナ 23/8/24(木) 16:09 発言[未読]
【82192】Re:VBA いとう 23/8/28(月) 9:41 発言[未読]
【82193】Re:VBA マナ 23/8/28(月) 14:51 発言[未読]
【82194】Re:VBA いとう 23/8/28(月) 15:42 発言[未読]
【82195】Re:VBA マナ 23/8/29(火) 13:12 発言[未読]
【82196】Re:VBA いとう 23/8/29(火) 14:50 発言[未読]
【82197】Re:VBA マナ 23/8/29(火) 16:42 発言[未読]

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