すべてのカテゴリ » インターネット・パソコン » ソフトウェア » 使い方・不具合

質問

終了

エクセルでセルに入れたときにチェックすることはできますか?
いまD3セルに二桁の数字を入れるようになっています。
ここが未入力だったり二桁の数字じゃなかった時に、エラーだとわかるようにしたいのですが、何か良い方法はあるでしょうか?

  • 質問者:匿名希望
  • 質問日時:2010-01-19 13:27:27
  • 0

マクロを作ってみました。
以下のコードを対象シートのマクロに記入して下さい。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
With ActiveSheet.Cells(3, 4)
If (Not ((Len(.Value) = 2) And (IsNumeric(.Value)))) Then
.Interior.ColorIndex = 3
Else
.Interior.ColorIndex = xlNone
End If
End With
Application.ScreenUpdating = True
End Sub

===補足===
マクロの手順は下記の通りです。
 1.メニューの[ツール]-[マクロ]-[Visual Basic Editor]を選択する。
 2.対象となるシート(D3のチェックを行うシート)をダブルクリックする。
 3.表示されたウィンドウに、マクロのコードをコピーする。


回答したマクロの内容に不具合がありましたので、以下の修正版を利用して下さい。
("+1"や"-1"が正常値として扱われる不具合を修正しました。)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
With ActiveSheet.Cells(3, 4)
If (IsNumeric(.Value) And (.Value = Format(.Value, "00"))) Then
.Interior.ColorIndex = xlNone
Else
.Interior.ColorIndex = 3
End If
End With
Application.ScreenUpdating = True
End Sub

  • 回答者:ユラユラ (質問から4時間後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

「対象シートのマクロに記入」というのがわかりません。
どうやればいいか教えてください。

ありがとうございました。
無事できました。

並び替え:

たびたびすいません。
式が違ってたので訂正します。

私は2003を使用しています。

D3のセルに直接数値を入力されるということでよいでしょうか。
二桁の数字は10~99ということを前提で

1.入力規則でする方法
 D3のセル→データ→入力規則で
  設定・・・・・整数
  データ・・・・次の値の間
  最小値・・・10
  最大値・・・99
  空白を無視するのチェックをはずす

  エラーメッセージのタブで無効なデータが入力されたらメッセージを表示するに
  チェックが入っていると思います。
  必要であればスタイル・タイトル・エラーメッセージを設定・入力してください。

  この方法で10~99の数値しか入力できなくなると思います。

2.条件付書式でする方法
 D3のセル→書式→条件付書式で
  条件(1)セルの値が 次の値間以外 10 99
  書式ボタン→パターン→セルの網掛けでセルに色をつける色を選択

  この方法の場合空欄もしくは10~99の数値以外の入力があった場合
  セルに色がつくため入力落ちがひと目でわかると思います。

私的には2の方法がおすすめです。

もし求めていることが違ったらごめんなさい。
===補足===
00~09も入力するとの事ですが
文字列の設定で入力されるのでしょうか?
ユーザー定義で種類が00とかの設定なのでしょうか?

セルの設定が文字列でなのであれば
1.の場合
 入力値の種類をユーザー設定にして
 数式のところに
 =AND(ISNUMBER(--D3*1),LEN(D3)=2)
 と入力してください

2.の場合は
 条件(1)数式が =OR(ISERROR(--D3*1),LEN(D3)<>2)
 として書式ボタンで書式の設定をしてください


セルの書式設定が文字列以外なら私はお役に立てなさそうです。

回答者:2003 (質問から3時間後)
0 .この回答の満足度..お礼コメントごめんなさい。
二桁の数値ではなくて二桁の数字なんです。
だから、00とか01とかもあり得るんです。
00〜09もOKとなると、どうなるでしょうか?

  • 回答者:2003 (質問から24時間後)
  • 1
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。
お礼コメント

教えていただいたやり方だと、+1とか-1がエラーにはなりませんでした。

http://maglog.jp/excel/Article286392.html
上記のような事でいいでしょうか。
一つのセルに計算式(関数)を入力し、後は連続セル内コピーをかければ、そのセルのみの未入力や数字エラーの利用が可能です。

===補足===
上記サイトの中ほどの計算式見ましたか?
もう設定が済んでいる上での、追加でもできる計算式でエラーが出せる式です。
上記でなく下記サイトのようなこと?
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/if_is.htm#if
でなければ、他のIF関数で検索してください。

  • 回答者:匿名 (質問から4時間後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。
お礼コメント

ごめんなさい、「上記のような事」がよくわかりません。
具体的にどういった計算式を入れて、どうすればいいとお考えでしょうか?

参考サイトの計算式などを見てもわかりませんでした。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る