find当前的用户语言

如何在vba程序中告诉当前的用户语言?

我需要用适当的语言来显示表格。

我最初的代码(利用这个vbforum代码 )假设Windows和Excel共享一个共同的语言 – 可能但不是防弹。

更新

修改后的代码:

  1. 返回区域设置ID(LCID)。
  2. 从这个msft链接查找LCID。
  3. 使用正则expression式parsingLCID以获取语言。

在我的机器下面输出示例

该代码将让用户知道是否在访问LCID网站时有任何错误,或parsing国名。

在这里输入图像描述

  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 
 dim lang_code as long lang_code = Application.LanguageSettings.LanguageID(msoLanguageIDUI)