酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Excel VBAでエクセル(Excel2003)で動画を再生する方法

知人からエクセルでプレゼン資料のようなものを作っていて、動画再生が出来ないか質問を受けたので調査してみました。知人に渡したドキュメントを流用しているので、いつもと文章が違います。気にしないでくだし(ノ´∀`*)

Windows Media Player Objectの貼り付け

まずは動画を表示する為のコントロールを貼り付けます。

[表示]→[ツールバー]→[コントロール ツールボックス]にチェックを付けて、[コントロール ツールボックス]を表示させます。

沢山ある項目の中から「Windows Media Player」を選択して、シート上の適当な場所へ貼り付けます。

左上に「WindowsMediaPlayer1」って名前が表示されると思いますが、これが先ほど貼り付けたWindows Media Playerコントロールの名前です。

「WindowsMediaPlayer1」は、どんどん貼り付けていく度に数が増えていくので、貼り付けた時に貼り付けたシートと名前をメモっておいてください。

以後の説明は、ワークシート"Sheet1"に貼り付けたコントロール"WindowsMediaPlayer1"を前提としています。

動画再生のための情報をメモる

WindowsMediaPlayer1 を右クリックするとメニューが出てくるので、その中から「プロパティ」をクリックしてください。

「Left」と「Top」と「Height」と「Width」の数字をメモっておいてください。これらはWindowsMediaPlayer1 の場所と大きさの事です。メモっておかないと意図していない場所で変なサイズで再生されたりするので注意してください。

動画再生させる

WindowsMediaPlayer1 を右クリックして、[コードの表示]を選択してください。

Microsoft Visual Basic というアプリケーションが起動すると思いますので、Microsoft Excel Objects配下のSheet1に以下のコードをコピーしてください。

Sub PlayMovie()
    Dim FilePath As String
    
    ' 前の奴を開いていたら閉じる
    Call WindowsMediaPlayer1.Close

    ' "movie.wmv"っていう名前のファイルを再生する
    FilePath = ThisWorkbook.Path & "\" & "movie.wmv"

    ' ファイル名を設定する
    WindowsMediaPlayer1.URL = FilePath
   
    ' 再生を開始する
    Call WindowsMediaPlayer1.Controls.Play
End Sub

ペーストすれば、このような感じになっていると思います。

ボタンを作り、動画の再生を行う

あとは、オートシェイプでぐいぐいっと適当にボタンを作って、オートシェイプを右クリックして[マクロの登録]を選択します。

先ほどコピーしたソースコードから Sheet1.PlayMovie を選択して頂ければ、動画が再生されるようになります。

はいっ。動画が再生出来ました。如何でしょうか。