前回の記事でPowerPoint 2013でYouTubeの動画が挿入できない問題と、その問題を解決するためのマクロを紹介しましたが、マクロに慣れていない方にとっては作業が難しい面もありますので、PowerPointでYouTubeの動画を挿入するためのアドイン(フリーソフト)を作成しました(PowerPoint 2010/2013 に対応)。
ファイルはZip形式で圧縮していますので、Lhaplus等の圧縮解凍ソフトで解凍してからお使いください。
※ 当アドインの設定方法については付属の「readme.pdf」ファイルをご参照ください。
■ 使い方
PowerPointで当アドインを設定すると「挿入」タブに「YouTube 挿入」ボタンが追加されます。
このボタンをクリックすると「ビデオID入力」ボックスが表示されるので、YouTube動画のIDを入力して「OK」ボタンをクリックします。
※ ビデオIDは動画のURL[http://www.youtube.com/watch?v=***]の[***]部分にあたります。
動画の確認メッセージが表示されるので、問題が無ければ「はい」ボタンをクリックします。
「動画を現在のスライドに挿入しました。」とのメッセージが表示され、選択中のスライドに動画が挿入されれば作業終了です。スライドショーを実行して動画の再生を確認してください。
※ 動画の挿入には時間が掛かる場合があります。
今後YouTubeやPowerPointの仕様変更に伴って、アドインが動作しなくなる可能性はありますが、2013/9/5 現時点ではとりあえず動作しますので、興味がある方は是非ご利用ください。
また、当アドインのVBAコードとリボンXMLは下記になりますので、当ツールをカスタマイズしたい方は下記コードをご利用ください。
・VBAコード
'YouTube動画をアクティブなスライドに挿入するPowerPointマクロ 'PowerPoint 2010/2013対応 '@kinuasa Option Explicit Public Sub btnYouTubeInsert_onAction(control As IRibbonControl) Call InsertYouTubeVideoExec End Sub Private Sub InsertYouTubeVideoExec() Dim VideoID As String Dim title As String title = "" '初期化 VideoID = VBA.InputBox("YouTube動画のビデオIDを入力してください。" & vbCrLf & vbCrLf & _ "※ ビデオID:動画のURL[http://www.youtube.com/watch?v=***]の[***]部分", "ビデオID入力") If StrPtr(VideoID) = 0 Or Len(Trim(VideoID)) < 1 Then Exit Sub title = GetYouTubeVideoTitle(VideoID) If Len(Trim(title)) < 1 Then Exit Sub If MsgBox("挿入しようとしている動画は" & vbCrLf & vbCrLf & title & vbCrLf & vbCrLf & "で良いですか?", vbYesNoCancel + vbQuestion + vbSystemModal) = vbYes Then InsertYouTubeVideo VideoID MsgBox "動画を現在のスライドに挿入しました。", vbInformation + vbSystemModal End If End Sub Private Sub InsertYouTubeVideo(ByVal VideoID As String) 'ビデオIDを指定してYouTube動画をアクティブなスライドに挿入する Dim sld As PowerPoint.Slide Dim embed As String Set sld = Nothing '初期化 Set sld = GetActiveSlide(ActivePresentation) If Not sld Is Nothing Then embed = "<object><param name=""movie"" value=""http://www.youtube.com/v/" & VideoID & "&version=2"" /></object>" sld.Shapes.AddMediaObjectFromEmbedTag embed End If End Sub Private Function GetYouTubeVideoTitle(ByVal VideoID As String) As String 'YouTube動画のタイトルを取得 Dim url As String Dim ret As String Dim s As String Dim n As Object ret = "": s = "": Set n = Nothing '初期化 url = "http://gdata.youtube.com/feeds/api/videos/" & VideoID On Error Resume Next With CreateObject("MSXML2.XMLHTTP") .Open "GET", url, False .setRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" .Send If .Status = 200 Then s = .responseText 'responseXMLだと上手くいかなかったのでresponseText使用 End With If Len(Trim(s)) > 0 Then With CreateObject("MSXML2.DOMDocument") .async = False If .LoadXML(s) Then Set n = .SelectSingleNode("/entry/title") If Not n Is Nothing Then ret = n.Text 'title要素の内容取得 End If End If End With End If On Error GoTo 0 GetYouTubeVideoTitle = ret End Function Private Function GetActiveSlide(ByVal p As Presentation) As Slide 'アクティブなスライドを取得 Dim ret As Slide Set ret = Nothing '初期化 On Error Resume Next Set ret = p.Slides.FindBySlideID(p.Windows(1).Selection.SlideRange.SlideID) On Error GoTo 0 Set GetActiveSlide = ret End Function
・リボンXML
<?xml version="1.0" encoding="utf-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <tab idMso="TabInsert"> <group id="grpYouTubeInsert" label="YouTube 挿入" insertAfterMso="GroupInsertMediaClips" screentip="YouTubeの動画挿入" supertip="YouTubeの動画を挿入します。"> <!-- image by : Erlen Masson - http://erlen.co.uk/ --> <button id="btnYouTubeInsert" label="YouTube 挿入" size="large" image="YouTubeIcon" onAction="btnYouTubeInsert_onAction" screentip="YouTubeの動画挿入" supertip="YouTubeの動画を現在のスライドに挿入します。" /> </group> </tab> </tabs> </ribbon> </customUI>
■ 関連Webページ
・PowerPoint 2013 で YouTube から動画を挿入したい【対処編】
http://snow-white.cocolog-nifty.com/first/2013/09/powerpoint-20-2.html
この記事へのコメントはありません。