質問編集履歴

8

使用したVBA-JSONの所在を追加

2021/11/09 01:59

投稿

nkiki
nkiki

スコア18

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

文言修正

2021/11/09 01:59

投稿

nkiki
nkiki

スコア18

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

使用環境の追加

2021/11/08 06:06

投稿

nkiki
nkiki

スコア18

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

文言修正

2021/11/08 06:04

投稿

nkiki
nkiki

スコア18

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でやってみたところ二週目を取り出す方法が分からない。。。

2021/11/08 05:56

投稿

nkiki
nkiki

スコア18

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週目の記載を追加

2021/11/08 05:42

投稿

nkiki
nkiki

スコア18

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

情報更新

2021/11/08 05:38

投稿

nkiki
nkiki

スコア18

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

誤字修正

2021/11/07 23:29

投稿

nkiki
nkiki

スコア18

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)