質問編集履歴

6 aa

amatsuno

amatsuno score 51

2019/03/25 09:14  投稿

vbsで時間の足し算をしたい
一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
````````````````````````````````````````````````````````````
Dim objADO
Dim strPath
strPath = "c;\csvdata\"
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
           strPath & ";ReadOnly=0"
objADO.Execute "SELECT * INTO time_master.csv " & _
" FROM master1.csv where 選択カラム = '終了';"
objADO.Close
Set objADO = Nothing
```````````````````````````````````````````````````````````````
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,1:00:44
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
※上記のコードで実施したところ、このような表示がされてしまう
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、
dateaddの使い方がよくわからず、このような質問となってしまいました
すいません
(①がうまくいっていないので、②にまだ進めないこともあります)
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
(ココカラ)
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
(ココマデ)
となります
  • VBScript

    477 questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

5 記載ミスを修正

amatsuno

amatsuno score 51

2019/03/25 09:13  投稿

vbsで時間の足し算をしたい
一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
````````````````````````````````````````````````````````````
Dim objADO
Dim strPath
strPath = "c;\csvdata\"
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
           strPath & ";ReadOnly=0"
objADO.Execute "SELECT * INTO time_master.csv " & _
" FROM master1.csv where 選択カラム = '終了';"
objADO.Close
Set objADO = Nothing
```````````````````````````````````````````````````````````````
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1:00:05
PC1,2019/2/6 9:41,終了,1:02:23
PC1,2019/2/6 9:23,終了,1:05:08
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,1:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
※上記のコードで実施したところ、このような表示がされてしまう
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、
dateaddの使い方がよくわからず、このような質問となってしまいました
すいません
(①がうまくいっていないので、②にまだ進めないこともあります)
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
(ココカラ)
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
(ココマデ)
となります
  • VBScript

    477 questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

4 再変更(分岐文字)

amatsuno

amatsuno score 51

2019/03/22 19:45  投稿

vbsで時間の足し算をしたい
一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
````````````````````````````````````````````````````````````
Dim objADO
Dim strPath
strPath = "c;\csvdata\"
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
           strPath & ";ReadOnly=0"
objADO.Execute "SELECT * INTO time_master.csv " & _
" FROM master1.csv where 選択カラム = '終了';"
objADO.Close
Set objADO = Nothing
```````````````````````````````````````````````````````````````
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1:00:05
PC1,2019/2/6 9:41,終了,1:02:23
PC1,2019/2/6 9:23,終了,1:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,1:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
※上記のコードで実施したところ、このような表示がされてしまう
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、
dateaddの使い方がよくわからず、このような質問となってしまいました
すいません
(①がうまくいっていないので、②にまだ進めないこともあります)
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
---------------------------------------
(ココカラ)
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
----------------------------------------
(ココマデ)
となります
  • VBScript

    477 questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

3 分岐文字の変更

amatsuno

amatsuno score 51

2019/03/22 19:43  投稿

vbsで時間の足し算をしたい
一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
````````````````````````````````````````````````````````````  
Dim objADO
Dim strPath
strPath = "c;\csvdata\"
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
           strPath & ";ReadOnly=0"
objADO.Execute "SELECT * INTO time_master.csv " & _
" FROM master1.csv where 選択カラム = '終了';"
objADO.Close
Set objADO = Nothing
```````````````````````````````````````````````````````````````
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1:00:05
PC1,2019/2/6 9:41,終了,1:02:23
PC1,2019/2/6 9:23,終了,1:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,1:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
※上記のコードで実施したところ、このような表示がされてしまう  
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、
dateaddの使い方がよくわからず、このような質問となってしまいました
すいません
(①がうまくいっていないので、②にまだ進めないこともあります)
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
>>>>>>>>>>>>>>>>>>>>>>>>>>>
---------------------------------------
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
>>>>>>>>>>>>>>>>>>>>>>>>>>>
----------------------------------------
となります
  • VBScript

    477 questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

2 ②未記載の理由を追記

amatsuno

amatsuno score 51

2019/03/22 18:45  投稿

vbsで時間の足し算をしたい
一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
Dim objADO
Dim strPath
strPath = "c;\csvdata\"
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
           strPath & ";ReadOnly=0"
objADO.Execute "SELECT * INTO time_master.csv " & _
" FROM master1.csv where 選択カラム = '終了';"
objADO.Close
Set objADO = Nothing
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1:00:05
PC1,2019/2/6 9:41,終了,1:02:23
PC1,2019/2/6 9:23,終了,1:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,1:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、
dateaddの使い方がよくわからず、このような質問となってしまいました
すいません
(①がうまくいっていないので、②にまだ進めないこともあります)  
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
>>>>>>>>>>>>>>>>>>>>>>>>>>>
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
>>>>>>>>>>>>>>>>>>>>>>>>>>>
となります
  • VBScript

    477 questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

1 やろうとしていることの記載

amatsuno

amatsuno score 51

2019/03/22 18:31  投稿

vbsで時間の足し算をしたい
一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
Dim objADO
Dim strPath
strPath = "c;\csvdata\"
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
           strPath & ";ReadOnly=0"
objADO.Execute "SELECT * INTO time_master.csv " & _
" FROM master1.csv where 選択カラム = '終了';"
objADO.Close
Set objADO = Nothing
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1:00:05
PC1,2019/2/6 9:41,終了,1:02:23
PC1,2019/2/6 9:23,終了,1:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,1:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、  
dateaddの使い方がよくわからず、このような質問となってしまいました  
すいません  
 
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
>>>>>>>>>>>>>>>>>>>>>>>>>>>
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
>>>>>>>>>>>>>>>>>>>>>>>>>>>
となります
  • VBScript

    477 questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る