• 締切済み

VBAにおいてJavaScriptでのYouTube動画連続再生

VBAにおいてJavaScriptでのYouTube動画連続再生 OS:WindowsXp アプリケーション:Microsoft Excel 2007  業務の一環にて、無線カードによるインターネットの接続関係の試験を行っています。接続試験の一つとして「指定時間内に試験用に用意したYoutube の動画を何回再生できるか」という試験を行っています。ダウンロードが順調でなければ再生回数が少なくなるという趣旨の試験です。  VBAのInternetExplorer.Applicationでページをリロードするというところまでは理解できましたが、動画の再生完了判定のところで行き詰っています。フラッシュを使用していて、JavaScriptでの制御を行っているというところまで調べましたが、具体的な判定方法について理解ができてません。  正直、エクセルVBAでやるようなことではないと思いつつも、自己の技術力と現状の開発環境を考慮して一番し易い方法で考えてます。Set sc =CreateObject("ScriptControl") でオブジェクト設定を行い、sc.Language = "Jscript"にてJavaScriptを呼び出して、なんとかならないかとは思うのですが、以降が皆目見当がつかない状況です。もしかして見当違いなのではないかと思いつつも、アドバイスをいただければ幸いと思い質問させていただきます。 お目に止まったお方がいらっしゃいましたら、宜しくお願い致します。

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

<上記2か所でjavascriptの読み出しを行っていると思いますが、javascript本体(「javascriptを使います。」以降のソース)をどのファイルに張り付ければいいかがわかりませんでした。> =>もしかして誤解してないですか? EXCEL/VBAの中では、決してWebページの表示も操作も出来ないし、javascriptも動きませんよ。IEをフォームに張り付けて、操作しているイメージです。 javascriptはIEがWebページを読み込んで、IEが実行しているのです。 ですから、自分でjavascriptのコードを書いたWebページを予め作っておくのですよ。 その上で、 document.parentWindow.execScript については、 http://support.microsoft.com/kb/203125/ja とか、 http://questionbox.jp.msn.com/qa4460244.html を見てね

junroku
質問者

お礼

わざわざ解説、ありがとうございます。 そして、お手をとらせてしまい、申し訳ありません。 まだまだ理解が不足しているようなので、もう少し勉強してみます。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

