プロが教える店舗&オフィスのセキュリティ対策術

標準モジュールに

Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

を入れ、シート1で以下のコードを使用しています。

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("B2").Value > Range("B5").Value Then


Call BeepAPI(0, 0)

Else

Call BeepAPI(2000, 90)
Call BeepAPI(2000, 90)
Call BeepAPI(2000, 90)

End If
End Sub

セルB2の規定値よりセルB5の入力値が大きい場合、ビープ音が鳴ります。

これに最小値・最大値の範囲を設け、入力値が範囲を超えたらビープ音が鳴るように
し、更に項目を1つを増やしたいのです。


A2→「規定値」 
A3→「最小値」
A4→「最大値」 
A5→「入力値」

B2→100
B3→100
B4→110
B5→

C2→200
C3→199.95
C4→220
C5→

セルB5・C5に入力します。B2~B4・C2~C4は基本固定ですが変更できるようにしたいです。
コードの改善をお願いできませんでしょうか?
宜しくお願い致します。

A 回答 (1件)

こんにちは!



規定値が何のためにあるのかが判らないのですが・・・
要するに5行目入力値が最小値~最大値の範囲を超えた場合に
ビープ音を鳴らしたい!というコトですよね。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim i As Long
 If Intersect(Target, Range("B5:C5")) Is Nothing Or Target.Count > 1 Then Exit Sub
  With Target
   If .Value < Cells(3, .Column) Or .Value > Cells(4, .Column) Then
    For i = 1 To 3
     Call BeepAPI(2000, 90)
    Next i
   End If
  End With
End Sub

こんな感じのコトをしたいのでしょうか?

見当違いならごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます!
私がやりたかったことはまさにこれです!

お礼日時:2020/10/16 06:50

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