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の解説
- Windows API GetLocaleInfoを宣言します。
- LOCALE_SYSTEM_DEFAULTとLOCALE_SENGCOUNTRYの定数を宣言します。
・コマンドボタン クリックイベント
- ロケール情報を格納する変数のサイズを指定し宣言します。
- GetLocaleInfoを呼び出します。引数は下記の通りです。
Localeは、LOCALE_SYSTEM_DEFAULTを指定
LCTypeは、LOCALE_SENGCOUNTRYを指定
lpLCData:最初に宣言した変数のbufを指定
cchData:最初に宣言した変数のサイズ256を指定
- 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」と表示されています。
Homeに戻る >
Excel プログラムのTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved