Excel VBA質問箱 IV

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

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


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

【51314】VBAで共用体 マウス 07/9/11(火) 17:44 質問[未読]
【51315】Re:VBAで共用体 Blue 07/9/11(火) 17:56 回答[未読]
【51316】Re:VBAで共用体 Blue 07/9/11(火) 18:07 回答[未読]
【51330】Re:VBAで共用体 マウス 07/9/12(水) 10:11 お礼[未読]

【51314】VBAで共用体
質問  マウス  - 07/9/11(火) 17:44 -

引用なし
パスワード
   初めて使わせて頂きます。

現在、VBAであるプログラムを組んでいるのですが、
8桁の16進数(String型)をSingle型に変換する所で困っています。

CSngを使って、とりあえず変換は出来るんですが、
小数が含まれる場合にきちんと変換出来ていなくて、
結果が「4.59E+18」とかいう数値になったりしてしまいます。


そこで、CみたいにUNION(共用体)を使って
型変換を容易にしようと考えいろいろ調べたのですが、
VBAに共用体が無いみたいな記述が目立ちました。


もし共用体みたいな使い方、若しくは変換が上手く行く案がありましたら、
是非とも助言を頂きたいと思います。
どうかよろしくお願い致します。

【51315】Re:VBAで共用体
回答  Blue  - 07/9/11(火) 17:56 -

引用なし
パスワード
   過去ログ
【48451】
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=48451;id=excel
を参考にしてみてください。
(先頭の5文字は全角文字なので半角にしてリンクしてください)

【51316】Re:VBAで共用体
回答  Blue  - 07/9/11(火) 18:07 -

引用なし
パスワード
   というか、直接String変数を使うのではUnionで実現できないのでは?
(16進文字列とSingle型でメモリ配置はまったく違う)

文字列ではなくByte型の配列で、たとえば

Dim b(3) As Byte

b(0) = &HFF



b(3) = &HFF

みたいなのであれば変換可能です。

【51330】Re:VBAで共用体
お礼  マウス  - 07/9/12(水) 10:11 -

引用なし
パスワード
   丁寧にご指導、ありがとうございました。


>というか、直接String変数を使うのではUnionで実現できないのでは?
>(16進文字列とSingle型でメモリ配置はまったく違う)

VBAでメモリを気にした事が無かったので初めて知りました。

ご指導頂いた内容をいろいろ考慮してなんとか
16進数からSingle型への変換をする事が出来ました。
本当にどうもありがとうございました!!

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