Hola me parece que tu funcion esta mal, un long = 4 bytes por lo tanto tienes que redimencionar el array a (0 to 3)
asi es como creo que iria
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Function LongToByteArray(ByVal lng As Long) As Byte()
Dim ByteArray(3) As Byte
CopyMemory ByteArray(0), lng, LenB(lng)
LongToByteArray = ByteArray
End Function
Public Function ByteArrayToLong(ByteArray() As Byte) As Long
CopyMemory ByteArrayToLong, ByteArray(0), LenB(ByteArrayToLong)
End Function
Private Sub Command1_Click()
Dim bytArr() As Byte
bytArr = LongToByteArray(94545712)
MsgBox ByteArrayToLong(bytArr)
End Sub
Saludos.