Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12663 / 13645 ツリー ←次へ | 前へ→

【9289】セルに入力されたら、別のセルに決まった値を表示したいのですが… 猛虎襲来 03/11/26(水) 23:40 質問
【9292】Re:セルに入力されたら、別のセルに決まった... Kein 03/11/27(木) 1:34 回答
【9312】Re:セルに入力されたら、別のセルに決まった... 猛虎襲来 03/11/27(木) 23:52 お礼

【9289】セルに入力されたら、別のセルに決まった...
質問  猛虎襲来 E-MAIL  - 03/11/26(水) 23:40 -

引用なし
パスワード
   列Aに氏名、列Cにその人の所属が表記されるようなシートをつくりたいのです。
列Cは普段は空白ですが、列Aに氏名を入力されると、その行の列Cに、その人の所属が自動的に現れるようにしたいのです。(所属は、userformから入力されます)

シートモジュールに、以下のように記述してあります。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim U1 As Range, aCell As Range

  Set U1 = Intersect(Target, Columns("a"))
  If Not U1 Is Nothing Then  'U1が一つでも重なっていれば…
    For Each aCell In U1
    aCell.Offset(, 2).Value = userform.textbox1.value
    Next
  End If

これで、確かに列Aに名前を打ち込むと、列Cにuserformで入力した値が出るのですが、列Aの名前を削除しても、列Cに現れた値が消えません。列Aが空欄になったら、それに合わせて列Cの値も空欄になるようにしたいのですが、どうしたらよいでしょう?

【9292】Re:セルに入力されたら、別のセルに決まっ...
回答  Kein  - 03/11/27(木) 1:34 -

引用なし
パスワード
   If IsEmpty(Target.Value) Then
  Target.Offset(, 2).ClearContents
End If

という条件を、追加したらどうでしょーか ? ただし、複数のセルを同時にクリア
しても、何も起こりません。それでも消したいなら Target.Count > 1 の条件
で If WorksheetFunction.CountA(Selection) = 0 Then などと判定させ
Selection.Offset(, 2).ClearContents とするぐらいですね。

【9312】Re:セルに入力されたら、別のセルに決まっ...
お礼  猛虎襲来 E-MAIL  - 03/11/27(木) 23:52 -

引用なし
パスワード
   Keinさん、ありがとうございました。
少しわからないところもあるので(初心者です)、Keinさんのコードの意味を考えながらやってみたいと思います。

12663 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free