● Windowsの言語環境を取得する ●

OSの言語環境は重要だよね。例えば、日本語以外の環境が設定されていたら、Format$関数等の動作に支障をきたす。はて、どうしましょ。

以下の関数でイッパツで言語環境が分かります。

Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long

Private Const LOCALE_SYSTEM_DEFAULT = 2048
Private Const LOCALE_SENGCOUNTRY = &H1002

'---------------------------------------------------------
'  関数名 :  GetWinLanguage
'  機能   : Windowsの言語環境を取得する
'  引数   : なし
'  返り値 : 正常:言語情報   エラー:空文字列
'  備考  :  日本語環境であれば、"JAPAN"が返る
'---------------------------------------------------------
Public Function GetWinLanguage() As String

    Dim strBuf As String * 256
    Dim ret As Long

    ret = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGCOUNTRY, strBuf, Len(strBuf))

    If ret Then GetWinLanguage = UCase(Left$(strBuf, InStr(strBuf, Chr$(0)) - 1))

End Function

戻る