Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. Function readToMap(ByVal fromSheetName As String)
  2. Dim result As Object
  3. Dim rowNum, i, groupName, entityName, ignore, dummyValue
  4. dummyValue = 0
  5.  
  6. '' シート名 fromSheetName から読み取る
  7. '' 先頭1行はタイトル
  8. '' 1列目がグループ名、2列目がエンティティ名、3列目が空欄でない場合読み飛ばす
  9. '' 連続した行のみを対象として認識
  10. '' ネストした Scripting.Dictionary で結果を返す
  11.  
  12.  
  13. '' ここから実装
  14. ThisWorkbook.Sheets(fromSheetName).Activate
  15. rowNum = Range("A1").End(xlDown).Row
  16.  
  17. Set result = CreateObject("Scripting.Dictionary")
  18. For i = 2 To rowNum
  19. groupName = Cells(i, 1).Value
  20. entityName = Cells(i, 2).Value
  21. ignore = Not IsEmpty(Cells(i, 3).Value)
  22.  
  23. If ignore Then
  24. '' Continue
  25. ElseIf result.Exists(groupName) Then
  26. result.Item(groupName).Add entityName, dummyValue
  27. Else
  28. result.Add groupName, CreateObject("Scripting.Dictionary")
  29. result.Item(groupName).Add entityName, dummyValue
  30. End If
  31. Next i
  32.  
  33. Set readToMap = result
  34. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement