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

質問編集履歴

4

ソースを変更しました

2019/10/11 01:56

投稿

hj_zebra
hj_zebra

スコア10

title CHANGED
File without changes
body CHANGED
@@ -36,10 +36,17 @@
36
36
  test1.csvの2行目を比較したいのですが、書き込み処理に移ってしまいます。
37
37
 
38
38
 
39
+ ■現在出力される内容
40
+ 12345,2019/01/01,23:25
41
+ 12345,2019/01/02,19:25
42
+ 12345,2019/01/03,21:25
43
+ 12345,2019/01/04,23:25
39
44
 
40
45
 
46
+
41
47
  ### 作成を試みたソース
42
48
  ```ここに言語を入力
49
+ Const Path = "C:"
43
50
  Const InFile1 = "test1.csv"
44
51
  Const InFile2 = "test2.csv"
45
52
  Const OutFile1 = "OutFile1.csv"
@@ -68,32 +75,39 @@
68
75
  Set objInFile = objFso.OpenTextFile(Path & "\" & InFile1, 1, False)
69
76
  Set objInFile2 = objFso.OpenTextFile(Path & "\" & InFile2, 1, False)
70
77
  Set objOutFile = objFso.OpenTextFile(Path & "\" & OutFile1, 2, True)
71
- Do Until objInFile.AtEndOfStream
78
+ Do Until objInFile.AtEndOfStream
72
- strInFileLine = Split(objInFile.ReadLine, ",")
79
+ strInFileLine = Split(objInFile.ReadLine, ",")
73
- SYA_BG = strInFileLine(0)
80
+ SYA_BG = strInFileLine(0)
74
- KINMU_DATE = strInFileLine(1)
81
+ KINMU_DATE = strInFileLine(1)
75
- TIME_1_1 = strInFileLine(2)
82
+ TIME_1_1 = strInFileLine(2)
76
- Do Until objInFile2.AtEndOfStream
83
+ Do Until objInFile2.AtEndOfStream
77
- strInFileLine2 = Split(objInFile2.ReadLine, ",")
84
+ strInFileLine2 = Split(objInFile2.ReadLine, ",")
78
- SYA_BG2 = strInFileLine2(0)
85
+ SYA_BG2 = strInFileLine2(0)
79
- KINMU_DATE2 = strInFileLine2(1)
86
+ KINMU_DATE2 = strInFileLine2(1)
80
- NUM(1) = TIME_1_1
87
+ NUM(1) = TIME_1_1
81
- NUM(2) = strInFileLine2(2)
88
+ NUM(2) = strInFileLine2(2)
82
- NUM(3) = strInFileLine2(3)
89
+ NUM(3) = strInFileLine2(3)
83
- NUM(4) = strInFileLine2(4)
90
+ NUM(4) = strInFileLine2(4)
84
- MsgBox(NUM(1) & "," & NUM(2) & "," & NUM(3) & "," & NUM(4))
85
- IF SYA_BG = SYA_BG2 AND KINMU_DATE = KINMU_DATE2 Then
91
+ IF SYA_BG = SYA_BG2 AND KINMU_DATE = KINMU_DATE2 Then
86
- for i = 1 to 4
92
+ for i = 1 to 4
87
- if NUM_MAX < NUM(i) Then
93
+ if NUM_MAX < NUM(i) Then
88
- NUM_MAX = NUM(i)
94
+ NUM_MAX = NUM(i)
89
- END IF
95
+ END IF
90
- NEXT
96
+ NEXT
91
- END IF
97
+ END IF
92
- TIME_1_1 = NUM_MAX
98
+ TIME_1_1 = NUM_MAX
93
-          '書き込み処理
94
- objOutFile.WriteLine SYA_BG & "," & KINMU_DATE & "," & TIME_1_1
95
- Loop
96
99
  Loop
100
+ objOutFile.WriteLine SYA_BG & "," & KINMU_DATE & "," & TIME_1_1
101
+ Loop
102
+ objInfile.Close
103
+ objInfile2.Close
104
+ objOutfile.Close
105
+ Set objInfile = Nothing
106
+ Set objInfile2 = Nothing
107
+ Set objOutFile1 = Nothing
108
+
109
+ Set objfso = Nothing
110
+
97
111
  ```
98
112
 
99
113
 

3

タグの削除、説明文の追記

2019/10/11 01:56

投稿

hj_zebra
hj_zebra

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  【質問内容】
2
2
  test1.csvの社員番号と日付とtest2.csvの番号と日付が一致した時だけ
3
3
  test1.csvの時刻とtest2.csvの3つの時刻の中で(計4つ)の中で一番時刻の遅い値を返すプログラムを書こうとしています。
4
+ test2.csvにデータがなかった場合はそのままtest.1の内容を出力したいです。
4
5
 
5
6
  for文などを使用して添え字やキーなどを作れば可能になりますでしょうか。
6
7
  ご教示ください。
@@ -89,6 +90,7 @@
89
90
  NEXT
