Excel VBA:使用している言語を取得|GetLocaleInfoでロケール情報取得

APIのGetLocaleInfoを使用し、システムの使用している言語を取得します。



Homeに戻る > Excel プログラムのTipsへ

Windows APIのGetLocaleInfoはロケール情報を取得する関数です。

ロケールとは国や地域毎の言語や通貨などの設定のことです。

GetLocaleInfoの構文:

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

  • Locale:取得先を設定します。下記の定数を使います。
    LOCALE_SYSTEM_DEFAULT:システムロケール
    LOCALE_USER_DEFAULT:ユーザーロケール
  • LCType:取得したい情報の種類を指定します。
    LOCALE_SENGCOUNTRYで国名が英語で返ります。日本語を使用している場合、「Japan」が返ります。
  • lpLCData:取得した情報の格納先を指定します。
  • cchData:格納先lpLCDataのサイズを指定します。

関連する記事の「コンピュータ名の取得」を掲載していますので参照してください。



ロケール情報を取得するVBA

VBAの解説

  1. Windows API GetLocaleInfoを宣言します。
  2. LOCALE_SYSTEM_DEFAULTとLOCALE_SENGCOUNTRYの定数を宣言します。
・コマンドボタン クリックイベント
  1. ロケール情報を格納する変数のサイズを指定し宣言します。
  2. GetLocaleInfoを呼び出します。引数は下記の通りです。
    Localeは、LOCALE_SYSTEM_DEFAULTを指定
    LCTypeは、LOCALE_SENGCOUNTRYを指定
    lpLCData:最初に宣言した変数のbufを指定
    cchData:最初に宣言した変数のサイズ256を指定
  3. B10セルに戻り値の変数Bufを代入します。

Excel VBA コード

Option Explicit

'Excel API宣言 ロケールに関する情報を取得
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


Private Sub CommandButton1_Click()
    Dim buf As String * 256

    'API
    GetLocaleInfo LOCALE_SYSTEM_DEFAULT, LOCALE_SENGCOUNTRY, buf, 256
    '取得した言語を表示
    Range("B10") = buf
End Sub



Excel実行結果

コマンドボタンをクリックします。
B10に使用されている言語、「Japan」と表示されています。
VBAの実行シート画面


Homeに戻る > Excel プログラムのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved