- ベストアンサー
エクセルで16進数に代入したい。
こんにちは、tuneoです。 エクセルで、テキストボックスを表示して、 そこに例えば「8F」と入力した文字を バイト型変数として式に代入したいのです。 例えば、テキストボックスとボタン1を配置して、 ボタン1を押すと、 バイト型配列変数 Dim a(3) as Byte に a(0)=&h8F というように代入したいのです。 出来れば、テキストボックスに 「8F0E5BAF」と入力すると a(0)=&h8F a(1)=&h0E a(2)=&h5B a(3)=&hAF と代入できるとさらにOKなのですが。。。。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1) a(0) = Val("&H"& Sheets("xxx").TextBoxes("txtHEX").Text) 2) str=Sheets("xxx").TextBoxes("txtHEX").Text a(0) = Val("&H"& mid(str,1,2) a(1) = Val("&H"& mid(str,3,2) a(2) = Val("&H"& mid(str,5,2) a(3) = Val("&H"& mid(str,7,2) で、いけるとおもいますが。(未確認)
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
うまくいったと、ご満足のようで結構ですが、なぜこんな質問が出るか判りません。 本件何かかやりたいことが実務などに即して、あるのでしょうが、それに対する、解決法のアイデアそのものを、よくわかる方(回答者)に質問で出して(批判して)もらって、別にもっとよいスマートな方法は無いのかたずねてみたら、今後の為に良かろうかと感想を持ちました。
お礼
こんにちは、imogasiさん。 実は、N88BASICで作成されたMKSデータがあって、 その値をsingle数値で知りたかったので、 テキストボックスにそのMKSデータを入力し、 ボタン1を押してCVS変換の後、 結果をsingle数値でMsgBoxさせたかったのです。
- laputart
- ベストアンサー率34% (288/843)
例えばセルB1に 8F0E5BAF と記入し Dim a(5) As Byte Dim Z as string Z = Range("B1").Value a(0) = "&H" & Mid(Z, 1, 2) a(1) = "&H" & Mid(Z, 3, 2) a(2) = "&H" & Mid(Z, 5, 2) a(3) = "&H" & Mid(Z, 7, 2) で代入できます
お礼
こんにちは、laptartさん、 kokoronさん。 お教えありがとうございます。 文字に&Hをアンドすると、16進数になると いうことですね。 うまくいきました。 思ったとおりになりました。 ありがとうございます。