- 締切済み
エクセル、条件を満たしたら音を鳴らす方法教えて下さい
エクセルで、セルの値が、予め設定した一定の条件に 合致した時に、音を鳴らして知らせたりする事は 可能でしょうか?また、どこのセルが合致したのかを一瞬で探し当てる事ができるような方法がありましたら教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>予め設定した一定の条件に合致した時に これは下記が考えられるが (1)ある単独セル、たとえばA3が100以上の数が入力されたら即座に (2)諸セルの合計をあるセルに出してあって、その値が20(1例)を超えたら即座に (3)「どこのセルが合致したのかを一瞬で探し当・・」を読むと チェックするボタンでも押したとき、過去入力データセルを全て 一斉に300を超えてないかチェックする。 (4)「どこのセルが合致したのかを一瞬で探し当てる事ができるような方法がありましたら」の部分を読むと 音は出ないが、 条件付つき書式 入力規則 などで対処できることではないかとも思う。 >音を鳴らして知らせたりする事 ここのOKWAVEの質問にもほとんど出ないことや、自分の狭い仕事の経験からは、音は余り使わないように思うが、どうして「音を鳴らす」希望になったのですか。セルに色をつけるなどの方が、安定性があるように思う。また回りの人にうるさいし、聞き漏らすとおしまいだし。 音を出すのは (A)Beepステートメント (B)API関数 とあるようです。(A)は回答が出たので、上記でいう(2)の場合の例 A10に=SUM(A1:A9)を入れておきます。 前もって、標準モジュールに下記API関数を貼り付けておいてください Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long そしてシートのモジュールに下記を貼り付ける。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then If Range("A10") > 20 Then Call Beep(2000, 500) End If End If End Sub A1:A9にデータを入れていって、A10セルの値が合計2以上になると、音が鳴りましたが。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
簡単には、 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Value < 0 Then Beep End If End Sub みたいな感じですかね。 上記の場合、セルに入力がされて値が変更されたということだから セルに合致したのは入力しているセルにほかならないから探す必要はありません。 そういう意味では、多分、私は、質問者の意図を勘違いしているのだと思います。 条件付き書式を設定しておくことで、ある条件に合致したセルの塗りつぶし色を変えたりということができます。 それで、条件に合致したセルを見つけられると思います。 勘違いコメントだったらすみません
補足
ご教授ありがとうございます。 上記の通り実施してみたら、音が出ました。 複数のセルを対象にする場合、どのように記述すれば 宜しいでしょうか? 例えば、D列1行目から、D列10行目までの値が -2.5%以下の表示があった場合に音を鳴らしたいのですが。(D1~D10の値は,計算された数値が%で表示されるように指定してあります。)