私は次のように書いていますが、フランス語ではうまくいくようです。他の言語と一緒に作業するためには、12ヶ月間をカバーするように改訂することができます。これは、[Excelの数式での日付のパターンのためのOSの地域設定を使用することを防ぐためにどのように]役立つかもしれない
Function cvtUsDt(ByVal sUsDt As String) As Date
'CDate and DateValue do not work well on US text dates like 15-FEB-2017
'on machine with some non english regional settings
'problematic months: FEB-APR-MAY-JUN-JUL-AUG-DEC
Dim sMon As String
If sUsDt Like "*FEB*" Then
sMon = Format(DateSerial(2017, 2, 10), "mmm")
sUsDt = Replace(sUsDt, "FEB", sMon)
ElseIf sUsDt Like "*APR*" Then
sMon = Format(DateSerial(2017, 4, 10), "mmm")
sUsDt = Replace(sUsDt, "APR", sMon)
ElseIf sUsDt Like "*MAY*" Then
sMon = Format(DateSerial(2017, 5, 10), "mmm")
sUsDt = Replace(sUsDt, "MAY", sMon)
ElseIf sUsDt Like "*JUN*" Then
sMon = Format(DateSerial(2017, 6, 10), "mmm")
sUsDt = Replace(sUsDt, "JUN", sMon)
ElseIf sUsDt Like "*JUL*" Then
sMon = Format(DateSerial(2017, 7, 10), "mmm")
sUsDt = Replace(sUsDt, "JUL", sMon)
ElseIf sUsDt Like "*AUG*" Then
sMon = Format(DateSerial(2017, 8, 10), "mmm")
sUsDt = Replace(sUsDt, "AUG", sMon)
ElseIf sUsDt Like "*DEC*" Then
sMon = Format(DateSerial(2017, 12, 10), "mmm")
sUsDt = Replace(sUsDt, "DEC", sMon)
End If
'in case of error, return 1/1/1900
cvtUsDt = 0
On Error Resume Next
cvtUsDt = CDate(sUsDt)
End Function
(https://superuser.com/questions/730371/how-to-prevent-excel-to-use地域別の日付設定のための設定) – ShanayL