As funções não podem alterar nada no excel, exceto na célula em que ele é chamado. Dito isso, tenho certeza de que uma função pode acionar uma rotina -
Option Explicit
Public Function eieio(numb As Long) As Long
eieio = Int(numb / 2)
Test
End Function
Sub Test()
MsgBox ("hi")
End Sub
eieio (12) = 6 e msgbox "hi"
Dito isto, o que você não pode fazer é algo assim -
Option Explicit
Public Function eieio(numb As Long) As Long
eieio = Int(numb / 2)
Test
End Function
Sub Test()
Dim str As String
str = Application.Caller.Address
Dim rng As Range
Set rng = Range(str)
MsgBox (rng.Address)
rng.EntireRow.AutoFit
End Sub
Assim, a rotina não pode alterar o application.caller, tanto quanto eu sei. Sempre foi assim.