まりふのひと

Excel2013のセルの書式設定にロケールIDを使ってみた

 せっちゃんの 2019-09-21 のブログを見ていて

syabondama58.hatenablog.jp
f:id:ogohnohito:20191005115202p:plain:right:w320
  • 年齢を表示するセルの、セルの書式設定 表示形式が誤っていた。
    ユーザー定義 種類に「yy」となっていた。
  • セルの書式設定 表示形式を「標準」にしたら、年齢が表示された。

内容は‥‥ 置いといて、ユーザー定義/種類 が [$-ja-JP]yy が気になって、バージョンは違うが Excel2013 でテストした。

  • [$-ja-JP] を、ここでは「ロケールID」(LCID)と呼ぶことにする。
  • [$-ja-JP] は、Excel2016の 日本語 のロケールID。Excel2013では [$-411] となる。
  • Excel2016で日本のロケールID [$-411] を指定すると、[$-ja-JP] に変換されるという情報がある。
1.サンプルデータ

 入力してあるのは曜日コード。ロケールID/書式 で表示がどう変わるか調べる。

言語 標準 日本語 英語(US) 韓国語 中国語
ロケールID なし [$-411] [$-409] [$-412] [$-804]
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7
2.手順
  1. サンプルデータを Excel にコピペし、[貼り付け先の書式に合わせる]。(必須)
    • セルの書式設定は「標準」になっているはず。
    • セルの書式設定以外の変更(列幅や罫線,色等)は任意。
  2. セルの書式設定/ユーザー定義/種類:aaa
    • B列のセルの書式を aaa にする。
    • C列のセルの書式を [$-411]aaa にする。
    • D列のセルの書式を [$-409]aaa にする。
    • E列のセルの書式を [$-412]aaa にする。
    • F列のセルの書式を [$-804]aaa にする。
  3. セルの書式設定/ユーザー定義/種類:aaaa
    • B列のセルの書式を aaaa にする。
    • 以下、2. に準じ、C~F列のセルの書式設定を行う。
  4. セルの書式設定/ユーザー定義/種類:ddd
    • B列のセルの書式を ddd にする。
    • 以下、2. に準じ、C~F列のセルの書式設定を行う。
  5. セルの書式設定/ユーザー定義/種類:dddd
    • B列のセルの書式を dddd にする。
    • 以下、2. に準じ、C~F列のセルの書式設定を行う。
3.結果

No.書式結果
1コピペ後
(標準)
f:id:ogohnohito:20191007082521j:plain:w512
2aaaf:id:ogohnohito:20191007083335j:plain:w512
3aaaaf:id:ogohnohito:20191007083620j:plain:w512
4dddf:id:ogohnohito:20191007083909j:plain:w512
5ddddf:id:ogohnohito:20191007083940j:plain:w512

4.考察
  • 書式 ddd または dddd でも、ロケールIDを指定すればその国の言語で表示されることが判った。
  • 書式 aaa または aaaa でも、[$-409]aaa とすると、英語表示になる。
  • ハングルや中国語のフォントが入っていない(たぶん)のに表示されたのにビックリした。
  • ということは、アメリカのPCでも曜日の日本語表示ができる‥‥ と言うことであろう。
  • No.1 の例えばセルB3 を選択すると、数式バーには 1 と表示されるが、No.2 では 1900/1/1 と表示された。
    • セルの書式を「曜日」にしたことで、分類が「日付」に変わったと思われる。

  • せっちゃんさんのケース [$-411]yy は、「西暦年の下二桁を日本語で表示せよ」となる。
    1. セルには 72 が入っている。(DateDif の答え)
    2. このセルのセルの書式を「日付」にすると、1900/3/12 と表示される。
    3. 年の下二桁は 00。西暦の日本語表示は無いので、そのまま 00 が表示された‥‥ と推定される。
    4. セルの書式を [$-411]0 とすれば、そのまま 72 が表示されたのに...