エクセル2007のVBAで、DVDの一時停止や再生などをコントロールしたいと思っています。
以前この質問箱で教えていただいた回答の中に、「MSWebDVD オブジェクト」というものが使われていたので、こちらのサイト(http://msdn.microsoft.com/ja-jp/library/cc370323.aspx)などで調べてみたのですが、具体的な構文が分かりません。
例えば、下のような文を作ったのですが、上手く一時停止してくれませんでした。
Sub 一時停止()
Dim dx
Set dx = CreateObject("MSWebDVD.MSWebDVD.1")
MSWebDVD.Pause();
End Sub
途中の Set dx = CreateObject("MSWebDVD.MSWebDVD.1") という部分は、
以前に「音声をミュートするにはどうしたらいいか」という質問をして、それに対して
回答いただいた文章です。
ちなみに、OSはXP、DVD再生ソフトは元々パソコンにあった「Power DVD」というソフトです。
少なくともご質問に書かれたプログラムの間違いを正すなら
Sub 一時停止()
Dim dx
Set dx = CreateObject("MSWebDVD.MSWebDVD.1")
dx.Pause
set dx = nothing
End Sub
などのようですね。前回のサンプルマクロをよく見直してみてください。
で,問題はそのプログラムが役に立つかどうかですが,多分現状では無理と思います。
ご覧になったURLにあるように,それはDirectX9のDVDアプリケーションを制御する命令です。つまりDirectXのDVD機能をそのまま利用したDVDプレーヤソフトを探してきてインストールして使えば,そのプログラムが機能するハズです。でもご利用の「POWER DVD」がそういう性質のソフトなのかは,残念ながら全く存じ上げません。
他のアプローチとしては,WindowsのメディアプレイヤーがやはりDVDを再生できますし,メディアプレイヤー自体をExcelVBAの配下に置いて直接操作できます。今ここでそういうのを丸ごと作ってお見せする性質の内容ではないと思いますので,とりあえず「Excel VBA MediaPlayer」などをキーワードに少し関連資料を調査して,検討なさってみてはいかがでしょう。
お礼
なるほど、単純にエクセルとVBAだけの話ではなかったのですね。 アドバイスに従って、メディアプレイヤーを利用する方向でいろいろ調べてみようと思います。 ありがとうございました。