Excel VBA質問箱 IV

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

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


40995 / 76732 ←次へ | 前へ→

【40825】Re:集計表について'
発言  kobasan  - 06/7/24(月) 20:16 -

引用なし
パスワード
   ichinose さん、皆さん 今晩は。

>ですねえ!!、実は、最初に使ったのがCollectionだったので
>愛着と言うか・・。

ということは、Collection で、結構、集計をしていたってことですね。


>でも、Dictionaryより、優れている点は?と
>探してみてもないんですよねえ・・

>でも、MacでCollectionが使用可能なら
>WinとMacまでの互換性を考慮した場合、
>
>Collectionを使うことの意義が確認できるので
>これは、結果を待ちたいですね!!

ということで、
MAC で Collection が使えるか待っていたんですが、待ちきれずに、
Collection 用に改造してみました。

それから、自分のスキルアップのために。

あー、初めて、Collection を使って集計してしまった。

どなたか、MAC の Excel で、この Collection版が使えるかどうか確認してみてください。
(まだ、サンさんが見ていたら、お友だちに確認してもらってください。)


Sub Collection集計()
Dim vnt, a, c
Dim i As Long
Dim MyColl As New Collection
  '
  With Sheets("Sheet1")
    vnt = .Range("G2", .Range("A65536").End(xlUp)).Value
  End With
  '
  On Error Resume Next
  For i = 1 To UBound(vnt, 1)
    'Collectionにkey ,Itemを追加
    MyColl.Add Item:= _
      Array(vnt(i, 1), vnt(i, 2), vnt(i, 3), vnt(i, 4), _
      vnt(i, 5), vnt(i, 6), vnt(i, 7)), key:=vnt(i, 1)
    If Err.Number <> 0 Then
      '重複のとき
      a = MyColl(vnt(i, 1))
      MyColl.Remove vnt(i, 1)
      a(4) = a(4) + vnt(i, 5)  '集計
      a(5) = a(5) + vnt(i, 6)
      a(6) = a(6) + vnt(i, 7)
      MyColl.Add Item:=a, key:=vnt(i, 1)
    End If
    Err.Number = 0
  Next
  On Error GoTo 0
  '
  '-----出力用配列を作成
  i = 1
  ReDim outvnt(1 To MyColl.Count)
  For Each c In MyColl
    outvnt(i) = c
    i = i + 1
  Next
  '
  '-----結果出力
  With Sheets("Sheet2")
    .Cells.ClearContents
    .Range("A1:G1").Value = Sheets("Sheet1").Range("A1:G1").Value
    .Range("A2").Resize(MyColl.Count, UBound(vnt, 2)).Value = _
      Application.Transpose(Application.Transpose(outvnt))
    .Select
  End With
  '
  Erase vnt: Erase outvnt
  For i = 1 To MyColl.Count
    MyColl.Remove 1
  Next
End Sub

0 hits

【40478】集計表について サン 06/7/14(金) 15:14 質問
【40490】Re:集計表について kobasan 06/7/14(金) 22:25 回答
【40568】Re:集計表について サン 06/7/18(火) 12:16 お礼
【40652】Re:集計表について kobasan 06/7/19(水) 18:48 回答
【40662】Re:集計表について サン 06/7/20(木) 9:55 お礼
【40732】Re:集計表について サン 06/7/21(金) 16:53 質問
【40739】Re:集計表について kobasan 06/7/21(金) 20:43 回答
【40747】Re:集計表について ichinose 06/7/22(土) 8:13 発言
【40755】Re:集計表について kobasan 06/7/22(土) 18:44 発言
【40759】Re:集計表について ichinose 06/7/23(日) 11:20 発言
【40825】Re:集計表について' kobasan 06/7/24(月) 20:16 発言
【40834】Re:集計表について' ichinose 06/7/24(月) 23:12 発言
【40902】Re:集計表について' kobasan 06/7/25(火) 22:45 お礼
【40782】Re:集計表について サン 06/7/24(月) 10:04 お礼
【40491】Re:集計表について Kein 06/7/14(金) 22:31 回答
【40569】Re:集計表について サン 06/7/18(火) 12:24 お礼
【40632】Re:集計表について Kein 06/7/19(水) 14:22 回答
【40633】Re:集計表について サン 06/7/19(水) 14:28 お礼

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