dポイントプレゼントキャンペーン実施中!

エクセルでVBAを使用し条件を満たした場合に音を鳴らしたいです。
A1~A100セルに外部からデータを取得し自動計算された計算結果が降順にソートされるようになっています。
そこでA列に表示された値が3%以上になった場合にBeep音を鳴らしたいです。

A1 5%
A2 4%
A3 3%
A4 2%→この値が3%になった場合Beep音を鳴らす。

A4セルに直接入力した場合ではなくソートされた値が3%以上になった場合に鳴らしたいです。
また、A1~A100の全てのセルに対して音が出る設定にしたいです。

どなたか教えて頂けないでしょうか?

質問者からの補足コメント

  • 楽天RSSという株価を自動取得するプログラムを使用し、取得したデータをエクセル上でSORT関数を使いリアルタイムにソートしています。
    ※この楽天RSSというプログラム自体には音を鳴らす機能はありません。

    既に条件付き書式で3%以上になったら色が変化するようにしてあるのですが、画面を見続けるのがしんどいのでソート結果が3%以上になったらリアルタイムに音を出したいです。

    何卒、宜しくお願いします。

      補足日時:2020/10/08 17:52

A 回答 (3件)

No2です



タイミングだけの問題なので、
>株価を自動取得するプログラムを使用し、~
であるなら、そのプログラムで判断するのが一番簡単でしょう。

>SORT関数を利用しリアルタイムにソートしています。
とのことなので、別のセル範囲に元データがあるのでしょうから、ソートなどしなくても、出力した最小値をチェックするだけで判断できるものと想像します。


あるいは、
>1秒ごとにソートされるデータ~
であるなら、シート上のどこかにA列の最小値を表示する仕組みにしておいて、マクロで一定時間毎にそのセルをチェックするようにしておいてもよろしいかと思います。

しかしながら、音が鳴って画面を見ても、その時には既に画面は上書きされている可能性が高そうに思いますけれど・・・
    • good
    • 0

こんにちは



利用方法や状況がまったくわからないので、どのようなタイミングで判定すべきなのかがよくわかりませんけれど・・・

トリガーとなるはずの、
>自動入力されたものがソートされたときに
に関する情報が何も無いのでなんともわかりませんが、「自動」というからには何らかのプログラムで処理しているものと想像します。
ですので、そちらでそのまま処理してしまえば簡単ではないかと思われます。

処理を完全に切り離して考えようとすると、A列の値に「変化があるか否か、ソートされているか否か」を常に監視することになりますが、不可能ではないにしても、無駄な処理である上にいたずらに負荷ばかり増大させることになりかねません。

一方で、音を発したい時には、値の入力やソートの処理がされないという条件であるならば、マクロを利用して、open時のイベントでシートの状態をチェックしBEEP音を鳴らすことは比較的簡単にできるものと思います。

とはいえ、
>マクロの知識が乏しく
という状態のにょうなので、やさしくはないかも知れません。
No1様がご紹介のdllを利用するのにも、単なるマクロよりは少しだけ知識が必要になると思いますので。
(まぁ、書いてあるままに記述すればできますけれど)


まったく別の方法になってしまいますが、エクセル本来の機能である「条件付き書式」を利用して、
『A列の最小値が3%以上であれば、A列全体(別のセル範囲でも良い)に色を付ける』
などのように「表示で示す方式」に切り替えてしまうのが、一番簡単ではないかと思います。

上記のままだとソートされていなくても色がついてしまいますが、条件に「ソートされているか否か」を加えることも不可能ではありません。
少し、複雑になってしまいますが、
 SUMPRODUCT(COUNTIF(OFFSET($A$1,,,ROW(A1:A100)),">"&A1:A100)*1)=0
のような条件を加えれば、ソート済みか否かの判定も可能になるでしょう。
空きセルがないことが保証されているなら、もう少し簡単な式で、
 SUMPRODUCT((A1:A100>A2:A101)*(A2:A101<>""))=0
でも判定は可能と思います。

条件付き書式であれば、どのようなタイミングでも即時に反映されると思います。
    • good
    • 0
この回答へのお礼

楽天RSSという株価情報を自動取得するプログラムからデータを取得し、エクセルでSORT関数を利用しリアルタイムにソートしています。
条件付き書式で色を変えるようには既にしており、音を出したい目的としては常に画面を見続けるのがしんどいからです。
1秒ごとにソートされるデータに対してソート結果が3%以上になった場合にリアルタイムで音を出したいです。
難しそうでしょうか・・・

お礼日時:2020/10/08 17:47
    • good
    • 0
この回答へのお礼

すみません。こちら確認しました場マクロの知識が乏しく、直接入力ではなく自動入力されたものがソートされたときに音を鳴らす方法が分からず質問しました。申し訳ございません。

お礼日時:2020/10/08 11:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています