エクセルデータの入力規則と保護の設定方法

このQ&Aのポイント
  • エクセルのデータ入力規則について、A列とB列はロックをかけず、C列とD列はロックをし、シートを保護しています。具体的な範囲はA3~A10までが入力可能であり、B3~B10は条件により入力可能ですが、C3~C10とD3~D10は入力不可です。
  • C列とD列は一定の条件で保護を解除しており、入力が可能です。また、B列の条件では、C列とD列が空欄でない場合に停止のエラーメッセージが表示されるように設定しています。通常の入力では停止メッセージが表示されて入力できない状態ですが、貼り付け入力を行った場合は入力が可能です。
  • 貼り付けなどでも入力ができない設定方法(入力時にエラーメッセージが表示されるような方法)について質問しています。
回答を見る
  • ベストアンサー

エクセル データの入力規則

いつも参考にさせていただいています A列B列はロックをかけず、C列D列はロックをし、シートの保護をかけています。 A3~A10 入力可 B3~B10 条件により入力可 C3~C10 入力不可 D3~D10 入力不可 C列D列は 一定の条件で保護を解除し入力しています。 B列の条件は、 入力規則で C列D列が空欄でないときは 停止のエラーメッセージが出るようにしていました。 通常に入力すると停止メッセージが出て入力が出来ないのですが、 貼り付け入力をした場合入力が可能となっております。 貼り付けなどでも入力が出来ないような設定方法 (入力をしようとすると、エラーメッセージが出るような)があればと思い、質問させていただきました。

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

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

残念ですが,現状で出来る事は,ほとんどありません。 B列には入力はしなければならない(これが最優先)ので,これに伴い貼り付けも禁止できません。 貼り付けた瞬間に入力規則の設定は「貼り潰されて」しまうので,貼り付いた値を禁止する機能も無くなってます。 #参考 一応「やればできる」手としては シートの保護を一時解除 シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range)  dim h as range  set target = application.intersect(target, range("B3:B10"))  if target is nothing then exit sub  for each h in target   if h <> "" then   if cells(h.row, "C") ="" or cells(h.row, "D") = "" then    msgbox "禁止"    application.enableevents = false    application.undo    application.enableevents = true    h.select   end if   end if  next end sub ファイルメニューから終了してエクセルに戻る B列の入力規則は解除する シートを保護する

hiposi
質問者

お礼

keithin様 ご教授くださりありがとうございます。 if cells(h.row, "C") ="" or cells(h.row, "D") = "" then を If Cells(h.Row, "C") <> "" And Cells(h.Row, "D") <> "" Then として希望通りのシートが作成できました! お忙しい中ありがとうございました。

