'SRT 자막파일을 엑셀 VBA 로 편집'에 해당되는 글 1건

728x90

SRT 자막파일을 엑셀 VBA 로 편집


SRT 자막파일의 구조를 보면 이렇게 생겼다.

번호와 바로 아래 타임코드(timecode) 정보가 있다.

그리고 그 아래에 자막내용이 있다.

동영상 플레이어에서는 이 타임코드 정보를 기준으로 해서 자막을 화면에 뿌려주게 된다.

자막파일을 가지고 이런 타임코드 정보는 전부다 지우고 자막내용만 남기고 싶은 경우의 VBA 코드를 만들어봤다. 아래코드처럼 한 이유는 자막 내용에 숫자만 들어간 경우가 있을 수 있다.

자막 내용은 지우지 않고 순수하게 타임코드 위의 번호(숫자)만 지우는 걸 고려해서 코드를 만들어봤다.



Sub Sub_Editing()
    Dim rngAll As Range
    Dim i As Integer

    Application.ScreenUpdating = False    '// 화면 업데이트 (일시) 중지
    Set rngAll = Range([A1], Cells(Rows.Count, "A").End(3))

    For i = rngAll.Cells.Count To 1 Step -1     '// 맨 마지막 줄부터 시작해서 거꾸로 i 값을 줄여나가라
        If InStr(Cells(i, 1), ":") And InStr(Cells(i, 1), "-->") Then   '// 타임코드 정보가 포함되어 있다면
            If IsNumeric(Cells(i - 1, 1)) Then                                   '// 타임코드 정보 윗줄이 숫자라면
                Range(Cells(i, 1), Cells(i - 1, 1)).EntireRow.Delete    '// 두줄을 지워라
            End If
            i = i - 1                                                      '// 두줄을 지웠으니 i 값을 하나더 빼라
        ElseIf Trim(Cells(i, 1)) = "" Then
            Cells(i, 1).EntireRow.Delete
        End If
    Next i
   
    Cells(1, 1).Select
    MsgBox "자막정리완료"
End Sub


블로그 이미지

Link2Me

,