D列にC列をmmss形式で表した数値に変換
A列に文字列(時間相当の文字列と文字列)が、半角のスペースで区切られて入力されていたとして
そこから、
1)B列に時間相当以外の文字列だけを抜き出す
2)C列に時間相当の文字列だけを抜き出す
3)D列にC列をmmss形式で表した数値に変換
1),2)は上手く処理できたのですが
3)が上手く処理できません。
実際の現在のコード最下部に添付しますので
アドバイスをお願いします。
以下は完成形のイメージです。
|[A] |[B] |[C] |[D]
[1] |0:00 Coworking | Coworking |0:00 | 0
[2] |8:15 Dune | Dune |8:15 | 815
[3] |17:33 Rainy Day | Rainy Day |17:33 |1734
[4] |24:59 Chill Coffee | Chill Coffee |24:59 |2459
[5] |34:17 Autumn | Autumn |34:17 |3417
[6] |40:06 With the Waves| With the Waves|40:06 |4406
[7] |48:08 Indian Trip | Indian Trip |48:08 |4808
[8] |53:09 World of Sand | World of Sand |53:09 |5309
[9] |01:01:10 The Taxi | The Taxi |01:01:10|6110
[10]|01:07:26 Eden | Eden |01:07:26|6726
---------------------------
Sub 分割_mmss()
Dim i As Single
Dim Ch1 As Single
Dim Ch2 As Single
Dim LCN As Single
Dim WS1 As Worksheet
Set WS1 = Sheets("元DATA")
LCN = WS1.Cells(Rows.Count, 1).End(xlUp).Row
With WS1
For i = 1 To LCN
Ch1 = Len(.Cells(i, "A")) - Len(Replace(.Cells(i, "A"), ":", "")) '":"の個数
Ch2 = Len(Left(.Cells(i, "A"), InStr(.Cells(i, "A"), ":") - 1)) '最初の":"より前の文字数
'MsgBox i & "行目" & ":の個数" & Ch1 & vbCrLf & _
"行目" & "最初の:より前の文字数" & Ch2
'ファイル名の抜き出し
If Ch1 = 2 Then .Cells(i, "B") = Mid(.Cells(i, "A"), 10)
If Ch1 = 1 And Ch2 = 1 Then .Cells(i, "B") = Mid(.Cells(i, "A"), 6)
If Ch1 = 1 And Ch2 = 2 Then .Cells(i, "B") = Mid(.Cells(i, "A"), 7)
'時間相当分の抜き出し
If Ch1 = 2 Then .Cells(i, "C") = Left(.Cells(i, "A"), 8)
If Ch1 = 1 And Ch2 = 1 Then .Cells(i, "C") = Left(.Cells(i, "A"), 4)
If Ch1 = 1 And Ch2 = 2 Then .Cells(i, "C") = Left(.Cells(i, "A"), 5)
Next
.Range("c:c").NumberFormatLocal = "@" '書式文字列
'mmssで書き出し
.Cells(i, "D").Formula = "=TEXT(C" & i & ",""mmss"")*1"
End With
End Sub
お礼
できました! ここでも指定する必要があったんですね。 ありがとうございます!