[[20230128111942]] 『入力規則を使って、現在の値より小さい値を入力で』(Ness) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力規則を使って、現在の値より小さい値を入力できなくしたい。』(Ness)

要約の通りです。

例:進捗率[50]%

[50]が入力されているセルの数字を手入力で頻繁に書き換えますが、
ミス防止のため、50(現在値)以上の値しか入力できないようにしたいのです。
少しでも簡潔に、VBAなしで実現したいのですが、お知恵を拝借できませんでしょうか。
循環参照に近い形で入力規則を設定したところ、判定の段階で全ての値が入力値に更新されてしまっているらしく、例でいえば49という数値も入力できてしまいました。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


データ → データの入力規則 → 設定 → 入力値の種類【 整数 】

データ【 次の値以上 】 最小値【 50 】

(三輪車) 2023/01/28(土) 12:01:52


 これって例えば現在50が入っていれば50以上の入力で例えば60と入力されたら次は60以上しか入力されないようにしたいということだろうか?
(ねむねむ) 2023/01/28(土) 12:07:10

三輪車さん、回答ありがとうございます。
ねむねむさん、おっしゃる通りです。
(Ness) 2023/01/28(土) 13:06:06

あげます。
良かったらお力添えくださいませ。
(Ness) 2023/02/04(土) 15:21:55

現在の値を常に基準にするんですか?
入力規則だけでは無理でしょうね。

隣のセルに基準値を設けて、
数式で、入力セル>=基準値セル といった条件を設定することはできるが、
基準値を更新することはできない。
予め 基準値セル=入力セル などとしてしまうと、常に条件を満たすことになってしまう。(質問者さんの記載どおり)

上記の条件で入力規則をしておき、入力があったら、基準値の値を自動更新する
Changeイベントプロシージャを書けば可能は可能。
でも、VBAなしでと、必要なものを使っちゃだめというんだから、あきらめるしかないですな。

(abc) 2023/02/04(土) 16:21:02


>あげます。
動いう意味。
(わからん) 2023/02/04(土) 17:26:54

 >動いう意味。

 こういうことかと。

http://www.jyoukyoutools.com/?p=1119
(MK) 2023/02/04(土) 17:45:28


昔はサルベージ行為という言い方もありました。
いずれにせよ、お行儀の悪い行為です。
(MK) 2023/02/04(土) 17:47:44

abcさん、丁寧に教えていただきありがとうございました。
マクロを使う、仕様を見直すなど、別の手段での実現を考えます。

MKさん、マナー違反とは知らず大変失礼いたしました。
(Ness) 2023/02/05(日) 15:26:46


もう見てないかもしれませんが。
VBAの例です。知恵袋の回答を参考にしました。
セルはA1固定です。

 Private Sub Worksheet_Change(ByVal Target As Range)
     Dim A, B
     If Target.Address(0, 0) <> "A1" Then Exit Sub
     A = Target
     Application.EnableEvents = False
     Application.Undo
     If IsNumeric(A) = False Then
         MsgBox "数字しか入力できません", vbOKOnly + vbExclamation
         Application.EnableEvents = True
         Exit Sub
     End If
     B = Target
     If A <= B Then
         MsgBox B & "以下の数字は入力できません", vbOKOnly + vbExclamation
     Else
         Target = A
     End If
     Application.EnableEvents = True
 End Sub
(フォーキー) 2023/02/05(日) 18:47:06

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.