うまくいかない・・・とはどのようにでしょうか?
考え方だけと思いますが、こんな感じのファンクションで解決できるかも。
Private Function GetTimeString(ByVal strValue As String) As String
''数字チェック
If Not IsNumeric(strValue) Then GetTimeString = strValue: Exit Function
''桁数チェック
If Len(strValue) > 4 Then GetTimeString = strValue: Exit Function
''4桁に調整
strValue = Right("0000" & strValue, 4)
''時、分分解
Dim hh As Integer
Dim mm As Integer
hh = Mid(strValue, 1, 2)
mm = Mid(strValue, 3, 2)
''時チェック(24時間)
If CInt(hh) < 0 Or CInt(hh) > 23 Then GetTimeString = strValue: Exit Function
''分チェック
If CInt(mm) < 0 Or CInt(mm) > 59 Then GetTimeString = strValue: Exit Function
GetTimeString = hh & ":" & mm
End Function
動作未確認です。なお、ソースの半角スペースは表示の関係上、全角になっています。