- ベストアンサー
エクセル VBA
いつもお世話になっております。 エクセルでVBAで外字の出し方はわかったのですが、 その和算とかは、どうすればよいのでしょうか。 たとえば F040 を出すとき MsgBox Chr("&H" & "F040") で変換した文字を出したとします。 その2つとなりの F042 を出したい時、 "&H" & "F040" + 2 の方法が、知りたいのですが、 どなたかよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MsgBox Chr("&H" & "F042") だと思いますがひょとして MsgBox Chr("&H" & "F" & Format(40 + 2, "00")) ということでしょうか?
その他の回答 (1)
- kenpon24
- ベストアンサー率64% (66/102)
私なら16進数の数を10進数に変換して、足し算して再度16進数に変換します。 16進数から10進数へはval関数を使用して変換します。 ただしval関数は"&H7FFF"までしか一度に変換できないため、分割して変換を行います。 Dim st as string dim L as string dim R as string st = "F040" '分割 L = left(st, 2) R = right(st, 2) 'hex(val("&H" & L) * 256で"F000"を計算 'val("&H" & R) + 2で"0040" + 2を計算 '足したあとhex関数で16進数に変換 MsgBox Chr("&H" & hex(val("&H" & L) * 256 + val("&H" & R) + 2)) とはいえ私自身は外字を出したことがないのでこれで意図したとおりに文字が出るのかわかりません。 お使いの環境で試してみてください。
お礼
ご回答ありがとうございます。 聞いておきながら、失礼な気もしますが、 その後ネットで調べていたら、 MsgBox Chr(Cint("&H" & "F040") + 2) で行けましたので、それで行こうと思います。 でもご丁寧に回答いただきありがとうございました。
お礼
ご回答ありがとうございました。 参考にさせていただきます。 ありがとうございました。