find当前的用户语言
如何在vba程序中告诉当前的用户语言?
我需要用适当的语言来显示表格。
我最初的代码(利用这个vbforum代码 )假设Windows和Excel共享一个共同的语言 – 可能但不是防弹。
更新
修改后的代码:
- 返回区域设置ID(LCID)。
- 从这个msft链接查找LCID。
- 使用正则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)