'正規表現のグループ変数による部分置換
Function FindDateX(argStr As String) As Variant
With CreateObject("VBScript.RegExp")
.Global = False
.Pattern = ".*?\((\d{4})\D?(\d{1,2})\D?(\d{1,2})[^)]?(?=\)).*"
If .Test(argStr) Then
Dim sDate As String
sDate = .Replace(argStr, "$1/$2/$3")
If IsDate(sDate) Then FindDateX = CDate(sDate)
End If
End With
End Function
'呼び出し例
Sub Test2()
Debug.Print FindDateX("C:\Users\中略\発注書(2023.12.19).xls")
Debug.Print FindDateX("C:\Users\中略\発注書(2023年12月19日).xls")
Debug.Print FindDateX("C:\Users\中略\発注書(20231219).xls")
Debug.Print FindDateX("C:\Users\中略\発注書(2023-12-9).xls")
End Sub