Como interceptar eventos do Outlook do aplicativo Excel

Eu tenho uma pasta de trabalho que pelo menos 15 pessoas usam e atualizam periodicamente que contém informações do cliente com emails na coluna H3: H1500. Usando o evento Worksheet_FollowHyperlink, podemos enviar e-mails por meio de nossas contas do Outlook pré-escritas e dependentes do dia da semana em que um pedido é solicitado (M-F, sábado e domingo) e o código funciona perfeitamente para gerar mensagens.Meu principal problema está no rastreamento de respostas aos clientes. Tentei ter um sub que registrasse a data (função NOW) e o Environ ("nome de usuário") sempre que o hiperlink na coluna H fosse selecionado, mas como tenho o sub e-mail definido como .Display (para que as pessoas possam fazer ajustes de última hora) , se necessário), apenas registra quem selecionou o hiperlink (que, aparentemente, acontece muito por acidente quando a mensagem nunca é realmente enviada). Eu encontrei vários tópicos neste fórum e outros que fazem referência à criação de um módulo Classe e implementei um que era usado para ver se funcionaria no meu código, mas, adicionando-o, todo o sub email foi inútil, então eu voltei para a forma antiga. Como não tenho muita experiência em VBA (cheguei até aqui devido a ajuda, tentativa e erro), percebo que algumas das minhas opções de código podem parecer bobas, e se houver melhores maneiras de fazer isso, estou aberto a - eu apenas sei que, esta folha funcionana maioria das vezes por enquanto e espero que possa ser melhorado, se possível.

Meu sub e-mail atual é:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim Body1, Body2, Body3 As String
Dim olApp As Outlook.Application
Dim OlMail As Outlook.MailItem

On Error Resume Next
Application.EnableEvents = False

Set olApp = GetObject(,"Outlook.Application")

Do While olApp.Inspectors.Count = 0
DoEvents

Loop

Set olMail = olApp.Inspectors.Item(1).CurrentItem

With olMail

Body1 = "This is my weekday text"
Body2 = "This is my Saturday text"
Body3 = "This is my Sunday text"

.Subject = "Subject"
.Attachemnts.Add "C:\Path"
.CC = Target.Range.Offset(0,4).Text
.BCC = ""

If Target.Range.Offset(0,5).Text = "No" Then
.Body1
If Target.Range.Offset(0,5).Text = "Yes" Then
.Body2
If Target.Range.Offset(0,5).Text = "Sunday" Then
.Body3

.Display
End With

forward:
Application.EnableEvents = True
Exit Sub
halt:
MsgBox Err.Description
Resume forward
End Sub

[O código acima está no Excel VBE, o código a seguir está no Outlook VBE, eu deveria ter incluído isso antes de iniciar - ele está funcionando bem para mim no momento, então não sei por que não está compilando ...]

Function GetCurrentItem() As Object
Dim objApp As Application

Set objApp = CreateObject("Outlook.Application")
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
Set objApp = Nothing
End Function

Qualquer ajuda é apreciada!

questionAnswers(1)

yourAnswerToTheQuestion