It seems to work OK, though you have several undeclared variables and you should run the process in reverse order as the deletions will upset the count. (See below).
If you are running the code from Outlook there is no need to create a new Outlook application to run the code.
I assume the path exists?
Option Explicit
Sub SAVEALERTEMAILU()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim myItem As Outlook.MailItem
Dim MsgTxt As String
Dim strDate As String
Dim strName As String
Dim sReplace As String
Dim x As Integer
Dim myChar As Variant
Dim oFSO As Object
Const myPath As String = "\\Wsh1\rootfs1\Caughline475\Archived_Emails\"
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Not oFSO.FolderExists(myPath) Then
MsgBox "The folder" & vbCr & myPath & vbCr & "is not available."
Exit Sub
End If
Set myOlExp = ActiveExplorer
Set myOlSel = myOlExp.Selection
For x = myOlSel.Count To 1 Step -1
Set myItem = myOlSel.Item(x)
strDate = Format(myItem.ReceivedTime, "YYYYMMDD_HHMMSS")
If myItem.Subject <> vbNullString Then
strName = myItem.Subject
Else
strName = "No_Subject"
End If
sReplace = ""
'create an array to loop through subject
For Each myChar In Array("Release-Authorised: ", "Release-Authorised:", "release-authorised:", "Release-authorised:")
'do the replacement for each release phrase
strName = Trim(Replace(strName, myChar, sReplace))
Next myChar
sReplace = "_"
'create an array to loop through illegal characters (saves lines)
For Each myChar In Array("/", "\", ": ", ":", "?", Chr(34), "<", ">", "|", "__", "_ ", "*")
'do the replacement for each character that's illegal
strName = Trim(Replace(strName, myChar, sReplace))
Next myChar
myItem.SaveAs myPath & strDate & x & "-" & strName & "-U.msg", olMsg
myItem.Delete
Next x
MsgBox "You have saved: " & x - 1 & " Items"
lbl_Exit:
Exit Sub
End Sub