動画ファイルを再生するExcelVBA

スポンサーリンク

動画ファイルを再生するVBAコード

先日仕事で動画ファイルを再生するExcelVBAのファイルを作成しました。
(結局当初の目的に合わず、仕事で使用できませんでしたが。)

動画を再生するVBAコードは使用する機会が少ないですが、せっかく作ったので今回紹介します。

動画ファイルを再生する方法は大きく分けて2つある

動画ファイルを作成する方法は大きく分けて2つあります。
1つはWindowsMediaPlayerのような他のアプリケーションを起動して確認する方法、もう一つがExcelの中に動画再生用のウインドウを作成し、その中で動画を再生する方法です。
両方の方法について順に記載していきます。

①WindowsMediaPlayerで動画を再生するVBAコード

こちらはVBAのコードを記載するだけなので、簡単です。
以下のVBAコードを実行するとExcelファイルと同じフォルダに入っている○○.mp4という名前の動画ファイルが再生されます。

Sub 動画再生()
Dim FilePath As String
FilePath = ThisWorkbook.Path & “\” & “○○.mp4”
Shell “C:\Program Files\Windows Media Player\wmplayer.exe /play ” & FilePath
End Sub

②Excelの中に動画再生用のウインドウを作成し、その中で再生する方法

ActiveXコントロールパネルを用いて、Excelファイルのシートに動画再生用のウインドウを作成し、その中で動画を再生する方法もあります。
ウインドウの作成がある分、①のWindowsMediaPlayerを使用するよりも少し準備が手間です。

(1)シート内に動画再生用のウインドウを作成する

以下の手順でシート内に動画再生のウインドウを作成します。

①「開発タブ」をクリック

②「挿入」をクリックし、表示されたコントロールの中から右下にある「コントロールの選択」をクリックする

③表示されたウインドウの中から「Windows Media Player」を選択し、OKをクリックする。

④シートの中の任意の位置をドラッグするとそのサイズの動画再生用のウインドウが表示されます。

左上の「WindowsMediaPlayre1」というのがこのウインドウの名前になります。
VBAコードを作成するときにこの名前を使用します。

動画で見たい方はこちらを参考にしてみてください。

(2)ウインドウ内で動画を再生するVBAコード

以下のVBAコードを実行するとExcelファイルと同じフォルダに入っている○○.mp4という名前の動画ファイルが作成したウインドウ内で再生されます。

Sub 動画再生ウインドウ内()
Dim FilePath As String
FilePath = ThisWorkbook.Path & “\” & “○○.mp4”
Sheets(1).WindowsMediaPlayer1.URL = FilePath ’シート1に作成したWindowsMediaPlayer1にファイルを紐づける
Call Sheets(1).WindowsMediaPlayer1.Controls.Play ’紐づけたファイルを再生する
End Sub

動画再生のマクロの活用案

元データをコピーできないようにガードをかけて、その上でVBAを使って動画を再生できるシステムにする予定で動画再生するVBAコードを考えてみましたが、どうやってもうまくいかなくて動画再生だけになってしまいました。

動画ファイルをパスワード付きZipファイルに入れておいて、VBAを使って解凍して動画再生し、その後解凍したファイルを削除するという手順なら実行できそうな気もします。
今のところZipを解凍する具体的なVBAコードは思いつかないので、また思いついたらご紹介します。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. もりも より:

    ご質問させてください、当方かなりの素人です。
    環境はWindows10 Excel2013 です。
    ①WindowsMediaPlayerで動画を再生するVBAコード、を試してみましたが動作しませんでした。
    BookをMP4の動画と一緒にフォルダーに入れています。

    FilePath = ThisWorkbook.Path & “¥” & “○○.mp4”
    の○○部分のみ動画ファイル名に変更したのですが、他にも変更箇所があるのでしょうか?

    ちなみにこちらのコードを利用させて頂いて、001~100の動画を一つのファイルに入れ
    セルA1に050などと入力するとその動画が再生されるというものが作りたいのです。
    何かヒントいただけませんでしょうか?宜しくお願い致します。

    • okumasahito より:

      こんばんは。ブログの閲覧・コメントありがとうございます。
      先ほど検証したところ、紹介したコードは動作しました。
      こちらの環境はWin10 Excel2016です。
      確かコードを作成した際はExcel2007だったと思いますが、その時でも同じく動作しております。
      下記2点ご確認いただきたくことは可能でしょうか。
      ①「C:\Program Files\Windows Media Player\wmplayer.exe」が存在しているかどうか。
      (コンピュータから階層を下っていってメディアプレーヤーのアプリケーションが存在しているか)
      ②動作しないというのはどういう状況かわかりますか?
      エラーが起こる・何も起こらない・メディアプレーヤーは起動するなど状況をおしえていただけると原因が特定できるかもしれません。

      • okumasahito より:

        また、ファイルの指定の仕方ですが、
        「FilePath = ThisWorkbook.Path & “¥” & cells(1,1).text」としていただくとA1セルに記載された名前のファイルを再生します。
        以上でお答えになっておりますでしょうか。
        必要でしたらコメントいただけますとできる限り対応させていただきます。

        私も素人ながら独学で勉強しております。
        VBAを勉強している貴重な仲間ですので、できる限りお答えさせていただきます。
        不明点あればご質問ください。

  2. okumasahito より:

    また、ファイルの指定の仕方ですが、
    「FilePath = ThisWorkbook.Path & “¥” & cells(1,1).text」としていただくとA1セルに記載された名前のファイルを再生します。
    以上でお答えになっておりますでしょうか。
    必要でしたらコメントいただけますとできる限り対応させていただきます。

    私も素人ながら独学で勉強しております。
    VBAを勉強している貴重な仲間ですので、できる限りお答えさせていただきます。
    不明点あればご質問ください。