Usando el sistema LOCALE_NAME_USER_DEFAULT constante en vba
LOCALE_NAME_USER_DEFAULT
sistema constante en VBA, o necesito usar elGetUserDefaultLocaleName()
funcionar en su lugar?Si puedo usarLOCALE_NAME_USER_DEFAULT
constante del sistema, ¿cómo obtengo su valor?AntecedentesYo uso vba para convertir el valor del separador de lista del sistema de,
a|
, reinicie Excel, use vba para hacer un csv necesario con el|
separador, luego restaure el valor de Separador de lista a predeterminado y cierre Excel.
A veces el separador de listas no cambia como se esperaba, así que ahora estoyadaptando el método encontrado aquí para desarrollar una salvaguarda que verifique el valor actual para asegurarse de que sea|
.
Microsoft actualmente recomiendaque usamos los más actuales GetLocaleInfoEx()
en lugar deGetLocaleInfo()
para fines de interoperabilidad.
Me está costando mucho obtener el valor deLOCALE_NAME_USER_DEFAULT
sistema constante en VBA que menciona la documentación. Aquí está el fragmento relevante de lo que tengo hasta ahora:
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)
¿Pueden ayudarme a averiguar cómo obtener la constante del sistema paraLOCALE_NAME_USER_DEFAULT
entonces puedo usar esta función en VBA de manera similar a laC
ejemplo encontrado aquí: