• ベストアンサー

エクセル VBA

いつもお世話になっております。 エクセルでVBAで外字の出し方はわかったのですが、 その和算とかは、どうすればよいのでしょうか。 たとえば F040 を出すとき MsgBox Chr("&H" & "F040") で変換した文字を出したとします。 その2つとなりの F042 を出したい時、 "&H" & "F040" + 2 の方法が、知りたいのですが、 どなたかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

MsgBox Chr("&H" & "F042") だと思いますがひょとして MsgBox Chr("&H" & "F" & Format(40 + 2, "00")) ということでしょうか?

MrTakuya
質問者

お礼

ご回答ありがとうございました。 参考にさせていただきます。 ありがとうございました。

その他の回答 (1)

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.2

私なら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)) とはいえ私自身は外字を出したことがないのでこれで意図したとおりに文字が出るのかわかりません。 お使いの環境で試してみてください。

MrTakuya
質問者

お礼

ご回答ありがとうございます。 聞いておきながら、失礼な気もしますが、 その後ネットで調べていたら、 MsgBox Chr(Cint("&H" & "F040") + 2) で行けましたので、それで行こうと思います。 でもご丁寧に回答いただきありがとうございました。

関連するQ&A