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

質問編集履歴

8

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

2021/11/09 01:59

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -68,4 +68,8 @@
68
68
  VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。二週目の"AA"の値が指定して取り出せれば、VBA-JSONでも構いません。
69
69
  jsonファイルに同じ名前の付いた2週目のファイルの取り出し方が分からなかったため、他の方法を探していた次第です。
70
70
 
71
- 使用環境は 64bit版エクセルとなります。
71
+ 使用環境は 64bit版エクセルとなります。
72
+
73
+ 上記のVBA-JSONはcx20さんが教えてくださった下記を使用しています。
74
+ ■ VBA-JSON
75
+ https://github.com/VBA-tools/VBA-JSON

7

文言修正

2021/11/09 01:59

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -34,7 +34,8 @@
34
34
  jsonファイルは、見やすいように改行しましたが、これが全部、改行無しでくっついて
35
35
  一行扱いになっているのでどうやって、VBAで読み込んだらいいか、調べているところです。
36
36
  どなたか、ご教授いただけると助かります。。。
37
- ちなみに、上記のデータセットは5000セットくらいあります。。。
37
+ ちなみに、上記のデータセットは「以降、省略」と記載されている部分だけで5000セットくらいあります。
38
+ あたまの”AA"が5000千回くるかんじです。
38
39
 
39
40
  ![イメージ説明](c30297f4a72043eefae412ece63a00c1.png)
40
41
 

6

使用環境の追加

2021/11/08 06:06

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -65,4 +65,6 @@
65
65
  ```
66
66
 
67
67
  VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。二週目の"AA"の値が指定して取り出せれば、VBA-JSONでも構いません。
68
- jsonファイルに同じ名前の付いた2週目のファイルの取り出し方が分からなかったため、他の方法を探していた次第です。
68
+ jsonファイルに同じ名前の付いた2週目のファイルの取り出し方が分からなかったため、他の方法を探していた次第です。
69
+
70
+ 使用環境は 64bit版エクセルとなります。

5

文言修正

2021/11/08 06:04

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -64,4 +64,5 @@
64
64
  MsgBox Json("AA")
65
65
  ```
66
66
 
67
- VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。そこで別方法を考えいる次第。。
67
+ VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。二週目"AA"の値が指定し取り出せれば、VBA-JSONも構いません
68
+ jsonファイルに同じ名前の付いた2週目のファイルの取り出し方が分からなかったため、他の方法を探していた次第です。

4

VBA-JSONでやってみたところ二週目を取り出す方法が分からない。。。

2021/11/08 05:56

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -48,4 +48,20 @@
48
48
 
49
49
  上記を実現する方法をVBAで書きたい。。。
50
50
  と思って調べているところです。。「先頭から読み込む」では無く「一行づつ」なら、いけそうな
51
- 感じもするのですが、、、、。
51
+ 感じもするのですが、、、、。
52
+
53
+ ```VBA-JSONでやってみたところ。。。
54
+ Dim buf, str As String
55
+ With CreateObject("Scripting.FileSystemObject")
56
+ With .GetFile("D:\XXX\ex.json").OpenAsTextStream
57
+ buf = .ReadAll
58
+ .Close
59
+ End With
60
+ End With
61
+ buf = Replace(buf, "[", "")
62
+ buf = Replace(buf, "]", "")
63
+ Dim Json: Set Json = JsonConverter.ParseJson(buf)
64
+ MsgBox Json("AA")
65
+ ```
66
+
67
+ VBA-JSONを使って上記のように記載した場合は、最初の"AA"は取り出すことができますが、二週目の"AA"の"XXX10"が取り出すことができなくて困っています。そこで別の方法を考えている次第です。。。

3

jsonファイルの2週目の記載を追加

2021/11/08 05:42

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -19,10 +19,12 @@
19
19
  }
20
20
  },
21
21
  {
22
+ "AA": "XXX10",
22
- 以降、上記のデータがつづく、、、、。
23
+ "BB": {
24
+ 以降、省略
23
25
  },
24
26
  {
25
- 以降、上記のデータがつづく、、、、。
27
+ 以降、省略
26
28
  }
27
29
  ]
28
30
  ```

2

情報更新

2021/11/08 05:38

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -34,4 +34,16 @@
34
34
  どなたか、ご教授いただけると助かります。。。
35
35
  ちなみに、上記のデータセットは5000セットくらいあります。。。
36
36
 
37
- ![イメージ説明](c30297f4a72043eefae412ece63a00c1.png)
37
+ ![イメージ説明](c30297f4a72043eefae412ece63a00c1.png)
38
+
39
+ 実現したいことを整理します。
40
+ VBAで下記のコードを実現したいのです。
41
+ ・改行が無いため先頭から読み込む。
42
+ ・先頭から読み込みながら、「: {」があったら階層を一つ下がって「BB.B3.EE1」して、
43
+  その値を読み込む。
44
+ ・「}」があれば一つ階層を上げる。(「BB.B3」階層に戻る)
45
+ ・項目はエクセルの一行目と一致したら出力する。
46
+
47
+ 上記を実現する方法をVBAで書きたい。。。
48
+ と思って調べているところです。。「先頭から読み込む」では無く「一行づつ」なら、いけそうな
49
+ 感じもするのですが、、、、。

1

誤字修正

2021/11/07 23:29

投稿

nkiki
nkiki

スコア18

title CHANGED
File without changes
body CHANGED
@@ -27,9 +27,11 @@
27
27
  ]
28
28
  ```
29
29
 
30
- 下記のようなイメージで考えているのですが、アイデアが思浮かびません。。。。
30
+ 下記のような出力イメージで考えているのですが、微妙なネスト状態になってるので
31
+ アイデアが思い浮かびません。。。。
31
32
  jsonファイルは、見やすいように改行しましたが、これが全部、改行無しでくっついて
32
33
  一行扱いになっているのでどうやって、VBAで読み込んだらいいか、調べているところです。
33
34
  どなたか、ご教授いただけると助かります。。。
35
+ ちなみに、上記のデータセットは5000セットくらいあります。。。
34
36
 
35
37
  ![イメージ説明](c30297f4a72043eefae412ece63a00c1.png)