- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:このEXCELVBAを複数のセルにも別々に同じ処理をしたい)
EXCELVBAの複数のセルへの別々の処理について
このQ&Aのポイント
- Excel VBAを使用して、複数のセルに対して別々の処理を行いたい場合、以下のようなコードを使用します。
- Worksheet_Changeイベントを使用し、対象のセルが変更された場合に処理を実行します。複数のセルに対して処理を行うためには、ターゲットのセルを判別する必要があります。
- 特定のセルを対象とした処理を行いたい場合は、Target.Addressを使用してセルのアドレスを判別し、処理を実行します。また、処理の内容に応じてウンドゥ(元に戻す)やセルの値の加算など、任意の操作を行うことも可能です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 A列の1行~85行まで利用出来る用に変更してみました。お試しください。 列を変更したい場合は(例えばB列)、Target.Column<>2 にすれば良いです。 Private Sub Worksheet_Change(ByVal Target As range) If Target.Column > 1 Or Target.Row > 85 Then Exit Sub '←A列以外又はA列85行以上の時は無視 If Target.Value = "" Then Exit Sub x = Target.Value With Application .ScreenUpdating = False .EnableEvents = False .Undo y = Target.Value Target.Value = x + y .EnableEvents = True .ScreenUpdating = True End With With Cells(ActiveSheet.Rows.Count, Target.Row * 3).End(xlUp) '←横にカラム3~255まで表示出来る .Offset(1, 0).Value = x .Offset(1, 1).Value = Time() End With End Sub
お礼
ご回答ありがとうございます。 1.2行変えてしまうだけで、ここまで出来るとは・・ VBAは奥が深いものですね。 ColumnをRowに変えると行になるわけですね。 参考にさせて頂きます、ありがとうございました。