アプリ版:「スタンプのみでお礼する」機能のリリースについて

添付画像のように、各品物の単価変更推移みたいな表があり、その金額の変更幅がプラスマイナス10円以内でない箇所のセルを5秒間点滅させたり、その点滅を手動で停止させたりすることはできませんでしょうか?必要なプラグイン等があればそれらのインストール方法も教えて頂きたいです。
よろしくお願いいたします。

「Excelマクロである一定条件に当てはま」の質問画像

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

  • ご回答いただきまして、ありがとうございます。
    すいません、説明が間違っていました。
    各品名の前回の金額から+10もしくは-10を超えた場合にその金額のセルを5秒間点滅させることをしたいです。

    「Excelマクロである一定条件に当てはま」の補足画像1
    No.1の回答に寄せられた補足コメントです。 補足日時:2023/09/28 17:23

A 回答 (1件)

こんにちは



条件がイマイチはっきりしないので、以下は参考までのアイデアとサンプルです。
他にもいろいろな方法や考え方があると思いますので、あくまでもご参考までに。

・B:D列のセルに入力すると、該当するセルが赤色で点滅します。
 (3回に設定してあります)
・セルの値は「数値」になっており、表示単位等は「セルの書式設定」
 を利用して表示しているものと仮定しています。
・条件付き書式を利用していますので、B:D列には他の条件付き書式は
 設定されていないものと仮定しています。
・「手動で停止」がどのような操作を想定しているのか不明なので、
 対応していません。
アイデアのみですので、後はお好きにどうぞ。


※ 標準モジュールに以下をコピペ。

Private mode As Integer

Sub changeProc()
Const f = "=(IFERROR(ABS(B1-B2)>10,0)*ISNUMBER(B1)+" _
& "IFERROR(ABS(B2-B3)>10,0)*ISNUMBER(B3))*ISNUMBER(B2)"

With Range("B2:D2").Resize(Rows.Count - 2)
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=f
.FormatConditions(1).Interior.color = vbRed
End With

mode = 6
Call blinker
End Sub

Sub blinker()
Dim col
If Range("B2").FormatConditions.Count = 0 Then Exit Sub
mode = mode - 1
If (mode Mod 2) = 0 Then col = xlNone Else col = vbRed
Range("B2").FormatConditions(1).Interior.color = col

DoEvents
Application.Wait [Now()] + 1 / 864000
DoEvents
Application.Wait [Now()] + 1 / 864000
DoEvents
If mode > 0 Then Call blinker
End Sub


※ その上で、当該シートのシートモジュールに以下をコピペします。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B2:D2").Resize(Rows.Count - 2)) Is Nothing Then Exit Sub
Call changeProc
End Sub
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご回答いただきまして、ありがとうございます。
すいません、説明が間違っていました。
各品名の前回の金額から+10もしくは-10を超えた場合にその金額のセルを5秒間点滅させることをしたいです。

日付   りんご   バナナ みかん
1週目 70   100 50
2週目 75   98 65
3週目 85 95 60
4週目 80 85 50
5週目 75 90 55

お礼日時:2023/09/28 17:18

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

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


このQ&Aを見た人がよく見るQ&A