Worksheet_SelectionChange についてわかりやすく説明します
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
.ScrollRow = Target.Row
.ScrollColumn = Target.Column
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(1, 1).Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.value = Target.Value +1
Cells(1, 1).Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.value = Target.Value +1
Application.EnableEvents = False
Cells(1, 1).Select
Application.EnableEvents = True
End Sub
<< event >>
━━ n. 出来事, (大)事件; 場合 (case); 成り行き, 結果;
【スポーツ】種目, (番組中の)一勝負, 一試合; 【コンピュータ】事象, イベント.
...
in that event その場合には.
in the event 実際には; 場合には ((of)); もしも…という時には ((that)).
...
quite an event 重大事件, 一大事.
event driven 【コンピュータ】イベント駆動.
[IT用語辞典w-word]
<< イベント >>
オブジェクト指向プログラミングにおいて、
オブジェクトに特定の現象が発生した時に発する信号。
現象が発生したこと自体のほかに、イベントによってはその現象に関するデータ
(例えば「キーボードを押した」というイベントなら「押されたキー」のデータ)
も発せられる。...イベントが発生すると、イベントに1対1で対応した
メソッドが起動し、イベントに対応した処理を行なう。
非常ボタンが押された ← イベントが発生
パトカーが走ってくる。 → イベントに対応したメソッドを実行する
今回のWorksheet_SelectionChangeはワークシート上で
マウスを他の場所へ移動したときにイベントが発生して
Worksheet_SelectionChangeメソッドを実行することになります。
L列を選んだときは1行下のA列をアクティブにする
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 12 Then Exit Sub '12列目(L列)以外は無視する
Cells(Target.Row + 1, 1).Select ' Target行の1行下のA列を選択
End Sub
式の入ったセルを選択した場合、そのセルのひとつ右横に移動する
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.HasFormula = True Then ' Targetに数式があれば
ActiveCell.Offset(0, 1).Select ' ActiveCellの一つ右へ
End If
End Sub
このコードは式の保護に使えます、ワークシートの保護でもそのセルを [矢印]キーで選択することはできますが、 この方法ではセル選択をできません
Worksheet_Change とWorksheet_SelectionChange の組み合わせ セルV125の計算結果が変わったら、指定セルに日付を表記する
Option Explicit
Dim mae As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ato As Variant
If Target.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
ato = Range("V125").Value
If mae <> ato Then 'maeと現在のセルV125の値を比較
MsgBox "変更されました"
Range("U1").Value = Date
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'選択セルの範囲が変わったら
mae = Range("V125").Value 'セルV125の値をmaeにとっておく
End Sub