'Unicodeから文字入力 ActiveCell = ChrW(9451)
'Unicodeの文字コードを取得 Debug.Print AscW(ActiveCell.Text)
VBAで扱えない環境依存文字について
Windowsや使用しているアプリケーションの環境によっては、正しく表示・入力できない「環境依存文字」が存在します。
これらの文字は、フォントや文字コードの違いによって利用できない場合があり、VBAで扱う際にも注意が必要です。

環境依存文字は、PCやアプリケーションの環境によって表示できたりできなかったりする文字です。
たとえば、画像のように「11」を変換した際に候補として出てくる特殊な文字は、別のPCではそもそも存在しない場合があります。これが環境依存文字の典型例です。
さらに厄介なのは、VBAが認識できない環境依存文字が存在するという点です。
画像の文字をアクティブセルに入力し、その値をイミディエイトウィンドウへ出力しようとすると、実際には「?」が返されてしまいます。
これは、VBAの文字コード体系にその文字が存在しないため、正しく表現できないことが原因です。
PC上では表示できていても、VBA側では文字として扱えず、結果的に「?」へ置き換えられてしまいます。
まさに扱いづらい困った存在といえるでしょう。
そのため、ワークシートにこの文字を入力しようとして「?」を指定しても、当然ながら「?」が入力されるだけで、元の環境依存文字を再現することはできません。
コード解説
そこで活用するのが、ChrW関数です。
ActiveCell = ChrW(9451)
ChrW関数は、Unicodeのコードポイントを指定して該当する文字を返す関数です。
このコードを実行すると、アクティブセルに画像で示した環境依存文字が入力されます。
VBA自体はその文字を正しく扱えないため、イミディエイトウィンドウへ出力すると「?」に置き換えられてしまいます。
しかし、ワークシートに出力する場合は問題なく文字が表示されます。
また、VBAの内部メモリ上ではUnicodeのコードポイントとして保持されているため、変数に代入して扱うことも可能です。
ただし、Unicodeが定義するコードポイントは非常に多く、すべてを掲載することは現実的ではありません。
そのため、必要な文字コードは都度調べて指定する必要があります。
Debug.Print AscW(ActiveCell.Text)
AscW関数を使うと、指定した文字のUnicodeコードポイントを取得できます。
この関数は、引数に渡した文字列のうち、先頭の1文字に対応するUnicodeコードポイントを返します。
AscW関数で環境依存文字のコードを調べ、そのコードをChrW関数へ渡すことで、ワークシートへ正しく入力することが可能になります。
環境依存文字は本来あまり使用が推奨されませんが、「㈱」のように実務で便利なケースもあり、使いたくなる場面は少なくありません。
なお、Mac版ExcelのVBAはUnicodeの扱いがWindows版と異なるため、AscW関数で環境依存文字のコードを取得できない場合があります。
特殊文字や外字では常に「?」として扱われることが多く、正しいコードを取得できない点に注意が必要です。
補足:ChrW / AscW が扱えない文字(サロゲートペア)について

環境依存文字とは別に、VBAでは扱えない文字として「サロゲートペア文字」があります。
これは、画像のような絵文字などのようにU+10000 以上のコードポイントを持つ文字のことです。
なお、変換候補と実際の入力結果に差が出ているのは、フォントやIMEの仕様によるもので、環境依存文字とは別の問題です。
VBAのChrW関数は0〜65535(U+FFFF)までのコードポイントしか扱えないため、サロゲートペア文字を正しく生成することはできません。
また、AscW関数で取得しようとしても、サロゲートペアの片側だけが返されるため、正しいコードポイントを取得できません。
そのため、絵文字などのサロゲートペア文字は、VBAでは基本的に扱えない点に注意が必要です。