[[20210818143701]] 『➀(〇囲み文字1)のフォント変更』(こぶた) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『➀(〇囲み文字1)のフォント変更』(こぶた)

こちらにはいつもお世話になっています。

行で値が増加するように➀(〇囲み文字1)、?A(〇囲み文字2)、?B(〇囲み文字3)・・・・とプルダウンリストで入力しています。

シートのフォントはHG正楷書体-PROです。
?A(〇囲み文字2)以降、?B(〇囲み文字3)・・・・・・のフォントは
変更できるのですが、➀(〇囲み文字1)のみ設定できません。
表記はHG正楷書体-PROです。

試しに他のセルに、➀(〇囲み文字1)を入力したところ、フォントの
表記はSegoe UI Symbolに変更されます。

HG正楷書体-PROの文字コード表には、➀(〇囲み文字1)は含まれています。

この現象はシステムの不具合なのでしょうか?

おわかりになる方がいらっしゃればよろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


➀は、➀
➁は、➁
➂は、➂

①は、①
②は、②
③は、③

ですね。(つまり違う文字が混ざってのでは?)

(白茶) 2021/08/18(水) 16:15


 気になったので
 >HG正楷書体-PROの文字コード表には、➀(10112の方)は含まれています。 
 について調べてみました。

 [HG正楷書体-PRO]に収録されている文字は、
  半角英数字、
  JIS非漢字、
  第1水準漢字、
  第2水準漢字、
  NEC特殊文字、
  IBM拡張文字、
  Apple標準システム外字、
  [令和]の合字1文字
                     の 合計7,661文字 だそうです。
                        どうも入ってなさそうですね。

EnumChar
https://forest.watch.impress.co.jp/docs/review/703795.html

 で自分のPCのフォントを改めて確認してみましたが、
 [U+2700]から[U+27BF]の範囲は
   [HG正楷書体-PRO]        1文字も出てこない
   [Segoe UI Symbol]       丸数字含めいっぱい出てくる
   [MS Pゴシック-標準]  丸数字含めいっぱい出てくる
                                                        という結果でした。

 どうも[HG正楷書体-PRO]のフォントファイル自体には10112の方のグリフは収録されていない様です。
 フォントリンク等システムによる補正(変換)が効いてるだけだと思われます。

 尚、[U+2460]から[U+24FF]の範囲は
   [HG正楷書体-PRO]        丸数字(1から20まで)だけ出てくる(他の文字は出てこない)
   [Segoe UI Symbol]       「Ⓜ」(9410)だけ出てくる(他の文字は出てこない)
   [MS Pゴシック-標準]  丸数字含めいっぱい出てくる
                                                        という結果でした。

 ①(9312の方)なら[HG正楷書体-PRO]にもグリフが収録されてるって事ですね。

 実際に今回ご投稿されている文字を拝見しても、上記結果と整合します。
 「1」だけ10112の方を使用している状況だと思われます。
 これを9312の方に修正すれば良さそうですね。

(白茶) 2021/08/19(木) 16:15


白茶様

いろいろと調べていただきありがとうございました。
囲み文字1を10112→9312へ修正ということでしょうか?

方法、調べてみます。
気持ちが悪かったので助かりました!!
(こぶた) 2021/08/23(月) 10:10


丸数字 - Wikipedia
https://ja.wikipedia.org/wiki/%E4%B8%B8%E6%95%B0%E5%AD%97

↑からコピペしちゃえば早いですよ。

 10112とか9312の値はいわゆるコードポイント(符号位置)というものです。
 丸数字には幾つか種類があるんだよ。って事ですね。

 任意の文字からコードポイントを調べるのにUNICODE関数ってのがある様です。
 が、残念ながらExcel2010では使えません。

 ↓こんな感じの関数を自作すればワークシート上でも調べられます。

    Function szAscW(aChar As String) As Long
        Dim b() As Byte
        b = aChar
        If b(1) >= &HD8& And b(1) <= &HDF& And UBound(b) >= 3 Then
            szAscW = ((b(1) * &H100& + b(0)) - &HD800&) * &H400& + ((b(3) * &H100& + b(2)) - &HDC00&) + &H10000
        Else
            szAscW = b(1) * &H100& + b(0)
        End If
    End Function

 また逆変換(コードポイントから文字に変換)するには
 ↓こんな感じの関数になります。

    Function szChrW(cCode As Variant) As String
        Dim b() As Byte
        If cCode >= &H10000 Then
            Dim H As Long, L As Long
            ReDim b(0 To 3) As Byte
            H = (cCode - &H10000) \ &H400& + &HD800&
            L = (cCode - &H10000) Mod &H400& + &HDC00&
            b(1) = H \ &H100&: b(0) = H Mod &H100&
            b(3) = L \ &H100&: b(2) = L Mod &H100&
        Else
            ReDim b(0 To 1) As Byte
            b(1) = cCode \ &H100&: b(0) = cCode Mod &H100&
        End If
        szChrW = b
    End Function

 ご参考に...

(白茶) 2021/08/23(月) 11:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.