Excel VBA質問箱 IV

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

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


2760 / 13646 ツリー ←次へ | 前へ→

【66122】2進数から16進数の変換について とってぃ 10/8/2(月) 20:20 質問[未読]
【66123】Re:2進数から16進数の変換について kanabun 10/8/2(月) 20:44 発言[未読]
【66124】Re:2進数から16進数の変換について kanabun 10/8/2(月) 20:58 発言[未読]
【66125】Re:2進数から16進数の変換について とってぃ 10/8/3(火) 10:17 お礼[未読]

【66122】2進数から16進数の変換について
質問  とってぃ E-MAIL  - 10/8/2(月) 20:20 -

引用なし
パスワード
   はじめまして。初心者です。
どなたか教えてください。

CommandButton1_Click()で動作したい。
TextBox1〜4までに2進数(00,01,10,11)が4つ並んでる。

TextBox5にTextBox1〜4の2進数を16進数に変換したです。

例:TextBox1:10/TextBox2:01/TextBox3:10/TextBox4:11
TextBox5に9Bと表示させたい。
また、2桁で表示したい。(16進数の9ならば09と表示)
よろしくお願い致します。

【66123】Re:2進数から16進数の変換について
発言  kanabun  - 10/8/2(月) 20:44 -

引用なし
パスワード
   ▼とってぃ さん:
>TextBox1〜4までに2進数(00,01,10,11)が4つ並んでる。
>
>TextBox5にTextBox1〜4の2進数を16進数に変換したです。

ワークシートなら BIN2HEX関数があるので、
ht tp://office.microsoft.com/ja-jp/excel-help/HP010342205.aspx

シートの[B1]に =BIN2HEX(A1,2)
と式を入れておき、
TextBox1〜4 の値を たとえば [A1]に、
TextBox5の答えは [B1]から得るとかではだめですか?

Private Sub CommandButton1_Click()
 Range("A1").Value = TextBox1.Text _
        & TextBox2.Text _
        & TextBox3.Text _
        & TextBox4.Text
 Range("B1").Formula = "=BIN2HEX(A1,4)"
 TextBox5.Text = Range("B2").Value

End Sub

【66124】Re:2進数から16進数の変換について
発言  kanabun  - 10/8/2(月) 20:58 -

引用なし
パスワード
   参考までに こんなのもありました

Function Bin2Dec(sMyBin As String) As Long
  Dim x As Integer
  Dim iLen As Integer

  iLen = Len(sMyBin) - 1
  For x = 0 To iLen
    Bin2Dec = Bin2Dec + _
     Mid(sMyBin, iLen - x + 1, 1) * 2 ^ x
  Next
End Function

これをつかうと

Private Sub CommandButton1_Click()
 Dim i As Long
 i = Bin2Dec(TextBox1.Text _
      & TextBox2.Text _
      & TextBox3.Text _
      & TextBox4.Text)
 TextBox5.Text = Right$("00" & Hex$(i), 2)

End Sub

【66125】Re:2進数から16進数の変換について
お礼  とってぃ E-MAIL  - 10/8/3(火) 10:17 -

引用なし
パスワード
   ▼kanabun さん
ありがとうございました。
見事にやりたいことが出来ました。

>参考までに こんなのもありました
>
>Function Bin2Dec(sMyBin As String) As Long
>  Dim x As Integer
>  Dim iLen As Integer
>
>  iLen = Len(sMyBin) - 1
>  For x = 0 To iLen
>    Bin2Dec = Bin2Dec + _
>     Mid(sMyBin, iLen - x + 1, 1) * 2 ^ x
>  Next
>End Function
>
>これをつかうと
>
>Private Sub CommandButton1_Click()
> Dim i As Long
> i = Bin2Dec(TextBox1.Text _
>      & TextBox2.Text _
>      & TextBox3.Text _
>      & TextBox4.Text)
> TextBox5.Text = Right$("00" & Hex$(i), 2)
>
>End Sub

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