No.2の続きです 続き==============> <body> <div> <button onclick='creatSWF()'>開始</button> カウント<input type="text" id="count" value="0"> <button onclick='stopSWF()'>停止</button> </div> <div id="contener"> <div id="ytapiplayer"></div> </div> <script type="text/javascript" charset="utf-8"> <!-- var counter=0; swfobject.addLoadEvent(function(){ document.getElementById("count").value=counter; }); function creatSWF(){ play_url="http://www.youtube.com/v/IQUtXsIuBAU?f=videos&app=youtube_gdata"; var ytplayer = document.getElementById("ytplayer"); if(!ytplayer){ var ytapiplayer = document.getElementById("ytapiplayer"); if(!ytapiplayer){ var div = document.createElement("div"); div.setAttribute("id", "ytapiplayer"); document.getElementById("contener").appendChild(div); } swfobject.embedSWF(play_url+'&rel=0&autoplay=1&disablekb=1&egm=1'+ '&enablejsapi=1&playerapiid=ytplayer',"ytapiplayer", "250", "200", "8", null, null, {allowScriptAccess:"always"},{id:"ytplayer"}); }else{ ytplayer.stopVideo(); ytplayer.clearVideo(); swfobject.removeSWF('ytplayer'); creatSWF(); } } function onYouTubePlayerReady(){ // ytplayer = document.getElementById("ytplayer"); if(typeof(ytplayer)=="undefined" || typeof(ytplayer)=="function")ytplayer=document.getElementById("ytplayer"); ytplayer.addEventListener("onStateChange","on_ytplayer_StateChange"); } function on_ytplayer_StateChange(state){ if (state==0){ counter=counter+1; document.getElementById("count").value=counter; creatSWF(); } } function stopSWF(){ ytplayer.stopVideo(); ytplayer.clearVideo(); swfobject.removeSWF('ytplayer'); } // --> </script> </body> </html> ※play_url="http://www.youtube.com/v/IQUtXsIuBAU?f=videos&app=youtube_gdata"; が、ユーチューブサイトに登録されている動画の再生URIです。 ※Google("http://www.google.com/jsapi")からswfobject 2.2のAPIを使っています。 http://code.google.com/intl/ja/apis/youtube/js_api_reference.html

junroku
質問者

お礼

迅速なご対応をありがとうございます。 ただ、JavaScrptが勉強中ということもあって解析には時間がかかりそうです。 自分なりに理解できるように頑張りたいです。 また、再度ご質問させていただくかもしれませんが、宜しくお願い致します。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

No1です。作ってみました。WinXP+IE8+Excel2003 で動きました。 まずEXCELの方に準備したのは ユーザーフォーム(名前):Webform その中に、 ボタン(名前):StartButton ボタン(名前):StopButton テキストボックス(名前):countbox それに肝心の、WebBrowser(名前):WebBrowser1 です。WebBrowserの張り付け方は、 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9195.html なんかを参考に 下はフォームのソースコード(VBA)です。 Public objIE As Object Private Sub Startbutton_Click() countbox.Value = 0 Set objIE = WebForm.WebBrowser1 'IEを表示する objIE.Visible = True '下のURLをあなたのテストページのurlにしてください。 objIE.Navigate2 "http://hogehoge.fuga.net/Gtubetest.htm" Do While objIE.Busy = True DoEvents Loop Do While objIE.readyState <> 4 DoEvents Loop '開始 objIE.document.parentWindow.execScript "creatSWF()", "javascript" 'End If End Sub Private Sub StopBotton_Click() '停止 objIE.document.parentWindow.execScript "stopSWF()", "javascript" 'objIE.document.forms(1).Item("circle_distance").Value = ss_dist Do While objIE.Busy = True DoEvents Loop Do While objIE.readyState <> 4 DoEvents Loop countbox.Value = objIE.document.getElementById("count").Value End Sub 別途、workbookに Private Sub Workbook_Open() WebForm.Show vbModeless End Sub も入れておけばexcelを開いた時にフォームが表示されます。 次にWebpageの方です。例では http://hogehoge.fuga.net/Gtubetest.htm になっている。 javascriptを使います。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv="Expires" content="0" /> <title>YouTube Test</title> <style type="text/css"></style> <script src="http://www.google.com/jsapi"></script> <script> google.load("swfobject", "2.2"); </script> </head> <body> =====続く===>

junroku
質問者

お礼

Javascriptの導入方法が判らなかったので質問させていただきます。 objIE.document.parentWindow.execScript "creatSWF()", "javascript" objIE.document.parentWindow.execScript "stopSWF()", "javascript" 上記2か所でjavascriptの読み出しを行っていると思いますが、javascript本体(「javascriptを使います。」以降のソース)をどのファイルに張り付ければいいかがわかりませんでした。一応、「javascript」というファイル名で同じフォルダ内にファイルを作成しましたが、objIE.document.…の場所でエラーとなってしまいます。 お手数ですが、教えていただければ幸いです。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

実現する方法思いついたけど、そもそも計測の目的にかなうのかなあ? だってYouTubeの動画って、たとえ同じ環境で同じ動画を見ても、 いつも同じ時間で再生出来るとは限らないですよ。 単なるお遊びとしてなら解答作りますけど。

junroku
質問者

お礼

すみません、補足での入力をしてしましました。 是非ともお遊びでもかまいませんので、解答をいただければ幸いです。

junroku
質問者

補足

回答ありがとうございます。 複数のキャリア(携帯会社)の端末を利用しての比較測定となって、同じ場所・同じ時間帯に一斉にアクセスをかけるという試験手順なのです。 Youtubeが対象になっているのは、ユーザーが一番利用しているからということなのでしょうが、試験目的の詳細は自分にも判り兼ねているところがあります(汗) まー、めんどーで実りが少ない試験をツールで肩代わりできないかというのが本音なんですが(笑)

関連するQ&A

  • YouTube動画が勝手に止まる

    スマホでYouTubeを見ていると急に動画が止まり、再生ボタンを押しても再生されません。そのためそうなった都度にリロードして再生し直さなければならないのです。これの原因と対処法を教えてください。

  • YouTubeの動画が再生されなくてこまっています

    YouTubeの動画が再生されなくてこまっています。 再生しようとしても,【JavaScript がオフになっているか、古いバージョンの Adobe Flash Player を使用しています。最新の Flash Player を入手してください。】というエラーメッセージが出てくるばかりで,再生できません。 どうしたら解決できるでしょうか? ちなみに,本体はパナソニックCF-R7,WindowsVista(Business)32ビット機を使用しています。

  • youtube動画の連続再生ファイルを作りたいんですが・・

    教えてください。 環境はWin2000pro、CDドライブはコンボで、接続はCATVで3Mgbです。 趣味でYOUTUBEから音楽アーティストの動画を集めているのですが、 これを連続再生する方法を教えて頂けませんでしょうか。 本当はXP以上でDVDドライブのPCだといいのですが、経済的に今は上記の環境しかありません。 ネットカフェでDVDを焼くなどでなく、出来れば自宅でファイルとして作成したいのです。 youtube動画をメディアプレイヤーに入れたりする方法があるのでしょうか。 用途は音楽ジャンルによって、ファイル一つがDVDを再生したときのように連続再生されるように分けたいというものです。 素人ですので、出来るだけ簡潔な処理をお教え願えると幸いです。 よろしくお願い致します。

  • youtubeの動画が再生せず音楽のみが流れる

    先日購入したパソコンをインターネットに接続してyoutubeを見ようとして動画を再生したところ、音楽のみが再生して動画が再生しません。フラッシュプレイヤーをインストールしなおしたのですが、変わりませんでした。どうすれば普通に再生できるのでしょうか。

  • Youtubeの動画を見ようとしたけど見れなかった

    youtubeの動画を見ようとしたんですけど、 JavaScript がオフになっているか、古いバージョンの Adobe Flash Player を使用しています。最新の Flash Player を入手してください。 こういう文章が出て再生できませんでした。 プレイヤーはインストールしてるんです。 JavaScriptってオンにするにはどうすればいいんでしょうか?

  • youtubeの動画が見れなくなりました

    部屋の模様替えで、パソコンを移動してからのことです、それまで見れていた、youtubeの動画が見れなくなりました。 再生しようと動画を選択すると、JavaScript がオフになっているか、古いバージョンの Adobe Flash Player を使用しています。 最新の Flash Player を入手してください。 と出ます、Adobe Flash Playeのページにいき、ダウンロードのボタンをクリックしましたが、動画は見れるように鳴らず、うまくダウンロードできたのかも、わかりません。 JavaScript がオフ、になっているのかどうかにいたっては、パソコン知識ゼロに近い私には、なにやらわかりません。 youtube見るのが楽しみだったのに、悲しいです、この問題を解決するには、どうしたらよいでしょう、お解りの方いらっしゃいましたら、よろしくお教えください。

  • YouTubeの動画だけが再生出来ません。

    突然YouTube動画の再生ができなくなりました。インターネットエクスプローラーはバージョン11です。他のyahooやMSNなどのホームページの表示は出来るのでインターネットの接続には問題なさそうです。Youtubeのメニュー表示も問題なさそうです。 PCはLL750TSBです。 ※OKWaveより補足:「NEC 121ware :ソフトウェア」についての質問です

  • YouTubeの動画が突然見れなくなりました。

    こんばんは。久しぶりに質問させていただきます。 先日パソコンでYouTubeの動画を見ていたのですが、ある動画を見終わって次の動画を見ようとリンクをクリックしたところ、動画が表示されるところに「JavaScript がオフになっているか、古いバージョンの Adobe Flash Player を使用しています。最新の Flash Player を入手してください。」と表示されて再生できなくなりました。 しかしそれまでは普通に再生できていたし、Javaの設定も正常でFlash Player9も入っています。 一体どうすればよいのでしょうか?よろしくお願いいたします。

  • Youtubeの動画の再生が遅い

    パソコンは素人です。 5年間使っていたパソコン(windows vista)を買い替え、windows 7にしました。 今日接続ネットやメールを業者さんにしてもらって、今ネットをしているのですが、youtubeが非常に遅いです…。 動画が再生するまで何分もかかり、再生しても途中で止まりながらです。 動作が遅かったから新しいPCにしたのに、古いPCのが速いくらいなのですが…これって何か対策ありますか? ちなみに前のPCからは音楽データしか移行してません。

  • パソコンで再生している動画(Youtubeや動画再生ソフトで再生してい

    パソコンで再生している動画(Youtubeや動画再生ソフトで再生している動画など)を ネットワーク経由(テレビとPCを直接繋げずに)でテレビに表示させたいのですが、 良い方法はありますか?ちなみに、テレビにネットワークメディアプレイヤーは内臓されておりません。 HDMI端子があるので、 PC(無線LAN)ルーター(有線LAN)ネットワークメディアプレイヤー(HDMIケーブル)テレビ という接続を考えてますが、表示できますでしょうか? ネットワークメディアプレイヤーに接続されたHDDやPCに保存された動画や写真を見る事ができるのは わかりましたが、PCで再生されている動画(またはPCの画面)を見れるかどうかがわかりません。 分かる方、よろしくお願いいたします。

専門家に質問してみよう