写真のスライドショーを収録したDVD-Rを焼くとき、説明文などを字幕として収録すればON/OFFできて便利じゃないかと気が付いた。 調べてみると字幕ファイル(.srt)は時刻と文章を並べただけのテキストエディタで作れる単純なものだった。 しかしVOBファイルをVLC Media Playerで再生しながらタイミングを調整していく作業は思ったより面倒で、どうにか楽にならないものかと考えた末、Excelで編集することにした。
改行が減った分だけ見通しが良くなったと思う。 さらに条件付き書式なども使えば時刻が前後してしまうミスも防げるだろう。
(σ・∀・)σ[字幕ファイル.xlsm]ButtonをクリックするとTextBoxに吐き出してコピペするマクロを作った。 マクロからファイルに直接出力するのが好きじゃないので、いつもこの方式にしている。
UserForm1
Private Sub CommandButton1_Click()
Dim i As Long
Dim s As String
TextBox1.Text = ""
Application.ScreenUpdating = False
i = 1
Do While Cells(i, 1) <> ""
s = i & vbCrLf & _
Format(Cells(i, 1), "hh:mm:ss") & "," & Format(Cells(i, 2), "000") & " --> " & _
Format(Cells(i, 3), "hh:mm:ss") & "," & Format(Cells(i, 4), "000") & vbCrLf & _
Cells(i, 5) & vbCrLf & vbCrLf
TextBox1.Text = TextBox1.Text & s
i = i + 1
Loop
Application.ScreenUpdating = True
Dim CB As New DataObject
With CB
.SetText (TextBox1.Text)
.PutInClipboard
End With
End Sub
そしてマクロの起動方法もよく忘れるので、ウィンドウサイズを変更したときにUserFormを表示するように仕込んでおいた。 ショートカットキーだとAlt+F11がVisual Basic Editorの起動、Alt+F8がマクロの表示となる。 初期設定では開発タブが隠されているので、リボンのユーザー設定から追加する。
ThisWorkbook
Private Sub Set_Form()
With UserForm1
.StartUpPosition = 0
.Top = Application.Top + .Height
.Left = Application.Left + Application.Width - .Width
If False = .Visible Then
.Show (vbModeless)
End If
End With
End Sub
Private Sub Workbook_Open()
Set_Form
End Sub
Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window)
Set_Form
End Sub
今回オーサリングにDVDStylerを使用したが、字幕ファイルの文字コードはShift-JISで問題なさそうだ。 日本語フォントを設定するのを忘れずに。 DVDメニューは上手く再生できなかった。 (´・ω・`)ショボーン
0 件のコメント: