- ベストアンサー
エクセルにスクリプトを貼り付けることはできますか。
いろいろ調べてみましたが、わかりません。ご存知の方、お助けください。 出勤簿をエクセルで作っています。ワークシートにjavascriptで作られた時計を貼り付けたいのですが、やり方がわからず困っております。 この方面に詳しい方、是非共ご教授下さい。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。#3 です。 適当に書いてみたらそれなりに動いたので。 1. [表示]-[ツールバー]-[コントロール ツールボックス]をクリックし、 さらに [コントロールの選択](スパナとトンカチのアイコン)をクリック 2. 1. で表示されたリストから Microsoft WebBrowser を選ぶ 3. Sheet1 に WebBrowser コントロールを貼りつける 4. ThisWorkbook モジュールに下記コードをコピペ 5. ブックを保存し、開きなおす この方法の利点は、別プロセスで JavaScript が実行されますので、Excel の CPU 使用率はそれほど増えませんし、セルの編集モード中でも時計は 止まりません。 なお、細かい部分の作りこみまではやってません。ご参考までに。 Private Sub Workbook_Open() ' // JavaScript による時計を WebBrowser コントロールに表示(例) Dim wb As SHDocVw.WebBrowser Set wb = Worksheets("Sheet1").OLEObjects("WebBrowser1").Object wb.Navigate2 "about:blank" Do While wb.ReadyState <> READYSTATE_COMPLETE DoEvents Loop With wb.Document .writeln "<html><head>" .writeln "<meta http-equiv='Content-Language' content='ja'>" .writeln "<meta http-equiv='Content-Type' content='text/html; charset=Shift_Jis'>" .writeln "</head>" .writeln "<script type='text/javascript'>" .writeln "function updateClock() {" .writeln " var now = new Date();" .writeln " CLOCK.innerHTML = now.toLocaleString();" .writeln " setTimeout('updateClock()', 1000);" .writeln "}" .writeln "</script>" ' // 一応右クリックも禁止にしてみた .writeln "<body onLoad='updateClock()' oncontextmenu='return false'>" .writeln " <span id=CLOCK><!--時刻--></span>" .writeln "</body>" .writeln "</html>" End With wb.Refresh Set wb = Nothing End Sub
その他の回答 (4)
- KenKen_SP
- ベストアンサー率62% (785/1258)
んー > NHKブログの時計を張付けたいのですが これって利用登録が必要みたいですし、利用規定からみて Excel に 貼り付けて使っても大丈夫なのだろうか? ...と思いますので、すみませんがそのものズバリの回答はできません。 可能かどうかだけ回答しておきますが、#4 のコードを応用することで 可能だと思います。 ちなみに、これは JavaScript ではなく、Flash ですよ。 ヒントは Html ソースをよーく見ることです。 *.swf
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 WebBrowser コントロールをシートに貼り付けて、そこに表示 すればよろしいかと思います。 JavaScript であろうと Flash であろうとブラウザで表示 できるものはほぼ大丈夫ですよ。 過去に実験したことがあります。
補足
こんにちは。 ご回答ありがとうございます。 WebBrowserコントロールもやってみましたが、書き方が悪いのか、うまくいきません。もしよろしければ、具体的なコードをご教授戴けますか。よろしくお願いします。 Sheet1.WebBrowser1.Navigate(" url ")でやると このオブジェクトはこのプロパティを持っていません。 となります。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 「javascriptで作られた時計」というものは、どんなものですか。 VBAにまったく違うコードですが、時計(時刻表示の変わるもの)は再現できるのですが、やってみると、きちんと作ったはずなのに、場合によって暴走することがあります。 単に、タイムスタンプだったら、マクロが可能ですが、出勤簿として不特定多数の人に使わせるには、よほど、作りこまないとダメかもしれません。
補足
こんにちは。 張付けたい時計はNHKブログの時計です。urlは http://www.nhk.or.jp/lab-blog/02/999.html です。 この時計を張付けたいのですけれど。 宜しくお願いします。
- jo-zen
- ベストアンサー率42% (848/1995)
以下のURLを参考にしてみてください。 http://phpspot.org/blog/archives/2006/09/javascriptexcel.html 逆の発想になるかと思いますが・・・
お礼
ご回答ありがとうございます。 しかし、この場合逆では内容を満たせません。 ありがとうございました。
補足
こんにちは。 ご回答ありがとうございます。 具体的なコードまで頂き、恐縮です。 たいへん参考になりました。また、考え方のヒントにもなりました。 確かに、KenKen_SP様のコードを丸々コピーすると、デジタル時計が動きますが、コードを編集して、目的のコードにすると動きません。 インターネットで、色々検索してみましたが、もやもやした頭がすっきりする様なコンテンツは見つかりませんでした。 NHKブログの時計を張付けたいのですが、もしよろしければ、引続きご教授戴ければ幸いに存じます。 宜しくお願いします。