良い一日に、1つのブックに2つのプライベートマクロを作成する必要があります.1つはセルの内容を保存し、もう1つはセルの新しい値を保存し、セル内の古いテキストとセル内の新しいテキスト。Private Sub Worksheet_SelectionChange/Worksheet_Change
これは正しい方法(またはそれが可能なのかどうか)はわかりませんが、プライベートマクロでは頻繁には動作しませんので、助けていただければ幸いです。どうもありがとう!私はこれまで得たものである
:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
OldCellValue = ActiveCell.text
old_value = OldCellValue
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Area As Range
Dim OutlApp As Object
Dim IsCreated As Boolean
Dim cell As String
Dim old_value As String
Dim new_value As String
Set Area = Range("A1:E20")
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Area) Is Nothing Then
cell = ActiveCell.Address
new_value = ActiveCell.text
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0
With OutlApp.CreateItem(0)
.Subject = "Change in table"
.to = "someones email"
.HTMLBody = "Change in cell " & "<B>" & cell & "</B><br>" _
& "Old value: " & old_value & "New value: " & new_value
On Error Resume Next
.Send
Application.Visible = True
On Error GoTo 0
End With
If IsCreated Then OutlApp.Quit
Set OutlApp = Nothing
End With
End If
End Sub
あなたの問題は何ですか - コードがうまくいかず、あなたがしたいことはありません.... – SJR
このコードは機能しません。クリックするとセルからテキストが読み込まれますが、変更を加えてEnterキーを押すと、old_valueの変数が変更される次の行に移動します。時には、セルにテキストがあり、その下にセルがある場合でも、old_valueに空のセルが表示されることさえありました。 –