Проблема в том, как вы это делаете. Если у вас есть функция, которая просто добавляет 5 к внутренней переменной объекта класса, то это технически пустота (Sub в VBA), поскольку вам не нужно возвращаемое значение.
Ваш код должен быть:
КЛАСС
Public Value As Double
Sub AddFive()
Me.Value = Me.Value + 5
End Sub
МОДУЛЬ
Sub test()
Dim testObject As New TestClass
testObject.Value = 2
testObject.AddFive
MsgBox testObject.Value
End Sub
Я могу представить, что может быть несколько причин, по которым созданы 2 переменные, но я считаю немного бессмысленным вдаваться в причину непредвиденного поведения, поскольку вы делаете неправильный код.
Если вы хотите, вы можете даже написать функцию класса, которая покажет ее значение + 5 в msgbox, и это также не создаст дополнительную переменную. Но это странно, и я думаю, что вы хотите код выше. Но здесь все равно:
CLASS
Public Value As Double
Sub ShowPlusFive()
MsgBox Me.Value + 5
End Sub
МОДУЛЬ
Sub test()
Dim testObject As New TestClass
testObject.Value = 2
testObject.ShowPlusFive
End Sub