Come posso dire la lingua corrente dell'utente in un programma vba?Trovare la lingua corrente dell'utente
Ho bisogno di questo per mostrare un modulo in una lingua appropriata.
Come posso dire la lingua corrente dell'utente in un programma vba?Trovare la lingua corrente dell'utente
Ho bisogno di questo per mostrare un modulo in una lingua appropriata.
mio codice iniziale (utilizzando questo vbforum code) presume che Windows e Excel condividono un linguaggio comune - probabile ma non a prova di proiettile.
aggiornato
Il codice rivisto:
uscita di esempio sulla mia macchina sotto
Il codice permette all'utente di sapere se ci sono errori di accesso al sito LCID, o l'analisi del nome del paese.
Sub GetXlLang()
Dim lngCode As Long
lngCode = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
MsgBox "Code is: " & lngCode & vbNewLine & GetTxt(lngCode)
End Sub
Function GetTxt(ByVal lngCode) As String
Dim objXmlHTTP As Object
Dim objRegex As Object
Dim objRegMC As Object
Dim strResponse As String
Dim strSite As String
Set objXmlHTTP = CreateObject("MSXML2.XMLHTTP")
strSite = "http://msdn.microsoft.com/en-us/goglobal/bb964664"
On Error GoTo ErrHandler
With objXmlHTTP
.Open "GET", strSite, False
.Send
If .Status = 200 Then strResponse = .ResponseText
End With
On Error GoTo 0
strResponse = Replace(strResponse, "</td><td>", vbNullString)
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "><td>([a-zA-Z- ]+)[A-Fa-f0-9]{4}" & lngCode
If .Test(strResponse) Then
Set objRegMC = .Execute(strResponse)
GetTxt = objRegMC(0).submatches(0)
Else
GetTxt = "Value not found from " & strSite
End If
End With
Set objRegex = Nothing
Set objXmlHTTP = Nothing
Exit Function
ErrHandler:
If Not objXmlHTTP Is Nothing Then Set objXmlHTTP = Nothing
GetTxt = strSite & " unable to be accessed"
End Function
Grazie mille. Fa quello che stavo cercando. Ho sostituito LOCALE_SNATIVELANGNAME = & H4 con LOCALE_SISO639LANGNAME = & H59 per ottenere un valore indipendente locale. – BetaRide
Puoi dirmi delle persone su come mostrare il linguaggio appropriato dopo aver identificato la posizione ... se hai diversi file di risorse ... allora come fanno questi file nell'editor VBA di Excel ... ??? –
dim lang_code as long
lang_code = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
Grazie, funziona. Ma ho solo un numero. Come posso scoprire la vera lingua di questi numeri? – BetaRide
Qui puoi trovare un elenco di LCID http://msdn.microsoft.com/en-us/goglobal/bb964664 –
@brettdj mi sa il più generico 'excel' è sempre un tag utile così come rende più facile le ricerche future. – Fionnuala