• ベストアンサー

エクセルにスクリプトを貼り付けることはできますか。

いろいろ調べてみましたが、わかりません。ご存知の方、お助けください。 出勤簿をエクセルで作っています。ワークシートにjavascriptで作られた時計を貼り付けたいのですが、やり方がわからず困っております。 この方面に詳しい方、是非共ご教授下さい。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

こんばんは。#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

oldhammer
質問者

補足

こんにちは。 ご回答ありがとうございます。 具体的なコードまで頂き、恐縮です。 たいへん参考になりました。また、考え方のヒントにもなりました。 確かに、KenKen_SP様のコードを丸々コピーすると、デジタル時計が動きますが、コードを編集して、目的のコードにすると動きません。 インターネットで、色々検索してみましたが、もやもやした頭がすっきりする様なコンテンツは見つかりませんでした。 NHKブログの時計を張付けたいのですが、もしよろしければ、引続きご教授戴ければ幸いに存じます。 宜しくお願いします。

その他の回答 (4)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

んー > NHKブログの時計を張付けたいのですが これって利用登録が必要みたいですし、利用規定からみて Excel に 貼り付けて使っても大丈夫なのだろうか? ...と思いますので、すみませんがそのものズバリの回答はできません。 可能かどうかだけ回答しておきますが、#4 のコードを応用することで 可能だと思います。 ちなみに、これは JavaScript ではなく、Flash ですよ。 ヒントは Html ソースをよーく見ることです。 *.swf

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。 WebBrowser コントロールをシートに貼り付けて、そこに表示 すればよろしいかと思います。 JavaScript であろうと Flash であろうとブラウザで表示 できるものはほぼ大丈夫ですよ。 過去に実験したことがあります。

oldhammer
質問者

補足

こんにちは。 ご回答ありがとうございます。 WebBrowserコントロールもやってみましたが、書き方が悪いのか、うまくいきません。もしよろしければ、具体的なコードをご教授戴けますか。よろしくお願いします。 Sheet1.WebBrowser1.Navigate(" url ")でやると このオブジェクトはこのプロパティを持っていません。 となります。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 「javascriptで作られた時計」というものは、どんなものですか。 VBAにまったく違うコードですが、時計(時刻表示の変わるもの)は再現できるのですが、やってみると、きちんと作ったはずなのに、場合によって暴走することがあります。 単に、タイムスタンプだったら、マクロが可能ですが、出勤簿として不特定多数の人に使わせるには、よほど、作りこまないとダメかもしれません。

oldhammer
質問者

補足

こんにちは。 張付けたい時計はNHKブログの時計です。urlは http://www.nhk.or.jp/lab-blog/02/999.html です。 この時計を張付けたいのですけれど。 宜しくお願いします。

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

以下のURLを参考にしてみてください。   http://phpspot.org/blog/archives/2006/09/javascriptexcel.html 逆の発想になるかと思いますが・・・

oldhammer
質問者

お礼

ご回答ありがとうございます。 しかし、この場合逆では内容を満たせません。 ありがとうございました。

関連するQ&A