Lo fa automaticamente solo perchè hai sbagliato la sintassi della chiamata della funzione, che puoi fare così:
codice:
'data la funzione...
Function timeDisp(code As Variant) As Integer
'...
'valore di ritorno
timeDisp = ...
End Function
Dim n As Integer
Dim key As Variant
'esempio di chiamata con restituzione di un valore:
'(parentesi attaccata al nome di funzione)
n = timeDisp(key)
'se il valore di ritorno non mi interessa:
'(parentesi attaccata al nome di funzione)
Call timeDisp(key)
'oppure:
'(nessuna parentesi)
timeDisp key
E' comunque insolito scrivere una funzione e poi non prelevare il valore di ritorno, se non ti serve puoi sempre scrivere una Sub.
Oltre a questo appunto, controlla la visibilità della function: all'interno dello stesso form (o modulo o classe) è sempre accessibile, tra oggetti diversi devi anteporre la parola chiave Public:
codice:
Public Function timeDisp(code As Variant) As Integer