ChrW &
ChrWではない
Combining Diacritical mark (合成可能な分音記号)は長いので勝手に分記要素とする。(要素だから合成可能、分音記号->分記)
今回の記事は短いが、サロゲートペアのような chrw & chrwではないというのが最大のポイント。(2行で終わり)
正解は+
終わりでも良いが、記事にならないので続ける。
例えばIVS(異体字セレクタ)なら&で続く。+
を使うものは知る限りこれだけである。
文字に対して加算する。&という結合ではなく加算として取り扱われている。&では成功しなかった。
まだ、文字ではなくコードでもよい。
念のためフォントMeiryoに変えて大きさを14に
とても見づらい。MS Pゴシックだとおかしい。などがあるのでフォントを変更する。
以下、見出しにしているのも見えないからである。
á アクサン・グラーブ
Sub InsertCobiningDiaCritcalMark_A()
Dim r As Range
'https://stackoverflow.com/questions/48819144/splitting-string-by-combining-character-groups
Set r = Range(ActiveCell.Address)
r.Clear
r.Font.Name = "Meiryo UI"
r.Font.Size = 14
r = ChrW(&H61) + ChrW(&H333) ' & ではなく足している
End Sub
a͜b レアな真ん中に来るタイプ
Sub InsertCobiningDiaCritcalMark_B()
Dim r As Range
'https://stackoverflow.com/questions/48819144/splitting-string-by-combining-character-groups
Set r = Range(ActiveCell.Address)
r.Clear
r.Font.Name = "Meiryo UI"
r.Font.Size = 14
r.Value = "a" + ChrW(&H35C) + "b" ' & ではなく足している
End Sub
このタイプは文字の後ろに来るコードを判定し、分記要素ならまとめて1字とカウントできない。分記要素の次まで判定してカウントしなければならない。見た目では"a" + ChrW(&H35C) + "b"
で1字だからだ。
ǽ 第一強勢のある発音記号
Sub InsertCobiningDiaCritcalMark_ae()
Dim r As Range
'https://stackoverflow.com/questions/48819144/splitting-string-by-combining-character-groups
Set r = Range(ActiveCell.Address)
r.Clear
r.Font.Name = "Meiryo UI"
r.Font.Size = 14
r = ChrW(&HE6) + ChrW(&H301) ' & ではなく足している
End Sub
これで発音記号も思いのままに入力できる。毎回F5を押さなくてもデータとして保存できる。ポイントは&
ではなく+
という点である。
また "a" としているところはChrW(&HE6)やChr(&HE6)としてもよい。
ただ、何の文字に結合させるかわかった方が可読性が上がると思われる。
連続する場合には
r = r + ChrW(&HE6) + ChrW(&H301)
と続ける。rはr.valueでもよい。しかし文字を続ける場合でも通常の&
ではなく、+
加算であるというのがポイント。サンプルはSplitting string by combining character groups - stackoverflowの記事を参照。
Qiita Exclucive
日本語ベースではこの記事以外VBAで分音記号要素を合成して入力していることを取り上げているの記事は見つかっておらず、現時点ではここだけにしか記述がない。したがってQiita独占(日本限定)ということになる。
ただ、独占になっているのは需要が&u--n;&zannennagara;&arimasenn;🤔😞0️⃣🈳ということではある。一部未対応の字があるようだ。(嘘)
参考文献
Word と Outlook で言語のアクセント 記号を追加するためのキーボード ショートカット
ブログやワード・エクセルなどに英語の発音記号を入力・表示させる方法 | よびめも
コードポイントからUnicode文字を入力する方法 (Windows、Mac、Linux) - Qiita
アキュート・アクセント - Wikipedia
ユニコード ブロック - symbl.cc
Full Emoji List, v15.0
Dark corners of Unicode - Fazzy Notepad 12/09/2015ふりがなは分解する人がいないが、こういう自国語でも気づかない事がある。
Splitting string by combining character groups stackoverflow
MultiByteToWideChar
¥マークの除算と/
マークの除算の違い
https://qiita.com/Q11Q/items/78cc192722105c053d1e
WidecharToMultibyte Win32 Api
MultibyteToWideChar
https://www.cadsharp.com/docs/Win32API_PtrSafe.txt
絵文字ですら2022年9月に発表されたものが2023年2月には表示されていない。
🪼
No 641 jellyfish 🩶
No 151 @ gray heart 🫠
No 50 @ shaking face
`FA75;' No 147 @ light blue heart
1FA00から始まる部分で、各ジャンルの最後に追加。アットマークがついているものが新規追加らしい。するとNoはバージョンによってずれることになる。
🩷💀🫱🏿🫲🏻🌴🐢🐐🍄⚽🫧👑📸🪼👀🚨🏡🕊️🏆😻🌟🧿🍀🫶🏾🍜
— コリス🍡🍭 (@colisscom) September 15, 2022
新しい絵文字のテスト、表示されるかな
ハート、クラゲがまだダメか
— コリス🍡🍭 (@colisscom) September 15, 2022
新しい絵文字は、これです。
— コリス🍡🍭 (@colisscom) September 15, 2022
Emoji Version 15.0https://t.co/Fi4JaNLHtv pic.twitter.com/Gq2wlW71Gz