- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA A列のみにしか入力できないようにする)
VBAでA列のみに入力できるようにする方法
このQ&Aのポイント
- Excel2003を使用していて、メールをExcelにコピー&ペーストした際に、A列のみに表示されるようにしたいです。
- B列に記入された内容もA列に結合し、A列以外には何も記入されていないようにしたいです。
- Worksheet_Changeイベントを使用して、A列以外が変更された場合に処理を実行する方法がわかりません。ご教示いただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
現状すでに1列目(A列)に何かが入っている場合であっても上書きされてしまいますが。 こんなかんじでどうでしょうか。 判定は以下の方法で判定できます。 セルオブジェクト.Columnの値が1であればA列 ■VBAコード Private Sub Worksheet_Change(ByVal Target As Range) Dim myRng As Range 'イベント一時中止 Application.EnableEvents = False '変更されたセルだけループ For Each myRng In Target '変更されたセルが2列目以上で、変更されたセルが空白以外の場合 If myRng.Column > 1 And myRng <> "" Then '1列目に値をセット Cells(myRng.Row, 1) = myRng '変更されたセルを削除 myRng.ClearContents End If Next 'イベント再開 Application.EnableEvents = True End Sub
お礼
回答頂き、ありがとうございます。 自分でも組んでいたのですが、 Application.EnableEvents = Falseを忘れており だいぶ時間がかかってしまいました。 また、ClearContentsをはじめて知りました。 今まで ="" で消していたので… 良い方法かは分かりませんが、 Cells(myRng.Row, 1) = myRng の部分を Cells(myRng.Row, 1) = Cells(myRng.Row, 1) & myRng と変更させて頂きました。 これでA列も保持されている…みたいです。 ありがとうございました! 本当に助かりました^^