90
91
  END IF
91
92
  TIME_1_1 = NUM_MAX
93
+          '書き込み処理
92
94
  objOutFile.WriteLine SYA_BG & "," & KINMU_DATE & "," & TIME_1_1
93
95
  Loop
94
96
  Loop

2

書式の改善

2019/10/11 01:07

投稿

hj_zebra
hj_zebra

スコア10

title CHANGED
File without changes
body CHANGED
@@ -5,37 +5,40 @@
5
5
  for文などを使用して添え字やキーなどを作れば可能になりますでしょうか。
6
6
  ご教示ください。
7
7
 
8
- テストデータ
8
+ ###テストデータ
9
+ ```
9
- test1.csvの内容
10
+ **テストファイル1:test1.csvの内容**
10
11
  12345,2019/01/01,17:25
11
12
  12345,2019/01/02,19:25
12
13
  12345,2019/01/03,21:25
13
14
  12345,2019/01/04,23:25
14
-
15
+ ```
16
+ ```
15
- test2.csvの内容
17
+ **テストファイル2:test2.csvの内容**
16
18
  12345,2019/01/01,17:25,23:25,19:25
17
19
  12345,2019/01/02,19:25,20:25,21:25
18
20
  12345,2019/01/03,21:25,19:25,15:25
19
21
  12345,2019/01/04,23:25,21:25,21:25
22
+ ```
20
23
 
24
+ ```
21
- OutFile1.csv
25
+ **出力したい内容:OutFile1.csv**
22
26
  12345,2019/01/01,23:25
23
27
  12345,2019/01/02,21:25
24
28
  12345,2019/01/03,21:25
25
29
  12345,2019/01/04,23:25
30
+ ```
26
31
 
27
32
 
28
-
29
33
  ### 発生している問題・エラーメッセージ
30
34
  内側のDo Until objInFile2.AtEndOfStreamが終わったあと
31
35
  test1.csvの2行目を比較したいのですが、書き込み処理に移ってしまいます。
32
36
 
33
37
 
34
38
 
35
- ### 使用言語
36
- VBS
37
39
 
38
40
  ### 作成を試みたソース
41
+ ```ここに言語を入力
39
42
  Const InFile1 = "test1.csv"
40
43
  Const InFile2 = "test2.csv"
41
44
  Const OutFile1 = "OutFile1.csv"
@@ -88,4 +91,11 @@
88
91
  TIME_1_1 = NUM_MAX
89
92
  objOutFile.WriteLine SYA_BG & "," & KINMU_DATE & "," & TIME_1_1
90
93
  Loop
91
- Loop
94
+ Loop
95
+ ```
96
+
97
+
98
+
99
+
100
+ ### 使用言語
101
+ VBS

1

書式の改善

2019/10/11 00:53

投稿

hj_zebra
hj_zebra

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,11 @@
1
+ 【質問内容】
2
+ test1.csvの社員番号と日付とtest2.csvの番号と日付が一致した時だけ
3
+ test1.csvの時刻とtest2.csvの3つの時刻の中で(計4つ)の中で一番時刻の遅い値を返すプログラムを書こうとしています。
4
+
5
+ for文などを使用して添え字やキーなどを作れば可能になりますでしょうか。
1
- ### 前提・実現したこと
6
+ ご教示くださ
7
+
8
+ ■テストデータ
2
9
  test1.csvの内容
3
10
  12345,2019/01/01,17:25
4
11
  12345,2019/01/02,19:25
@@ -17,28 +24,18 @@
17
24
  12345,2019/01/03,21:25
18
25
  12345,2019/01/04,23:25
19
26
 
20
- 【質問内容】
21
- test1.csvの社員番号と日付とtest2.csvの番号と日付が一致した時だけ
22
- test1.csvの時刻とtest2.csvの3つの時刻の中で(計4つ)の中で一番時刻の遅い値を返すプログラムを書こうとしています。
23
27
 
24
- for文などを使用して添え字やキーなどを作れば可能になりますでしょうか。
25
- ご教示ください。
26
28
 
27
-
28
29
  ### 発生している問題・エラーメッセージ
29
- 内側のDo Until objInFile2.AtEndOfStreamが終わったあとtest1.csvの2行目を比較したいのですが、
30
+ 内側のDo Until objInFile2.AtEndOfStreamが終わったあと
30
- 書き込み処理に移ってしまいます。
31
+ test1.csvの2行目を比較したいのですが、書き込み処理に移ってしまいます。
31
32
 
32
33
 
33
34
 
34
- ### 該当のソースコード
35
+ ### 使用言語
35
-
36
- ```ここに言語名を入力
37
36
  VBS
38
- VBA
39
- VB
40
37
 
41
- ### こと
38
+ ### 作成をソース
42
39
  Const InFile1 = "test1.csv"
43
40
  Const InFile2 = "test2.csv"
44
41
  Const OutFile1 = "OutFile1.csv"