Я пытаюсь использовать этот код:
#If VBA7 Then
Private Declare PtrSafe Function SetThreadLocale Lib "kernel32" _
(ByVal Locale As Long) As Boolean
Private Declare PtrSafe Function GetUserDefaultLCID Lib "kernel32" () As Long
Private Declare PtrSafe Function LocaleNameToLCID Lib "kernel32" _
(ByVal lpName As LongPtr, dwFlags As Long) As Long
#Else
Private Declare Function SetThreadLocale Lib "kernel32" (ByVal Locale As Long) As Boolean
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Private Declare Function LocaleNameToLCID Lib "kernel32" _
(ByVal lpName As LongPtr, dwFlags As Long) As Long
#End If
Private Sub Test()
'Get the locale identifier for French (Canada)
Dim frCa As Long
frCa = LocaleNameToLCID(StrPtr("fr-CA"), 0)
'Make sure there function succeeded.
If result = 0 Then
'Cache the current locale
Dim userLocale As Long
userLocale = GetUserDefaultLCID
'Switch to French (Canada)
If SetThreadLocale(frCa) Then
'en français
'...
'switch back
SetThreadLocale userLocale
End If
End If
End Sub
по ссылке:
Изменить формат региона на другой язык с VBA
iЯ ищу подобное решение, но это не работает.Я попытался изменить региональные настройки на настройки США и вернуть польские региональные настройки (окна по умолчанию).
Польские настройки из GetUserDefaultLCID = 1045, US = 1033, но макрос работает без результатов.(без ошибок, без изменений).Вид SetThreadLocale не работает ...
Пожалуйста, помогите, что может быть не так, Best, Jacek
Я попытался использовать вместо "fr-CA" "pl-PL" и назначить userLocale= 1045, когда я использовал Windows с региональными настройками США, но не работал.
Цель состоит в том, чтобы этот макрос работал в Windows 10.