はじめに
ImgBurnを使って DVDフォルダ(VIDEO_TSフォルダ)を ISOイメージファイルへ変換する手順について記載します。
また Excel VBA 及びバッチファイル(.bat)で自動化・連続実行できるようにします。
なお使用している ImgBurnのバージョンは 2.5.8.0 で、PCへインストール済みが前提となります。
ImgBurn初期設定
自動化に必要な ImgBurnの初期設定を行います。
ボリュームラベルの自動設定
ImgBurnを起動し、画面上部のTools
からSettings...
を選択。
Build
タブ内のPage 3
タブで、Don't Prompt Volume Label
にチェックを入れます。(その下のAnswer 'Yes'
にもチェックを入れる必要がありますが、デフォルトでチェックが入っています)
この設定でボリュームラベルが自動設定されますが、手動で設定したい場合はチェックを外してください。
ただし手動で設定する場合は DVDごとに値を決めてやる必要があります。
(任意) サウンドの無効化
Sound
タブ内のPlay Success Sound
とPlay Error Sound
のチェックを外します。
レイヤーブレークの無効化
OK
を押して戻ったら、画面内のCreate image file from files/folders
を選択します。
画面右側のAdvanced
タブ内のMedia
タブ内、Single Layer
の項目でProfile
をCustome
に選択し、Maximum Sectors
の値を4173824
に設定します。
ここではレイヤーブレーク(ブレークポイント、Layer Break Position)の設定を無効化しています。
二層構造の DVDを再生する際に発生するレイヤーブレークの位置を、ImgBurnでは手動で設定して最適化(不自然でない位置に設定し直す)できます。
しかし ISOイメージファイルにする分には無意味である上に、このために都度レイヤーブレークの位置を手動で選択しなければいけないので自動化を阻んでいます。
そこで本設定をすることで、元々二層構造だった DVDであっても一層構造であるように見せることができ、結果レイヤーブレークの設定をスキップできます。1
ImgBurnのコマンドライン操作
コマンドライン説明
以下のようにコマンドを使用します。
ImgBurn.exe /MODE BUILD /BUILDOUTPUTMODE IMAGEFILE /SRC "変換元フォルダのパス\" /DEST "変換先ファイルのパス.iso" /START /CLOSESUCCESS /NOIMAGEDETAILS
オプションについて、一つずつ説明します。
-
/MODE BUILD
:ビルドモードを指定 -
/BUILDOUTPUTMODE IMAGEFILE
:イメージファイルとして出力させます -
/SRC "変換元フォルダのパス\"
:変換させたい DVDフォルダのフルパスを指定します(最後に\
を入れます) -
/DEST "変換先ファイルのパス.iso"
:変換後のファイル名をフルパスで指定します -
/START
:自動で動作を開始します(これがないとただ ImgBurnが起動するだけです) -
/CLOSESUCCESS
:変換に成功した場合、自動で ImgBurnを終了します(これがないと次のコマンドを実行できません) -
/NOIMAGEDETAILS
:DVDの詳細情報の表示をオフにします(これがないと毎回詳細情報が表示され、手動でボタンを押さなければ動作しないようになります)
コマンドライン例
cd C:\Program Files (x86)\ImgBurn
ImgBurn.exe /MODE BUILD /BUILDOUTPUTMODE IMAGEFILE /SRC "D:\DVD\hoge\" /DEST "D:\DVD\hoge.iso" /START /CLOSESUCCESS /NOIMAGEDETAILS
Excel VBAでバッチファイルを作成する
複数の DVDフォルダを自動でイメージファイル化するために、Excel VBAを用いてバッチファイルを作成します。
前提
Excelデータの準備
Excelの A列に、A1セルから変換したいフォルダのフルパスを順番に記述します。
フルパスの一括取得方法としては、変換元フォルダを選択した状態でShift
キーを押しながら右クリックし、出てきたメニューでパスのコピー
を選択する方法があります。
もちろんコマンドプロンプトや PowerShell等での一覧取得でも結構です。
変換元フォルダ内の確認
変換元として指定できるフォルダは、VIDEO_TS
フォルダ自体かVIDEO_TS
フォルダの親フォルダのみです。
VIDEO_TS
フォルダから 2階層上を指定すると、ImgBurnが正しく動作しません。
あらかじめ変換元フォルダの中身を確認しておいてください。
【OK】
VIDEO_TS
hoge\VIDEO_TS
【NG】
hoge\hoge2\VIDEO_TS
Excel VBAを記述する
標準モジュールで以下のように記述します。
Excel VBAの基本的な使い方等については省略します。
Sub createBat()
'batファイル作成(既にある場合は上書き)
Open "D:\DVD\imgburn.bat" For Output As #1
'ImgBurn.exeへのパス指定
Print #1, "cd /d ""C:\Program Files (x86)\ImgBurn"""
Dim i As Long
Dim path As String
For i = 1 To 100
path = Cells(i, 1).Value
'データがない場合は繰り返しから抜ける
If path = "" Then
Exit For
End If
Print #1, "ImgBurn.exe /MODE BUILD /BUILDOUTPUTMODE IMAGEFILE /SRC """ & path & "\""" & " /DEST """ & path & ".iso""" & " /START /CLOSESUCCESS /NOIMAGEDETAILS"
Next
'一定時間待機した後、自己削除
Print #1, "cd /d ""C:\Users\hoge""" 'どこでもよいが実行できる位置へ移動する
Print #1, "timeout /t 10 /nobreak >null"
Print #1, "del ""%~f0"""
Close #1
MsgBox "Done!"
End Sub
例
Excelの A列に以下のようにパスを記載します。
A | B | |
---|---|---|
1 | D:\DVD\hoge | |
2 | D:\DVD\hoge2 | |
3 | D:\DVD\hoge3 |
この状態で上記 VBAを実行することで、以下バッチファイルが作成されます。
cd /d C:\Program Files (x86)\ImgBurn
ImgBurn.exe /MODE BUILD /BUILDOUTPUTMODE IMAGEFILE /SRC "D:\DVD\hoge\" /DEST "D:\DVD\hoge.iso" /START /CLOSESUCCESS /NOIMAGEDETAILS
ImgBurn.exe /MODE BUILD /BUILDOUTPUTMODE IMAGEFILE /SRC "D:\DVD\hoge2\" /DEST "D:\DVD\hoge2.iso" /START /CLOSESUCCESS /NOIMAGEDETAILS
ImgBurn.exe /MODE BUILD /BUILDOUTPUTMODE IMAGEFILE /SRC "D:\DVD\hoge3\" /DEST "D:\DVD\hoge3.iso" /START /CLOSESUCCESS /NOIMAGEDETAILS
cd /d "C:\Users\hoge"
timeout /t 10 /nobreak >null
del "%~f0"
このバッチファイルを実行することで順にImgBurnが実行され、自動で DVDフォルダの ISOイメージ化からバッチファイルの削除まで実施されます。