Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12078 / 13645 ツリー ←次へ | 前へ→

【12510】入力時に小数点3位以下を入力させない方法について SHOW 04/4/6(火) 16:10 質問
【12513】Re:入力時に小数点3位以下を入力させない... Asaki 04/4/6(火) 16:29 回答
【12514】Re:入力時に小数点3位以下を入力させない... ごんぼほり 04/4/6(火) 16:35 回答
【12520】Re:入力時に小数点3位以下を入力させない... SHOW 04/4/6(火) 17:46 お礼

【12510】入力時に小数点3位以下を入力させない方...
質問  SHOW  - 04/4/6(火) 16:10 -

引用なし
パスワード
   いつも、閲覧させていただいています。
本件も、入力規則で息詰まってしまったので、
どなたか、救済お願いします。

普通にデータ(D)で入力規則の設定が出来ますよね?
現在、自分は小数点第2位までの入力が出来るような入力規則を
設定したいのですが、何かよい方法ありますかね?
それとともに、1000未満999以上という規則も設定したいのです

で、設定方法がいまいちでしたので、マクロでシート全体に小数点2位以下の
入力があったらとりあえずメッセージを出すようなものを組んでみようと
思ったのですが、うまくいきませんでした。


稚拙ですが、こんなマクロにしてみました。
値を確定する時に、アクティブなセルを変更されてしまうというのが盲点でした。
で、入力の際、必ず一定の方向に入力するわけでもないので・・・

Private Sub Worksheet_Change(ByVal Target As Range)
X = ActiveCell.Value   'ココが、以前のセルならばよいのですが・・・
If X - Int(X * 10) / 10 > 0 Then
MsgBox ("数量確認")
End If
End Sub

【12513】Re:入力時に小数点3位以下を入力させな...
回答  Asaki  - 04/4/6(火) 16:29 -

引用なし
パスワード
   こんにちは。

>入力規則では一括りにならないのですね。
まず、同じ内容ではありませんから、後から検索されることを考えて、別のほうが良いかと。
あと、誰が解決にするのか、という問題も発生しそうですし。

まず、シートのイベントで判定するほうのサンプルを作ってみました。
面倒なので、常に1セルしか変更されないとします。
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not IsNumeric(Target.Value) Then Exit Sub
  Select Case True
    Case Target.Value >= 1000
      MsgBox "1000以上"
    Case Target.Value < 999
      MsgBox "999未満"
    Case InStr(Target.Value, ".") > 0
      If Len(Target.Value) > InStr(Target.Value, ".") + 2 Then
        MsgBox "小数点以下の桁数オーバー"
      End If
    Case Else
      MsgBox "OK"
  End Select
End Sub

>値を確定する時に、アクティブなセルを変更されてしまうというのが盲点でした。
こういう場合は、ActiveCell ではなく Target を使います。

【12514】Re:入力時に小数点3位以下を入力させな...
回答  ごんぼほり  - 04/4/6(火) 16:35 -

引用なし
パスワード
   こんにちわ

入力規則でこんな感じで設定してみてはどうでしょうか。
=AND((A1*100)-INT(A1*100)=0,A1>=999,A1<1000)

誤差対策はしてません。

【12520】Re:入力時に小数点3位以下を入力させな...
お礼  SHOW  - 04/4/6(火) 17:46 -

引用なし
パスワード
   早い返答ありがとうございます。

▼Asakiさん
結論から言いますと、Targetで全て解決いたしました。
ありがとうございます^^;

▼ごんぼほりさん
対象セルが多いので、この方法は疲れるということで
せっかくの助言ですが、、、申し訳ないです。

12078 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free