• ベストアンサー

エクセルで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なのですが。。。。

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

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) で、いけるとおもいますが。(未確認)

tuneo
質問者

お礼

こんにちは、laptartさん、 kokoronさん。 お教えありがとうございます。 文字に&Hをアンドすると、16進数になると いうことですね。 うまくいきました。 思ったとおりになりました。 ありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

うまくいったと、ご満足のようで結構ですが、なぜこんな質問が出るか判りません。 本件何かかやりたいことが実務などに即して、あるのでしょうが、それに対する、解決法のアイデアそのものを、よくわかる方(回答者)に質問で出して(批判して)もらって、別にもっとよいスマートな方法は無いのかたずねてみたら、今後の為に良かろうかと感想を持ちました。

tuneo
質問者

お礼

こんにちは、imogasiさん。 実は、N88BASICで作成されたMKSデータがあって、 その値をsingle数値で知りたかったので、 テキストボックスにそのMKSデータを入力し、 ボタン1を押してCVS変換の後、 結果をsingle数値でMsgBoxさせたかったのです。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.2

例えばセル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) で代入できます

関連するQ&A

専門家に質問してみよう