• 締切済み

Excel2007で入力規則ユーザ定義の方法

入力規則で、数字とカンマだけを許容したいのですが、どのような数式を書けばよいのでしょうか。 具体的には「3,5」「6,10,12,17」などの値が入力される予定です。 数字は1~25まで許したいです。 また、カンマは「,,」などの二度打ちも排除されるようにしたいのですが可能でしょうか。 どうぞ宜しくお願いいたします。

みんなの回答

回答No.5

No.4です。No.4では、入力規則の「ユーザー定義」に数式を入力すると説明しましたが、次のようにしても差し支えありません。入力規則ダイアログで、「入力値の種類」を「整数」あるいは「小数点数」に、「データ」を「次の値の間」に、「最小値」を「1」に、「最大値」を「25」にそれぞれ指定し、OKします。失礼しました。

回答No.4

ご質問の内容だと難しいのですが、こんな手法なら簡単です。つまり、A1:D1のセル範囲に「6」、「10」、「12」、「17」を入力すると、E1セルに「6,10,12,17」が表示されるようにしておくことです。A1:D1に入力規則を設定します。 1.A1:D1への入力規則を「1~25の整数」のみとするため、「ユーザー定義」に次式を入力 =(mod(a1,1)=0)*(1<=a1)*(a1<=25) ※小数の入力も許す場合は、「(mod(a1,1)=0)*」を削除 2.E1セルに次式を入力 =a1&if(b1,","&b1,)&if(c1,","&c1,)&if(d1,","&d1,) 3.A1:D1に数値を入力。ただし、E1に表示される数列中の「,」の位置の関係があるので、少なくともA1セルには必ず入力することとする。他のセルはどこが空白でもオッケー。ということは、A~D列の4列のみではなくて、10列でも20列でも用意しておくことができるということ。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

マクロ(VBA)でないと難しいと思います。 対象シートタブ上で右クリック→コードの表示→サンプルコード貼り付けてお試しください。 因みに入力範囲はA列のみとしてしています。 Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, wk, cel For Each cel In Target If cel.Column <> 1 Or cel.Value = "" Then Exit Sub wk = Split(cel.Value, ",") For i = LBound(wk) To UBound(wk) If wk(i) < 1 Or wk(i) > 25 Then MsgBox "入力された値は正しくありません" & vbCrLf & vbCrLf _ & "設定によって入力できる値が制限されています" _ , vbRetryCancel + vbCritical Application.Undo Exit Sub End If Next Next End Sub

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

25まで,はふつーの方法では現実的じゃないです。 その他は,A1セルについて =ISNUMBER(SUBSTITUTE(A1,",","")*1)*ISERROR(FIND(",,",A1)) といった具合でいいです。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

難しいです。データを読む人も大変です。一つのセルに一つの整数のみで1~25まで許すようにしてはいかがでしょう。

kujitan
質問者

お礼

ご回答ありがとうございました。御礼遅くなり申し訳ございません。 うまく説明できないのですが、集計ソフト用でデータを人が読むものではないので、どうしても1つのセルにいれないといけない状況です。

関連するQ&A