VBA 変更履歴を隣セルに保存する実務上、セル変更履歴を求められる場面があったりします。今日は、変更履歴を隣セルに残す方法を見てみましょう。 変更履歴を隣セルに保存する Private Sub Worksheet_Change(ByVal Target As Range) ' 特定セル以外の場合、イベント起動せずにする If Application.Intersect(Target, Range("B4", "B10")) Is Nothing Then Exit Sub ' 変更セルが2以上ある場合 If Target.Count <> 1 Then ' イベントを一旦無効にする Application.EnableEvents = False ' ユーザの操作を1つ戻す Application.Undo MsgBox "2以上のセルは変更できません。", 16 ' イベントを有効にする Application.EnableEvents = True Exit Sub 'イベントを終了する End If ' イベントを一旦無効にする Application.EnableEvents = False Dim xlAfter As Variant '変更後の値を格納 xlAfter = Target.Value Dim xlChange As Range '移動後セル ' 移動後セルをアクティブにする(動きを自然にする) Set xlChange = ActiveCell ' ユーザの操作を1つ戻す Application.Undo ' 履歴をとなりセルに保存 Target.Offset(0, 1).Value = Target.Value ' 移動後の値を設定する Target.Value = xlAfter ' 移動後のセルに戻す xlChange.Select 'イベントを有効にする Application.EnableEvents = True End Sub コードの入力先は、いつもの標準モジュールではなく、VBE画面なか「Sheet1(sheet1)」をクリックし、右のコード欄に入れてください。 実行結果 ― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 参考記事 『VBA ダブルクリックしたら会社名を自動入力』 ダブルクリックしたら自動入力 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,…ameblo.jp
『VBA ダブルクリックしたら会社名を自動入力』 ダブルクリックしたら自動入力 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,…ameblo.jp