Excelでは、[レビュー]タブの下に[変更履歴]があります。これはあなたが望むすべてのことをするはずです。
VBAスクリプトでこれを行うには、次のコードサンプルのいずれかを試してください。
Private Sub Worksheet_Change(ByVal Target As Range)
Set t = Target
Set a = Range("A:A")
If Intersect(t, a) Is Nothing Then Exit Sub
Application.EnableEvents = False
t.Offset(0, 7).Value = Environ("username")
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim V As Long
Application.EnableEvents = False
Set rng1 = Application.Union(Range("a1:g1"), Range("H:iv"))
Set rng = Application.Intersect(Target, rng1)
If Not rng Is Nothing Then Exit Sub
V = Target.Offset(0, 12).Value
If Target.Offset(0, 12) = "" Then
With Range("H" & Target.Row)
.Value = Target.Address & ": first entry by " & Application.UserName & " at " & Now()
.ColumnWidth = 60
.Interior.ColorIndex = 33
End With
Target.Offset(0, 12).Value = Target.Value
Application.EnableEvents = True
Exit Sub
End If
Target.Offset(0, 12).Value = Target.Value
With Range("H" & Target.Row)
.Value = Target.Address & " changed from " & V & " to " & Target.Value & " by " & Application.UserName & " at " & Now()
.ColumnWidth = 60
.Interior.Color = vbYellow
End With
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
Application.EnableEvents = False
Sheets("Sheet2").Select
If IsEmpty(.Value) Then
.Offset(0, 1).ClearContents
Else
With .Offset(0, 1)
.NumberFormat = "dd mmm yyyy hh:mm:ss"
.Value = Now
End With
End If
Sheets("Sheet1").Select
Application.EnableEvents = True
End If
End With
End Sub
これらの 'Worksheet_Change'スクリプトはすべてワークシートイベントです。シートを右クリックして[コードの表示]をクリックし、開いているウィンドウにスクリプトを貼り付ける必要があります。一度に1つずつ試してみてください。
また、「Excelスプレッドシートの使用者を追跡するにはどうすればよいですか? Excelファイルが開いているときに電子メール機能を自動的に送信する>コードを設定して電子メールの送信を停止することができますか?thanksssss – user6407570
最初に私はあなたにコメントする必要はありませんあなたの投稿を編集して上記のコメントを修正することができます。その後、その上の小さな 'x'を使用して上記のコメントを削除することができます。上記の投稿に関して、私はあなたに助言したいと思いますExcelでその試みをしないようにしてください。Excelにはセキュリティが限定されており、容易に克服することはできませんが、その行為を追跡する必要がある場合は、ExcelファイルをSQL Serverに接続し、あなたがExcelで何をしているのかを、効果的に隠すことはできません。 – Ralph