Microsoft 製品に組み込まれている Visual Basic の実装。
Office自体の不具合ではなく、VBA関してであれば、下記の
VBA向けのフォーラムがあるので併せて利用される方が有効かと思われます。
宜しくお願いします。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
シートモジュールに以下のコードが入力されています。
J14セルとE5セルの値が一致した時刻をI14セルに表示させたい訳ですが、例えば0を加算してE5セルの値は変わりませんが時刻が最新に上書きされてしまいます。
最初に表示された時刻を固定させる(時刻を繰り返さない)方法はあるのでしょうか?
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'変更されたセル範囲に E5 セルが含まれない場合
If Not Intersect(Target, Me.Range("E5")) Is Nothing Then
'E5セルが変更された場合;このプロシージャを抜ける
Exit Sub
ElseIf Not Intersect(Target, Me.Columns("G")) Is Nothing Then
ThisWorkbook.Save
End If
'J14 セルの値と E5 セルの値が一致する場合
If Me.Range("J14").Value = Me.Range("E5").Value Then
'イベントの発生を無効にする
'( Change イベントの連鎖を回避するため)
Application.EnableEvents = False
'現在のシステム日時を I14 セルに代入する
Me.Range("I14").Value = Now
'イベントの発生を有効にする
Application.EnableEvents = True
'このブックを上書き保存する
ThisWorkbook.Save
End If
End Sub
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
Office自体の不具合ではなく、VBA関してであれば、下記の
VBA向けのフォーラムがあるので併せて利用される方が有効かと思われます。
宜しくお願いします。