プロが教えるわが家の防犯対策術!

エクセル2002を使っていますが、

入力規則を使って一定以上の値の入力があると
はじくように設定は出来ますが、その値が数式の計算結果の値ではじくようにするにはどうすれば良いでしょうか?

「はじく」とはダイアログボックスで警告表示が出現するようにしています。
入力規則以外の機能で「警告表示」が出せるまたは、該当するセル表示を変更するにはどうすればよいでしょうか?

A 回答 (6件)

該当するセル表示を変更する、でよければ、


「条件付き書式」でセルの背景色を変えるなどの設定ができますよ。
メニューの書式→条件付き書式 を見てみて下さい
    • good
    • 2

仮に計算式がA1に入っており、計算結果でA1が100以上になったら警告のメッセージを出し、入力を取り消します。

(入力欄も同じシート内とします)

以下の手順をためしてみてください。
ご希望の動きをすると思います。

1. 該当のシートのタブを右クリックし、[コードの表示]。
2. 出てきた所に、以下のコードを貼付けます。

Private Sub Worksheet_Calculate()
If Range("A1").Value >= 100 Then
MsgBox "規定外の値です!", vbCritical, "Σ( ̄ロ ̄lll)"
Application.Undo
End If
End Sub

3. 右上の × でExcelの画面に戻ります。

計算開始

この回答への補足

merlionXX様>
ご回答頂きまして、ありがとうございます。
追加しまして、お伺いしたいことがあります。

「100以上になったら警告」の「100」を任意のセルの値以上になったら警告を表示するようには出来るのでしょうか?

お願い致します<(_ _)>

補足日時:2006/09/05 18:48
    • good
    • 2

入力値の種類で


ユーザー設定を選んで
(入力規則のセルがA1、制限値のセルがC1だとすると)数式に
=A1<C1
    • good
    • 2

hie9さん、こんばんは。

merlionXXです。

>「100以上になったら警告」の「100」を任意のセルの値以上になったら警告を表示するようには出来るのでしょうか?

できますよ。
仮にC1セルの値以上になったらでしたら
If Range("A1").Value >= Range("C1").Value Then
としてみてくださいませ。
    • good
    • 0

merlionXX さんへ


Wendy02です。

余計なお世話かもしれませんが、

#2 のコードの Calculate イベントは、
Application.EnableEvents =False /Application.EnableEvents =True
で囲んだほうがよいのと、A1 の数式のエラーは、IsError か、On Error Goto で、マクロそのものを実行時エラーで停止させないほうがよいと思います。

EnableEvents は、既に、A1 が該当値になっている後に、取り付けた場合は、特に問題はないのですが、最初に該当値になってなくて、そのままイベントを実行してしまうと、Undo があるので、無限ループになる可能性があるのではないか、と思います。

ご気分を害されたらすみません。
    • good
    • 0
この回答へのお礼

hie9です。
Wendy02様、大変丁寧な補足ありがとうございました。
私にはサッパリわかりませんが、助かりました(^^)

ありがとうございました<(_ _)>
またよろしくお願いします。

お礼日時:2006/09/06 23:41

Wendy02さん、ご指摘ありがとうございました。


数式のエラーやVBAが後付になった場合で規定値が範囲外の可能性はまったく想定外でした。勉強になりました。

というわけでhie9さん、以下のように修正させてくださいませ。

Private Sub Worksheet_Calculate()
If IsError(Range("A1")) Then
MsgBox "式にエラーがあるのでは?", vbCritical, "( ̄□ ̄; ?"
Exit Sub
End If
If Range("A1").Value >= Range("C1").Value Then
MsgBox "規定外の値です!", vbCritical, "Σ( ̄ロ ̄lll)"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End Sub
    • good
    • 2
この回答へのお礼

hie9です。
merlionXX様、大変助かりました。
頭の中に描いていたのですが、出来なくて(^^ゞ

VBA等もっと精進しないといけないと感じました。

ありがとうございました<(_ _)>
また、よろしくお願いいたします。

お礼日時:2006/09/06 23:38

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

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