回答編集履歴

2

追記

2017/04/24 06:36

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  読み込み処理のところのコードを書いてみました。
22
22
 
23
- 参考まで
23
+ 参考まで(※エラー処理は省いています)
24
24
 
25
25
  ```VBA
26
26
 

1

コード追加

2017/04/24 06:36

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -15,3 +15,59 @@
15
15
  なので単純にReadLineで読み込んだのを1行として扱ってしまうとおかしくなります。
16
16
 
17
17
  1行読んだ後、1文字ずつ精査し、ダブルクォーテーションが閉じられていない場合は、次の行も読み込み、前行と連結、というのを繰り返す必要があると思います。
18
+
19
+
20
+
21
+ 読み込み処理のところのコードを書いてみました。
22
+
23
+ 参考まで。
24
+
25
+ ```VBA
26
+
27
+ Dim objFSO
28
+
29
+ Dim objr
30
+
31
+ Dim str
32
+
33
+
34
+
35
+ Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
36
+
37
+ Set objr = objFSO.OpenTextFile(WScript.Arguments.Item(0))
38
+
39
+
40
+
41
+ Do While objr.AtEndOfStream <> True
42
+
43
+ str = ""
44
+
45
+ ' 1行分のデータ読み込みループ
46
+
47
+ Do While objr.AtEndOfStream <> True
48
+
49
+ str = str & objr.ReadLine
50
+
51
+ ' ダブルクォーテーションの数をカウントし偶数ならループを抜ける
52
+
53
+ if (Len(str) - Len(Replace(str,"""",""))) Mod 2 = 0 Then Exit Do
54
+
55
+ Loop
56
+
57
+ ' 1行分のデータを表示
58
+
59
+ WScript.Echo "[" & str & "]"
60
+
61
+ Loop
62
+
63
+ objr.Close
64
+
65
+
66
+
67
+ Set objr = Nothing
68
+
69
+ Set objFSO = Nothing
70
+
71
+
72
+
73
+ ```