こんな悩みに回答します。
非表示にできる< 目次 >
こんな悩みの人向け
こんな悩みの人向け
- EXCELのVBAで環境依存文字を使用したい人
※環境依存文字:✔(レ点チェック)など
理由は多岐に渡ると思いますが、VBAで「環境依存文字」を利用したい人は、是非 読んでいってください。
VBEなどが分からない人はコチラをどうぞ
-
【説明】VBEで作成したVBAコードの実行方法【EXCEL VBA】
続きを見る
-
【解説付】マクロ・VBE・VBAの違いの説明【EXCEL VBA】
続きを見る
はい。
ということで、説明します。
VBAで環境依存文字を使用する際の手順(★重要)
簡単な流れ
- 【STEP1】対象文字の「文字コード」を調べる
- 【STEP2】VBAでは「文字コード」から出力する
VBE上では、環境依存文字は「?」(ハテナ)と表示されます。
そして、この「?」は、「?」のまま String型として認識されてしまいます。
つまりは、環境依存文字を使用する場合は「文字コード」から直接 出力してあげる構成にしてあげないと、VBA上で扱えません。
何言ってるの?という人は、読み飛ばしてください。笑
1回とおしで やってみれば、理解できると思いますので、ささっと やっていきましょう。
STEP1:対象文字の「文字コード」を調べる
以下のコードを利用して、対象文字列の「文字コード」を調べましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub 文字コード番号を調べる_A1セル() Dim txt As String txt = Cells(1, 1).Text Debug.Print txt Dim i As Long, c As String For i = 1 To Len(txt) c = Mid(txt, i, 1) Debug.Print c & " ; 文字コード→" & Hex(AscW(c)) 'イミディエイトウィンドに出力されます(VBE上で Ctrl+Gで出現) Next End Sub |
実行すると、以下のように イミディエイトウィンド(VBE上でCtrl+Gで出現)に ”文字列+文字コード” が出力されます。
実際の画面イメージ
では、STEP2に行きます。
STEP2:VBAでは「文字コード」から出力する
STEP1で、✔(レ点チェック)の文字コードは「2714」であることが判明していることを踏まえて、コードを参照ください。
コードは以下の通り。
1 2 3 4 5 6 7 8 9 10 |
Sub 文字コード番号から出力_A2セル() Dim mojinumber As String mojinumber = 2714 '2714:「レ点チェック」の文字コード 'A2セルに出力確認 Cells(2, 1) = ChrW("&H" & mojinumber) End Sub |
なので、変数 mojinumber には入力したい文字コードに差し替えて下さいね。「
実行すると、以下のように A2セルに 「✔(レ点チェック)」が出力されていることが分かります。
実際の画面イメージ
良い感じで 利活用ください!
終わりに
お疲れさまでした。
本記事で紹介した「環境依存文字」をVBAで出力する方法ですが、結構 ニッチな分野なんじゃないかな・・・と個人的には思っとります。
かく言う僕も「環境依存文字」に関しては、VBAであまり使用する頻度が無かったです。
ですが、CrowdWorksなどで Webスクレイピングの案件があった時、
VBAでWebサイトを分析する依頼だったのですが、Webサイト側では「環境依存文字」が意外と使われてたりするので、
それをどうにかするために、本記事で紹介した内容を利用していた、という経緯があり、本記事を執筆するに至りました。
(楽〇 のWebサイト解析は面倒だった。orz)
ということで、今回はここまでとなります。
NakamuraBlogでは、便利だったコードや、ニッチなコードを紹介してますので、
もしよろしければ いろいろと見てやってください。
ここまでご覧いただき、ありがとうございました。
終わり。