- ベストアンサー
エクセルである数字になったら自動的に音声で知らせる
エクセル2007をつかっていますが、ある特定のセルがある数字以上(または以下)になったら音声で知らせる方法がわかりません。 読み上げ機能はツールバーの<読み上げ>をクリックしないと音声はでませんが、そういうクリックしないで、特定の数字になれば自動的に音声がでるようにしたいのです。 マーケットスピードのリアルスプレッドシートをつかっていますので、株価(セル)は常に変動しています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はい? ユーザーフォームなど使ってません。 回答したように、あなたの実際のシートにキチンと組み込めば、放っておいて何もしなくても勝手に喋ります。 実際のシートできちんと動作確認しているのですか?まだならやってください。テスト用のシートで試しているだけでは、うまく動作しない可能性が高いです。 といってもマーケットが動いてないと動作確認はできないと思いますが。 組み込み方を間違えないようにしてください。 それから言わずもがなですが、どこのセルを調べて何を喋らせたいのか、きちんとご自分の手で正しく改修してから使ってくださいね。 あぁ、それとも。 >タイマーかなにかである間隔毎に(たとえば1秒とか2秒とか)で作成しないとだめということになるのでしょうか? 1秒ごとにA1を調べて、2000を超えている間中、毎秒毎秒喋り続けさせたかったのですか? それならもっと簡単なプログラムになりますが、そういうのは無いだろうと勝手に判断して閾値を超えた時だけ喋ります。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
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
お礼
早速のお返事ありがとうございます。 わざわざプログラムまで書いていただき感謝です。 たしかに音声がでました。 しかし、これは ’ユーザーフォームの実行’(このプログラムの実行)をしないとこの命令は開始されないですよね。一度実行すれば、それっきり。 そうすればつねにこのプログラムが実行するように、タイマーかなにかである間隔毎に(たとえば1秒とか2秒とか)で作成しないとだめということになるのでしょうか? または、エクセルのセルになにか式をいれることによってできるものなのでしょうか?
お礼
何度も回答頂き恐縮です。 テストした時はマーケットが開いてなかったので、クリックしないと音声がでなませんでした。 今回実際マーケットで試すと、条件の数字になるたびに音声がでます。 こちらの未熟な対応でご迷惑をおかけしました。 希望通りのことができて、大変嬉しいです。 どうも、ありがとうございました。