• ベストアンサー

エクセルの入力規制について

エクセル2007で表を作成しております。 A列に入力規制で『+』『-』を選べるようにしています。 『+』の場合のみB列に入力できるようし、 『-』の場合はB列に入力できないようにしたいのです。 またB列に入力できないことを表すため『-』と表記したいです。 たとえば、 A1『+』→B1『入力可(なんでも入力できる)』 A2『-』→B2『-』 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! A列はすべて入力規則で「+」と「-」をリスト表示させるように設定されているということですね? もしそうであれば まず、B1セルに=IF(A1="-","-","") と数式を入れて下へ希望のセルまでオートフィルでコピー 次にB列すべてを選択します。 入力規則 → ユーザー設定 → 数式欄に =A1="+" → OK これで希望に近い形にならないでしょうか? この場合、一旦B列に入力した場合元の数式は無くなってしまいますが、 入力できることには変わりありません。 以上、参考になれば幸いです。 的外れの回答なら読み流してください。m(__)m

u10663
質問者

お礼

回答いただきありがとうごいざいます。 教えていただいた方法で無事に解決することができました。 画像まで添付していただきわかりやすかったです。 ありがとうございました。

その他の回答 (5)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.6

一例 '対象ワークシートモジュールへ Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Select Case Target.Column Case 1 If Target.Value = "-" Then Target.Offset(0, 1).Value = "-" Else If Target.Offset(0, 1).Value = "-" Then Target.Offset(0, 1).Value = "" End If End If Case 2 If Target.Offset(0, -1).Value = "-" Then Target.Value = "-" MsgBox "入力できませんよ" End If End Select Application.EnableEvents = True End Sub

u10663
質問者

お礼

回答いただきありがとうごいざいます。 VBAはよくわからないため、また勉強してみようと思います。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

例えばA1:A10を範囲指定して データー入力規則ーリストー「+、-」(半角、「」は不要、カンマで区切る)。以上は判っているらしい。 B1:B10を範囲指定 データー入力規則ーユーザー設定 数式 =A1="+" でよかろう。 ーーー >B列に入力できないことを表すため『-』と表記したいです これはどう考えたらよいのかな。 A列がーの場合、ーだけ入力できるちょうにする? それとか、入力前に =IF(A1="-","-","")の式を、B列に入れておく。式をB19まで複写。 A列が+の場合B列に値を入力すると、B列の式は消えるが、 差し障りはなかろう。

u10663
質問者

お礼

回答いただきありがとうごいざいます。 教えていただいた方法で無事に解決することができました。 ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

VBA案ですが、 下部分のシート名のタブを右クリック、コードの表示をクリックして VBエディターを起動します。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then If Target = "-" Then With Target.Offset(0, 1).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="-" End With Target.Offset(0, 1).Value = "-" Else With Target.Offset(0, 1).Validation .Delete End With Target.Offset(0, 1).Value = "" End If End If End Sub をコピィして閉じてください。 A列に-が入力されたら B列に-入れて入力規則で - しか選択できない ー以外であれば 空白にして、入力規則を解除 といった感じです。

u10663
質問者

お礼

回答いただきありがとうごいざいます。 VBAはよくわからないため、また勉強してみようと思います。 ありがとうございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

回答番号:No.2です 画像がうまく表示できればいいのですが

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

C列を作業列としてA列が+のときはC列に入力したものを表示する 方法はどうですか A2に 入力規則 リストで+,- 下方にオートフィル B2に =IF(A2="-","-",IF(C2="","",C2)) 下方にオートフィル A列が-のときは、-と表示、+のときでC列が空白の時は、空白、それ以外はC列を表示  

この投稿のマルチメディアは削除されているためご覧いただけません。
u10663
質問者

お礼

回答いただきありがとうごいざいます。 画像まで添付していただきわかりやすかったです。 ありがとうございました。

関連するQ&A