• ベストアンサー

エクセルである数字になったら自動的に音声で知らせる

エクセル2007をつかっていますが、ある特定のセルがある数字以上(または以下)になったら音声で知らせる方法がわかりません。 読み上げ機能はツールバーの<読み上げ>をクリックしないと音声はでませんが、そういうクリックしないで、特定の数字になれば自動的に音声がでるようにしたいのです。 マーケットスピードのリアルスプレッドシートをつかっていますので、株価(セル)は常に変動しています。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

はい? ユーザーフォームなど使ってません。 回答したように、あなたの実際のシートにキチンと組み込めば、放っておいて何もしなくても勝手に喋ります。 実際のシートできちんと動作確認しているのですか?まだならやってください。テスト用のシートで試しているだけでは、うまく動作しない可能性が高いです。 といってもマーケットが動いてないと動作確認はできないと思いますが。 組み込み方を間違えないようにしてください。 それから言わずもがなですが、どこのセルを調べて何を喋らせたいのか、きちんとご自分の手で正しく改修してから使ってくださいね。 あぁ、それとも。 >タイマーかなにかである間隔毎に(たとえば1秒とか2秒とか)で作成しないとだめということになるのでしょうか? 1秒ごとにA1を調べて、2000を超えている間中、毎秒毎秒喋り続けさせたかったのですか? それならもっと簡単なプログラムになりますが、そういうのは無いだろうと勝手に判断して閾値を超えた時だけ喋ります。

millenia2
質問者

お礼

何度も回答頂き恐縮です。 テストした時はマーケットが開いてなかったので、クリックしないと音声がでなませんでした。 今回実際マーケットで試すと、条件の数字になるたびに音声がでます。 こちらの未熟な対応でご迷惑をおかけしました。 希望通りのことができて、大変嬉しいです。 どうも、ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

A1セルが2000以上になったら"A1 over 2000"と喋ります A2セルが1200以下になったら"A2 under 1200"と喋ります 手順: シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける dim flgA1 As boolean dim flgA2 As boolean private sub Worksheet_Calculate()  if range("A1") >= 2000 Then   if flgA1 = false Then    application.speech.speak "A1 over 2000"    flgA1 = true   else    flgA1 = true   end if  else   flgA1 = false  end if  if range("A2") <= 1200 Then  if flgA2 = false Then   application.speech.speak "A2 under 1200"  flgA2 = true  else   flgA2 = true   end if  else   flgA2 = false  end if end Sub

millenia2
質問者

お礼

早速のお返事ありがとうございます。 わざわざプログラムまで書いていただき感謝です。 たしかに音声がでました。 しかし、これは ’ユーザーフォームの実行’(このプログラムの実行)をしないとこの命令は開始されないですよね。一度実行すれば、それっきり。 そうすればつねにこのプログラムが実行するように、タイマーかなにかである間隔毎に(たとえば1秒とか2秒とか)で作成しないとだめということになるのでしょうか? または、エクセルのセルになにか式をいれることによってできるものなのでしょうか?

関連するQ&A