関連するQ&A

  • エクセルでの簡単なデータ入力について

    エクセルで、A1、B1、C1に数字を入力し、そのあとD1、E1、D2、E2…と何行か数字を入力、再び先頭のA列に戻りまた作業を繰り返すという変則的な表を作っています。つまり最初は5列に入力するけれど2行目3行目…は4列5列のみ入力、またn行目は5列入力に戻るというものです。入力の仕方でより簡単な方法がないでしょうか。タブとエンターで繰り返し入力ができますが、計算式を保護したいので保護をかけるとカーソルの動きが思うようにいきません。簡単なマクロ操作でパソコンになれていない初心者でもできる簡単な入力方法はありませんか。4列目5列目の入力繰り返しの回数は、C列の数字がが10なら10行、5なら5行とつど変わります。うまく説明できたか不安ですがよろしくおねがいします。

  • 【エクセル】入力規則で困っています

    効率よく仕事ができるよう、下記の質問にお答えいただけましたら幸いです。 A1~A30には決まっている数値があります(その中には非訴求という文言もあります) B1~B30までに数値を入力していきます。 エクセルイメージ     A       B 1  1200 2  1800 3  5000 4  非訴求 5   ・ 6   ・ 7   ・ そこで質問なのですが (1)A1には『1200』とあるので、この1200に500を足した1700以下の数値をB1に入力した場合、入力不可にしたい ※B2に入力時は2300以下は入力不可 (2)A4の『非訴求』の場合は、B列の入力は「5%OFF、10%OFF、15%OFF」の3種類しか選べないようにしたい この(1)と(2)の条件を踏まえた入力規則を設定したい。  ※同時に設定できなければ、(1)の設定だけでもしたいと思っています。 ややこしい内容で申し訳ございませんが、どなたかお助けいただけると幸いです。 どうか宜しくお願いします。

  • エクセルでのデータ集計

    まずは質問に目を通していただきありがとうございます。 今エクセルでのアンケートのような物をおこなっているのですが、 データの形式的には A列:名前 B列:住所 C列:可不可 D列:ジャンル このような形になっています。 可不可が1~3の番号制なのですが、 ジャンルが全角文字になっています。 文字列は決まっていますが複数可能なので●●、△△ のようになって入力されています。 このデータを使って集計したいのですが、2種類の集計を出したいです。 1つはC列の縦の集計を1は何人、2は何人、3は何人 といった集計の出し方。 もう1つが少し厄介なのですが C列が1でD列に●●が含まれているのが何人、△△が含まれているのが何人。 同じくC列が2で・・・(以下同じ) C列が3は不可の方なので数字が分かればよいので無しで大丈夫です。 こういった集計は出来ますでしょうか? 分かりにくいかもしれませんが、ご指南お願い致します。

  • エクセルのデータの入力規則について

    エクセル2013を使用している初心者です。 以下の入力規則をしています。 (1)A1セルが「aもしくはb」の場合、B1セルに入力しエンターを押すと、警告文が出て入力出来ない。 (2)A1セルが「c」の場合、B1セルに「1,000」と金額が入力出来る。 ここまでは良いのですが、 (2)の状態でA1セルを「aもしくはb」に変更した時、B1セルに「1,000」と金額が入力されたまま残ってしまいます。 この時に「エラー!金額が入力されています」等のメッセージを表示させる事は可能なのでしょうか。 A1セルが「c」の場合、普通に数字を入力するので、セルに関数は入れられないと思うのですが。。。 因みにマクロは全くの初心者です。

  • 《エクセル》入力規則について

    いつもお世話になります。 エクセルの列に、入力規則で打ち込めるデータを限定したいのですが、 セルA1の値が"あ"なら、セルB1には"A"・"B"・"C"のみ入力できる セルA2の値が"い"なら、セルB2には"D"・"E"・"F"のみ入力できる のようなことは可能でしょうか。 また、 A1が"あ"B1が"A"の場合は、C1には"い"・"ろ"・"は"のみが入力できる などということも出来ますでしょうか。 ご存知の方がいらっしゃったらお手数ですが宜しくお願い致します。

  • エクセルの入力規則で数式のみ入力可能にするには

    エクセル2000を使用しています。   A B C D E          F 1  2 3 4 5 6    ROUND((A1+B1)*C1*D1*E1,1))  2  2 3 4 5 6    ROUND((A2+B2)*C2*D2*E2,1))  という表を作成しています。 F列には、数式以外入力できないようにしたいのですが、 どうすればよいのでしょうか? どうかお知恵を貸して下さい。 よろしくお願いします。

  • エクセルの入力規則

    エクセルの入力規則で、D1のセルにりんごと入れるとD列に色をつけるようにしました。後、追加の機能で○を入れるとその行の見出し(A列)セルにも色をつけたいのですが・・(下の表なら、A3.A4セルに色をつけたい) 何か方法はありますか?    A   B    C    D 1      いちご みかん りんご 2  あ   ○        3  い        ○    ○ 4  う             ○           

  • Excel 入力規則の複数指定について

    1つのセルに対し、複数の入力規則は出来ないのでしょうか? 例えば、Excelシートで A1に学校名を入力 B1に入学する年(西暦) C1に入学する月 を入力させたいのですが、 A1に学校名が入力されてなかった場合、 B1とC1は入力規則でエラーメッセージを出して入力不可にしたいのです。 逆に、A1に学校名が入力された場合、 B1には、入力規則で適切な西暦だけを入力可能にしたいのです。 C1には、入力規則で適切な月だけを入力可能にしたいのです。 適切な西暦や月が入力されなかった場合は、 入力規則でエラーメッセージを出して入力不可にしたいのです。 ちなみに現在使用している仕様は「WinXP、Excel2003」です。 Excel初心者なので、VBAは分かりません・・・。 関数は、少々分かりますので、入力規則以外でこの様な 複数指定の方法が出来るのでしたら、教えていただけないでしょうか? なにとぞ、ご教授のほど宜しくお願い致します。

  • Excel 入力規則?関数?

    意味不明なタイトルで申し訳ございません。 教えてくださいm(_ _"m) やりたい事は・・・↓ 【例】 ・A1のセルに(1)と入れるとB1とC1とD1のセルは入力可能。 ・A1のセルに(2)と入れるとB1とC1のセルは入力可能だがD1は入力不可能となる。 ・A1のセルに(3)と入れるとB1セルのみ入力可能で、C1とD1は入力不可能となる。 このような事は入力規則を使用してできるものなのでしょうか? 関数との重ね技とか・・・? また、上記の条件が満たせれば入力規則を使わず他の手段でも構わないです。 よろしくお願いします!!

  • 前のセルの入力規則を見て、さらに入力規則で・・・

    入力規則のリスト表示の方法について教えていただきたいのですが・・・  A列          B列 A,B,C  A-1,A-2,A-3,B-1,B-2,B-3,C-1,C-2,C-3 A列に、A,B,Cと入力規則を設定します。 B列には、A列に入力したAに関係するA-1,A-2,A-3、 Bに関係するB-1,B-2,B-3、Cに関係するC-1,C-2,C-3 を入れたいのですが、B列のリストが多くなりすぎるので、A列にAを入力したときはA-1,A-2,A-3のみをリストに表示させることは、可能でしょうか?(B,Cについても同じ) よろしくお願いします。

専門家に質問してみよう