teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/06/02 12:13

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -19,4 +19,32 @@
19
19
  outSheet.Cells(i + 2, 6).Value = myItem(i)
20
20
  Next
21
21
 
22
+ ```
23
+
24
+ ---
25
+ ```VBA
26
+ Dim sPath
27
+ sPath = "C:\webb\Total.xlsx"
28
+
29
+ Dim wb As Workbook
30
+ Set wb = Workbooks.Open(Filename:=sPath, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)
31
+
32
+ Dim ws As Worksheet
33
+ Set ws = wb.Worksheets(1)
34
+
35
+ Dim myList As Variant
36
+ myList = ws.Range("A2", ws.Range("A" & ws.Rows.Count).End(xlUp)).Resize(, 2).Value
37
+ wb.Close SaveChanges:=False
38
+
39
+ Dim myDic 'As Scripting.Dictionary
40
+ Set myDic = CreateObject("Scripting.Dictionary")
41
+
42
+ Dim i As Long
43
+ For i = 1 To UBound(myList, 1)
44
+ myDic(myList(i, 1)) = myDic(myList(i, 1)) + myList(i, 2)
45
+ Next
46
+ If myDic.Exists(Empty) Then myDic.Remove Empty
47
+
48
+ ws.Range("E2").Resize(myDic.Count, 2).Value = WorksheetFunction.Transpose(Array(myDic.Keys, myDic.Items))
49
+
22
50
  ```

1

修正

2021/06/02 12:13

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -12,9 +12,11 @@
12
12
  myList = ws.Range("A2", ws.Range("A" & ws.Rows.Count).End(xlUp)).Resize(, 2).Value
13
13
 
14
14
  'リストを出力
15
+ Dim outSheet As Worksheet
16
+ Set outSheet = Thisworkbook.Worksheets(1)
15
17
  For i = 0 To UBound(myKey)
16
- ws.Cells(i + 2, 5).Value = myKey(i)
18
+ outSheet.Cells(i + 2, 5).Value = myKey(i)
17
- ws.Cells(i + 2, 6).Value = myItem(i)
19
+ outSheet.Cells(i + 2, 6).Value = myItem(i)
18
20
  Next
19
21
 
20
22
  ```