Sorry I did not make my point clearly in my comment.
When you include “$-409” in a format, it is you that has decided that an American format date is required. Excel may help you create an American format date but it will not help you decide which format date is required.
It is you who will have to determine that Jesse gets an American date, John gets a British date and Jacque gets a French date. Once you have made that decision, VB will accept a country code when formatting a date but I do not believe that VBA offers any such functionality. Since you only have two locales, I suggest you do the conversion yourself.
Option Explicit
Sub Demo()
Dim Prompt As String
Dim Recipient As String
Dim MonthsFrench() As Variant
Dim Today As Date
Today = Now()
MonthsFrench = VBA.Array("", "Janvier", "Févier", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Auguste", "Septembre", "Octobre", "Novembre", "Décembre")
' I have used VBA.Array so lower bound is zero regardless of option base setting
Debug.Print Format(Today, "d mmmm yyyy")
Debug.Print Format(Today, "mmmm d, yyyy")
Debug.Print Day(Today) & " " & MonthsFrench(Month(Today)) & " " & Year(Today)
Do While True
If Recipient = "" Then
Prompt = "Recipient name?"
Else
Prompt = "Last recipient, " & Recipient & " preferred date is "
Select Case Recipient
Case "Jesse"
Prompt = Prompt & Format(Today, "mmmm d, yyyy")
Case "John"
Prompt = Prompt & Format(Today, "d mmmm yyyy")
Case "Jacque"
Prompt = Prompt & Day(Today) & " " & MonthsFrench(Month(Today)) & " " & Year(Today)
Case Else
Prompt = "Last recipient not known"
End Select
Prompt = Prompt & vbLf & "Next recipient name?"
End If
Recipient = InputBox(Prompt)
If Recipient = "" Then
Exit Sub
End If
Loop
End Sub