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