Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10210 / 13644 ツリー ←次へ | 前へ→

【23092】記号の記述方法? okb 05/3/12(土) 23:04 質問[未読]
【23093】Re:記号の記述方法? ちゃっぴ 05/3/12(土) 23:15 回答[未読]
【23095】Re:記号の記述方法? okb 05/3/13(日) 0:08 質問[未読]
【23097】Re:記号の記述方法? okb 05/3/13(日) 0:25 お礼[未読]
【23099】Re:記号の記述方法? ちゃっぴ 05/3/13(日) 0:49 発言[未読]

【23092】記号の記述方法?
質問  okb  - 05/3/12(土) 23:04 -

引用なし
パスワード
   セル上では、たとえば、全角バツ(✕)の入力が可能なのですが、
マクロ上では"?"になります。
ActiveCell.FormulaR1C1 = "✕"としたいのですが、
ActiveCell.FormulaR1C1 = "?"となります。
一部の記号で、上記のように"?"なるようです。
セル上で、全角バツ(✕)をコピペするマクロでは、貼り付け側のセルが結合
されていると、エラーになります。
いい方法は、ないでしょうか?

【23093】Re:記号の記述方法?
回答  ちゃっぴ  - 05/3/12(土) 23:15 -

引用なし
パスワード
   Unicode拡張文字ですね。

VBA内部で扱う既定の文字CodeはUnicode(UTF-16)ですが、
SourceはShift-JIS(正確には、Windows-31J)ですので、
こういった現象が発生します。

つまり、Unicode(UTF-16)には存在するけど、
Shift-JIS(Windows-31J)には存在しない文字を使用すると
"?"になるということです。

解決策としては、ChrW関数を使って文字Code(Unicode)で
指定してやれば問題ないでしょう。

【23095】Re:記号の記述方法?
質問  okb  - 05/3/13(日) 0:08 -

引用なし
パスワード
   早々の回答、ありがとうございました。
さっそく、unicodeを調べてみたのですが、うまくいきません。
MsgBox (AscW(Range("T1").Value))  'バツ(✕)が入力されている 
10005と表示されたので
MsgBox (ChrW(10005))
としたのですが、? が表示されます。
どこが、まずいのでしょうか?
VBの知識ありませんので、よろしくお願いします。

【23097】Re:記号の記述方法?
お礼  okb  - 05/3/13(日) 0:25 -

引用なし
パスワード
   >MsgBox (ChrW(10005))
>としたのですが、? が表示されます。
メッセージボックスには、うまく表示されませんが、セルには正常に
表示されました。
ありがとうございました。

【23099】Re:記号の記述方法?
発言  ちゃっぴ  - 05/3/13(日) 0:49 -

引用なし
パスワード
   >メッセージボックスには、うまく表示されませんが、セルには正常に
>表示されました。

これは、MsgBoxで表示される文字CodeにShift-JIS(Windows-31J)を
採用しているからです。
(おそらく、旧Versionとの互換性のためでしょうけど・・・)

10210 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free