日本語はQiita独占 Excel VBA アクセント付き発音記号のような分記要素つき文字を入力する

# ChrW `&` ChrWではない
Combining Diacritical mark (合成可能な分音記号)は長いので勝手に分記要素とする。（要素だから合成可能、分音記号->分記）
今回の記事は短いが、サロゲートペアのような chrw & chrwではないというのが最大のポイント。（2行で終わり）




# 正解は`+`
終わりでも良いが、記事にならないので続ける。
例えばIVS（異体字セレクタ）なら&で続く。`+`を使うものは知る限りこれだけである。
文字に対して加算する。&という結合ではなく加算として取り扱われている。&では成功しなかった。
まだ、文字ではなくコードでもよい。

## 念のためフォントMeiryoに変えて大きさを14に
とても見づらい。MS Pゴシックだとおかしい。などがあるのでフォントを変更する。
以下、見出しにしているのも見えないからである。

## á アクサン・グラーブ

```vb
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 レアな真ん中に来るタイプ

```vb
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字だからだ。

## ǽ 第一強勢のある発音記号

```vb
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](https://stackoverflow.com/questions/48819144/splitting-string-by-combining-character-groups)の記事を参照。



## Qiita Exclucive
日本語ベースではこの記事以外VBAで分音記号要素を合成して入力していることを取り上げているの記事は見つかっておらず、現時点ではここだけにしか記述がない。したがってQiita独占（日本限定）ということになる。
ただ、独占になっているのは需要が&u--n;&zannennagara;&arimasenn;&#x1f914;&#x1f61e;&#x0030;&#xfe0f;&#x20e3;&#x1f233;ということではある。一部未対応の字があるようだ。（嘘）


# 参考文献
[Word と Outlook で言語のアクセント 記号を追加するためのキーボード ショートカット](https://support.microsoft.com/ja-jp/office/word-%E3%81%A8-outlook-%E3%81%A7%E8%A8%80%E8%AA%9E%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%B3%E3%83%88-%E8%A8%98%E5%8F%B7%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88-3801b103-6a8d-42a5-b8ba-fdc3774cfc76)
[ブログやワード･エクセルなどに英語の発音記号を入力･表示させる方法 | よびめも](https://eigo-dosurukosuru.net/english-studying/english-word/pronunciation-and-stress/phonetic-symbols-how-to-display/)
[コードポイントからUnicode文字を入力する方法 (Windows、Mac、Linux) - Qiita](https://qiita.com/toracatman/items/9f609a22b5ad43a4fc4a)
[アキュート・アクセント - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%AD%E3%83%A5%E3%83%BC%E3%83%88%E3%83%BB%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%B3%E3%83%88)
[ユニコード ブロック - symbl.cc](https://symbl.cc/jp/unicode/blocks/)
[Full Emoji List, v15.0](https://unicode.org/emoji/charts/full-emoji-list.html)
[ Dark corners of Unicode - Fazzy Notepad 12/09/2015](https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/#combining-characters-and-character-width)ふりがなは分解する人がいないが、こういう自国語でも気づかない事がある。
[Splitting string by combining character groups stackoverflow](https://stackoverflow.com/questions/48819144/splitting-string-by-combining-character-groups)
[MultiByteToWideChar](http://www.t-net.ne.jp/~cyfis/win_api/sdk/MultiByteToWideChar.html)
[&yen;マークの除算と`/`マークの除算の違い](https://ameblo.jp/sukeken3298/entry-10018920372.html)
https://qiita.com/Q11Q/items/78cc192722105c053d1e
[WidecharToMultibyte Win32 Api](https://learn.microsoft.com/ja-jp/windows/win32/api/stringapiset/nf-stringapiset-widechartomultibyte)
[MultibyteToWideChar](https://learn.microsoft.com/ja-jp/windows/win32/api/stringapiset/nf-stringapiset-multibytetowidechar)
https://www.cadsharp.com/docs/Win32API_PtrSafe.txt

絵文字ですら2022年9月に発表されたものが2023年2月には表示されていない。
`&#x1FABC;`  No 641 jellyfish `&#x1FA76;` No 151 @ gray heart `&#x1FAE0;`No 50 @ shaking face
`&#1FA75;' No 147 @ light blue heart
1FA00から始まる部分で、各ジャンルの最後に追加。アットマークがついているものが新規追加らしい。するとNoはバージョンによってずれることになる。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">🩷💀🫱🏿‍🫲🏻🌴🐢🐐🍄⚽🫧👑📸🪼👀🚨🏡🕊️🏆😻🌟🧿🍀🫶🏾🍜<br><br>新しい絵文字のテスト、表示されるかな</p>&mdash; コリス🍡🍭 (@colisscom) <a href="https://twitter.com/colisscom/status/1570293782775762947?ref_src=twsrc%5Etfw">September 15, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ハート、クラゲがまだダメか</p>&mdash; コリス🍡🍭 (@colisscom) <a href="https://twitter.com/colisscom/status/1570294037625860097?ref_src=twsrc%5Etfw">September 15, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">新しい絵文字は、これです。<br><br>Emoji Version 15.0<a href="https://t.co/Fi4JaNLHtv">https://t.co/Fi4JaNLHtv</a> <a href="https://t.co/Gq2wlW71Gz">pic.twitter.com/Gq2wlW71Gz</a></p>&mdash; コリス🍡🍭 (@colisscom) <a href="https://twitter.com/colisscom/status/1570296498306547712?ref_src=twsrc%5Etfw">September 15, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>