Excel VBA質問箱 IV

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

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


5716 / 76732 ←次へ | 前へ→

【76623】Re:初心者でごめんなさい。
発言  β  - 15/2/14(土) 18:37 -

引用なし
パスワード
   ▼よぽん さん:

力技です。

Sub Test()
  Dim sl As Object
  Dim v As Variant
  Dim dic As Object
  Dim r As Range
  Dim col As Range
  Dim c As Range
  Dim x As Long
  Dim i As Long
  
  Set dic = CreateObject("Scripting.Dictionary")
  Set sl = CreateObject("System.Collections.SortedList")
  For Each c In Range("K1").CurrentRegion.Columns(1).Cells
    dic(c.Value) = 0
  Next
  
  Set r = Range("A1", ActiveSheet.UsedRange).Columns("A:F")
  x = r.Columns.Count
  For i = 1 To x Step 2
    For Each col In r.Columns(i)
      For Each c In col.Cells
        If Not IsEmpty(c.Value) Then
          sl(c.Value) = sl(c.Value) + c.Offset(, 1).Value
          If dic.exists(c.Value) Then dic(c.Value) = dic(c.Value) + c.Offset(, 1).Value
        End If
      Next
    Next
  Next
  
  ReDim v(0 To sl.Count, 0 To 1)
  For i = 0 To sl.Count - 1
    v(i, 0) = sl.getkey(i)
    v(i, 1) = sl.getbyindex(i)
  Next
  
  Range("H1").CurrentRegion.ClearContents
  Range("H1").Resize(sl.Count, 2).Value = v
  v = dic.items
  Range("L1").Resize(dic.Count).Value = WorksheetFunction.Transpose(dic.items)
  
End Sub
338 hits

【76620】初心者でごめんなさい。 よぽん 15/2/14(土) 16:42 質問[未読]
【76621】Re:初心者でごめんなさい。 β 15/2/14(土) 17:43 発言[未読]
【76622】Re:初心者でごめんなさい。 マナ 15/2/14(土) 17:45 発言[未読]
【76645】Re:初心者でごめんなさい。 マナ 15/2/22(日) 16:52 発言[未読]
【76623】Re:初心者でごめんなさい。 β 15/2/14(土) 18:37 発言[未読]
【76624】Re:初心者でごめんなさい。 よぽん 15/2/16(月) 11:14 お礼[未読]
【76625】Re:初心者でごめんなさい。 マナ 15/2/16(月) 20:50 発言[未読]
【76648】Re:初心者でごめんなさい。 β 15/2/22(日) 17:41 発言[未読]

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