- ベストアンサー
EXCELの入力規則(リスト)について
名前付きセル範囲機能と入力規則を使って、↓の様な表を作成致しました。 A B 支社名 担当者 Aの支社名をリスト(下向き▼ボタン)で選択する→Aで選択した支社名に所属する担当者がBのリスト(下向き▼ボタン)で選択出来る仕組みなのですが… Aのリストで選択した支社名をDeleteキーで空白にしても、Bの担当者名は残ったままなのです。 「A欄をDeleteで空白にすると、自動的にB欄も空白になる。」と言う様に設定(連動)する事は可能でしょうか? わかりづらいサンプルと文章で申し訳ございませんが…ご回答をお待ちしておりますm(__)m
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Target.Column = 1 And Target.Row = 1 の部分で変更される(Deleteされる)部分を限定しています。ここではCulumn=1,Row=1ということでここでもA1のセルの変更だけを見るようにしています。 両方を変更してやってください。 また、変更箇所が複数あれば、Target.colum>2 And Target.column < 10 And Target.Row=1 のように範囲を指定すればいいと思います。ある程度変更箇所を限定しないとどこを変更してもA1が空欄ならその場でB1を空欄にする処理をしてしまいますので。 また、#2の方が言われているとおり、いろいろな条件や制限事項が発生します。誰でも使えるようなシートにするにはまだまだたくさんの処理が必要かと思います。
その他の回答 (2)
- misatoanna
- ベストアンサー率58% (528/896)
ごめんなさい。回答ではないのですが。。。。 > A欄をDeleteで空白にすると、自動的にB欄も空白になるように設定する セルA1が空白になったときにB1も空白にするということは、VBAでもできますし、 条件付書式でA1が空白ならB1の文字色を白にすることでも見た目の上はできますよね。 その処理をしたとしても、B1に「ある支社」の誰かが選択されている状態でA1で別な 支社名を選択したときに、B1に以前の支社のメンバー名が表示されたままになって いるほうが、問題ではありませんか? B1に表示されている名前が、A1の表示されている支社のリストに入っていなければ 空白にするという処理も併せて行なわないと意味がないと思うのです。 でも、他支社に同姓の社員がいる場合を考えますと、マクロで処理することも 難しいと思いますが。
- Zero_0
- ベストアンサー率35% (72/201)
VBAを使うことで可能です。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Row = 1 Then If Cells(1, 1) = "" Then Cells(1, 2) = "" End If End Sub のように作成してやるとA1のセルがdeleteされたときにB1のセルも空欄にします。
補足
Zero_0様、早速のご回答有難うございますm(__)m 恥ずかしながら…当方は初心者で、VBAを使用した経験がありませんでした。 先程、新しいシートのセルA1とセルB1に適当な数値を入力し、(手元の参考書を読みながら)Zero_0様が教えて下さった通りに入力したところ…バッチリでした! 当方が作成した表は…M列に支社名、L列に担当者名を設け、4行目からリストを選択出来る様にしてあります。 Zero_0様が教えて下さったCells(1, 1) = "" Then Cells(1, 2)の部分を→Cells(4, 13) = "" Then Cells(4, 14)に変更してみたのですが…結果は×でした。 単純にCells(行番号,列番号)を変更するだけでは、ダメだったでしょうか? 宜しければ、その辺りもお伺いしたいのですが…お時間のある時にでもご回答頂けたら幸いですm(__)m