Использование системной константы LOCALE_NAME_USER_DEFAULT в vba

ВопросыМогу ли я использоватьLOCALE_NAME_USER_DEFAULT системная константа в VBA, или мне нужно использоватьGetUserDefaultLocaleName() вместо функции?Если я могу использоватьLOCALE_NAME_USER_DEFAULT системная константа, как мне получить ее значение?Фон

Я использую VBA для преобразования значения системного разделителя списка из, в|, перезапустите Excel, используйте VBA, чтобы сделать необходимый CSV с| разделитель, затем восстановите значение разделителя списков по умолчанию и закройте Excel.

Иногда разделитель списка не переключается, как ожидалось, так что теперь яадаптируя метод, найденный здесь разработать защиту, которая проверяет текущее значение, чтобы убедиться, что оно|.

Microsoft в настоящее время рекомендуетчто мы используем более актуальный GetLocaleInfoEx() вместоGetLocaleInfo() для целей взаимодействия.

Мне трудно получить значениеLOCALE_NAME_USER_DEFAULT системная константа в VBA, что упоминается в документации. Вот соответствующий фрагмент того, что я имею до сих пор:

Private Const LOCALE_SLIST = &HC
Private Const LOCALE_NAME_MAX_LENGTH = 85
'Private Const LOCALE_NAME_USER_DEFAULT <-- stuck here, it wants me to declare it = to something, but I want the system value

'Get Locale Info
Private Declare Function GetLocaleInfoEx _
Lib "kernel32" ( _
ByVal lpLocaleName As String, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long


Sub SubName()

    Dim lpLCData As String

        Long1 = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SLIST, lpLCData, 0)

Можете ли вы помочь мне выяснить, как получить системную константу дляLOCALE_NAME_USER_DEFAULT так что я могу использовать эту функцию в VBA аналогичноC пример найден здесь:

https://stackoverflow.com/a/17674047/4691433

Ответы на вопрос(1)

Ваш ответ на вопрос