Excel VBA質問箱 IV

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

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


19 / 13290 ツリー ←次へ | 前へ→

【80727】Dictionaryでの値集計 永遠の超初心者 19/4/24(水) 15:50 質問[未読]

【80729】Re:Dictionaryでの値集計 ピンク 19/4/24(水) 17:02 回答[未読]
【80731】Re:Dictionaryでの値集計 永遠の超初心者 19/4/25(木) 8:00 質問[未読]
【80732】Re:Dictionaryでの値集計 ピンク 19/4/25(木) 8:28 発言[未読]
【80734】Re:Dictionaryでの値集計 永遠の超初心者 19/4/25(木) 10:00 お礼[未読]

【80729】Re:Dictionaryでの値集計
回答  ピンク  - 19/4/24(水) 17:02 -

引用なし
パスワード
   ▼永遠の超初心者 さん:

参考に
Sub Test1()
   Dim Dic As Object, c As Range
  
  Sheets("Sheet1").Activate
  Range("F91:G110").ClearContents

  Set Dic = CreateObject("Scripting.Dictionary")
  For Each c In Range("J51:CE81")
    If c.Value <> "" Then
      Dic(c.Value) = Dic(c.Value) + Cells(1, c.Column).Value
    End If
  Next
  Range("F91").Resize(Dic.Count, 1).Value = Application.Transpose(Dic.keys)
  Range("J91").Resize(Dic.Count, 1).Value = Application.Transpose(Dic.Items)
  Set Dic = Nothing
End Sub

【80731】Re:Dictionaryでの値集計
質問  永遠の超初心者  - 19/4/25(木) 8:00 -

引用なし
パスワード
   ピンク様
ありがとうございます。
思い通りの結果が出せました。
その上、随分スマートにしていただきました。

ただ、前述のコードは色々なサイトを参考に書いたものなのですが
どこに不備があるのかわかりません。
今後の参考のためにご指摘いただけるとありがたいです。

【80732】Re:Dictionaryでの値集計
発言  ピンク  - 19/4/25(木) 8:28 -

引用なし
パスワード
   ▼永遠の超初心者 さん:

If Cells(iR, iC).Value <> "" Then
  buf = Cells(iR, iC).Value
  If Not Dic.Exists(buf) Then
    Dic.Add buf, buf
    Dic.Item(buf) = Dic.Item(buf) + Cells(1, iC).Value
         ↓
    Dic.Item(buf) = Cells(1, iC).Value

------------------------------------------------
MsgBox "" + 100
この様な事をしてエラーになっていたの

【80734】Re:Dictionaryでの値集計
お礼  永遠の超初心者  - 19/4/25(木) 10:00 -

引用なし
パスワード
   ありがとうございます。
初手のitem設定が間違っていたということを理解しました。

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