回答編集履歴

1

追記

2019/02/21 00:06

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -41,3 +41,85 @@
41
41
 
42
42
 
43
43
  2の集計も同じ要領でできます。
44
+
45
+
46
+
47
+ 追記
48
+
49
+ ハッシュのサンプルを追記します。
50
+
51
+ ```VBA
52
+
53
+ Dim sexstr(2) As String
54
+
55
+ Dim all As Object
56
+
57
+ Dim place As String
58
+
59
+ Dim sex As Integer
60
+
61
+ Dim cnt As Object
62
+
63
+ Dim pkey As Variant
64
+
65
+ Dim skey As Variant
66
+
67
+
68
+
69
+ ' 全体を管理する連想配列
70
+
71
+ Set all = CreateObject("Scripting.Dictionary")
72
+
73
+
74
+
75
+ ' 集計対象
76
+
77
+ place = "鹿児島県"
78
+
79
+ sex = 1
80
+
81
+
82
+
83
+ ' 地名のキーが作成されているか
84
+
85
+ If all.Exists(place) Then
86
+
87
+ ' 作成されているので性別毎のカウントアップ
88
+
89
+ Set cnt = all(place)
90
+
91
+ cnt(sex) = cnt(sex) + 1
92
+
93
+ Else
94
+
95
+ ' 作成されていないので地名毎・性別毎のカウント用連想配列を作成
96
+
97
+ Set cnt = CreateObject("Scripting.Dictionary")
98
+
99
+ cnt(sex) = 1
100
+
101
+ Set all(place) = cnt
102
+
103
+ End If
104
+
105
+
106
+
107
+ ' 出力
108
+
109
+ sexstr(1) = "男"
110
+
111
+ sexstr(2) = "女"
112
+
113
+ For Each pkey In all
114
+
115
+ For Each skey In all(pkey)
116
+
117
+ Debug.Print pkey & " " & sexstr(skey) & " " & all(pkey)(skey)
118
+
119
+ Next
120
+
121
+ Next
122
+
123
+
124
+
125
+ ```