[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『➀(〇囲み文字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
↑からコピペしちゃえば早いですよ。
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.