質問編集履歴
8
使用したVBA-JSONの所在を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -139,3 +139,11 @@
|
|
139
139
|
|
140
140
|
|
141
141
|
使用環境は 64bit版エクセルとなります。
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
上記のVBA-JSONはcx20さんが教えてくださった下記を使用しています。
|
146
|
+
|
147
|
+
■ VBA-JSON
|
148
|
+
|
149
|
+
https://github.com/VBA-tools/VBA-JSON
|
7
文言修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -70,7 +70,9 @@
|
|
70
70
|
|
71
71
|
どなたか、ご教授いただけると助かります。。。
|
72
72
|
|
73
|
-
ちなみに、上記のデータセットは5000セットくらいあります。
|
73
|
+
ちなみに、上記のデータセットは「以降、省略」と記載されている部分だけで5000セットくらいあります。
|
74
|
+
|
75
|
+
あたまの”AA"が5000千回くるかんじです。
|
74
76
|
|
75
77
|
|
76
78
|
|
6
使用環境の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -133,3 +133,7 @@
|
|
133
133
|
VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。二週目の"AA"の値が指定して取り出せれば、VBA-JSONでも構いません。
|
134
134
|
|
135
135
|
jsonファイルに同じ名前の付いた2週目のファイルの取り出し方が分からなかったため、他の方法を探していた次第です。
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
使用環境は 64bit版エクセルとなります。
|
5
文言修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -130,4 +130,6 @@
|
|
130
130
|
|
131
131
|
|
132
132
|
|
133
|
-
VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。
|
133
|
+
VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。二週目の"AA"の値が指定して取り出せれば、VBA-JSONでも構いません。
|
134
|
+
|
135
|
+
jsonファイルに同じ名前の付いた2週目のファイルの取り出し方が分からなかったため、他の方法を探していた次第です。
|
4
VBA-JSONでやってみたところ二週目を取り出す方法が分からない。。。
test
CHANGED
File without changes
|
test
CHANGED
@@ -99,3 +99,35 @@
|
|
99
99
|
と思って調べているところです。。「先頭から読み込む」では無く「一行づつ」なら、いけそうな
|
100
100
|
|
101
101
|
感じもするのですが、、、、。
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
```VBA-JSONでやってみたところ。。。
|
106
|
+
|
107
|
+
Dim buf, str As String
|
108
|
+
|
109
|
+
With CreateObject("Scripting.FileSystemObject")
|
110
|
+
|
111
|
+
With .GetFile("D:\XXX\ex.json").OpenAsTextStream
|
112
|
+
|
113
|
+
buf = .ReadAll
|
114
|
+
|
115
|
+
.Close
|
116
|
+
|
117
|
+
End With
|
118
|
+
|
119
|
+
End With
|
120
|
+
|
121
|
+
buf = Replace(buf, "[", "")
|
122
|
+
|
123
|
+
buf = Replace(buf, "]", "")
|
124
|
+
|
125
|
+
Dim Json: Set Json = JsonConverter.ParseJson(buf)
|
126
|
+
|
127
|
+
MsgBox Json("AA")
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。そこで別の方法を考えている次第です。。。
|
3
jsonファイルの2週目の記載を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,13 +40,17 @@
|
|
40
40
|
|
41
41
|
{
|
42
42
|
|
43
|
+
"AA": "XXX10",
|
44
|
+
|
43
|
-
|
45
|
+
"BB": {
|
46
|
+
|
47
|
+
以降、省略
|
44
48
|
|
45
49
|
},
|
46
50
|
|
47
51
|
{
|
48
52
|
|
49
|
-
以降、
|
53
|
+
以降、省略
|
50
54
|
|
51
55
|
}
|
52
56
|
|
2
情報更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -71,3 +71,27 @@
|
|
71
71
|
|
72
72
|
|
73
73
|
![イメージ説明](c30297f4a72043eefae412ece63a00c1.png)
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
実現したいことを整理します。
|
78
|
+
|
79
|
+
VBAで下記のコードを実現したいのです。
|
80
|
+
|
81
|
+
・改行が無いため先頭から読み込む。
|
82
|
+
|
83
|
+
・先頭から読み込みながら、「: {」があったら階層を一つ下がって「BB.B3.EE1」して、
|
84
|
+
|
85
|
+
その値を読み込む。
|
86
|
+
|
87
|
+
・「}」があれば一つ階層を上げる。(「BB.B3」階層に戻る)
|
88
|
+
|
89
|
+
・項目はエクセルの一行目と一致したら出力する。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
上記を実現する方法をVBAで書きたい。。。
|
94
|
+
|
95
|
+
と思って調べているところです。。「先頭から読み込む」では無く「一行づつ」なら、いけそうな
|
96
|
+
|
97
|
+
感じもするのですが、、、、。
|
1
誤字修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,7 +56,9 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
下記のようなイメージで考えているのですが、
|
59
|
+
下記のような出力イメージで考えているのですが、微妙なネスト状態になっているので
|
60
|
+
|
61
|
+
アイデアが思い浮かびません。。。。
|
60
62
|
|
61
63
|
jsonファイルは、見やすいように改行しましたが、これが全部、改行無しでくっついて
|
62
64
|
|
@@ -64,6 +66,8 @@
|
|
64
66
|
|
65
67
|
どなたか、ご教授いただけると助かります。。。
|
66
68
|
|
69
|
+
ちなみに、上記のデータセットは5000セットくらいあります。。。
|
70
|
+
|
67
71
|
|
68
72
|
|
69
73
|
![イメージ説明](c30297f4a72043eefae412ece63a00c1.png)
|