(VBA)FORMATを変換して書き出したい
以下のようなテキストファイルを
CHAPTER01=0:00:00.000
CHAPTER01NAME=test_001
CHAPTER02=0:04:02.719
CHAPTER02NAME=test_456
CHAPTER03=0:08:33.859
CHAPTER03NAME=test_741
下記のようなフォーマットにEXCELのVBAを利用して変更してテキストファイルで書き出したい
最初のモデルになるようなマクロコードを教えてください。
1
00:00:00,000 --> 00:00:10.000
test_001
2
00:04:02,719 --> 00:04:12.719
test_456
3
00:08:33,859 --> 00:08:43.859
test_456
このように、番号、開始時間と終了時間、テキストの3つの要素があります。
時間は時:分:秒,ミリ秒の形式で表されます。
各要素は空白行で区切られます。
終了時間=開始時間+10秒(00:00:10.000)
’----------------------------
一応、何とか自前でコードは完成しましたが
運用上は問題なのですが算数的にはおこしな事になっています。
以下でDtime(10秒)を加算していますが
ws2.Cells(i, "B") = DateAdd("s", Dtime, ws2.Cells(i, "A"))
ws2.Cells(i, "A") が 0:04:02.719 だとすると
0:04:12.719 になるはずが
実際は、ws2.Cells(i, "B") は
0:04:13.000 と小数点以下がゼロになっています。
訂正を及びコードに関してアドバイスあればお願いします。
Option Explicit
Sub test()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim ls As Long, i As Long
Set ws1 = Worksheets("DATA")
Set ws2 = Worksheets("Convert")
ls = ws1.Cells(Rows.Count, "A").End(xlUp).Row
Dim txt As String
Dim Dtime As String
ws2.Cells.Clear
ws2.Columns("A").NumberFormatLocal = "h:mm:ss.000"
ws2.Columns("B").NumberFormatLocal = "h:mm:ss.000"
For i = 1 To ls Step 2
'開始時間
txt = ws1.Cells(i, "A").Value
ws2.Cells(i, "A") = Mid(txt, InStr(txt, "=") + 1)
'表示時間指定 (任意)
Dtime = 10
'終了時間
ws2.Cells(i, "B") = DateAdd("s", Dtime, ws2.Cells(i, "A")) '開始時間に10秒を加算
'時間部(開始 --> 終了)
ws2.Cells(i, "C") = ws2.Cells(i, "A").Text & " --> " & ws2.Cells(i, "B").Text
'Title
txt = ws1.Cells(i + 1, "A").Value
ws2.Cells(i + 1, "C") = Mid(txt, InStr(txt, "=") + 1)
Next
'Plane Text 保存 -----------------
Dim R_data As Integer '行番号
R_data = 1
Open "C:\Users\ABC\Desktop\Plane_text.txt" For Output As #1
Do While ws2.Cells(R_data, "C") <> ""
Print #1, ws2.Cells(R_data, "C")
If R_data Mod 2 = 0 Then '2の倍数のとき
Print #1, "" '空白行を出力
End If
R_data = R_data + 1
Loop
Close #1
End Sub
’---------------------------------
お礼
お礼が遅くなり済みません。 I2Sおよびデータフォーマットについての規格書は特に存在しないという 事ですね。 I2Sの入手済み資料にはPhilipsのI2S準拠と言う趣旨の記載があった為、 PhilipsのI2S bus specificationがI2Sの規格書と誤解していました。 DSP製品の仕様書、リファレンスガイド等はまだ調査中ですが、 教えて頂いた「DSP IIS ペリフェラル」のキーワードで検索して 色々な資料を確認していきたいと思います。