tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル16進数のカウント
記事No11152
投稿日: 2008/01/15(Tue) 19:56
投稿者haru
こんにちは。解らなくなってきたので伝授お願いします。

テキストボックスAに入力された文字を16進数としてテキストボックスBに入力された数値の数だけ
カウントアップしたいのですが文字として扱ってしまうために普通のカウントになってしまいます。

文字を10進数に変換してそれを再度16進数へ変換しカウントさせようとしましたが、
    
    Dim sHex    As String
    sHex = "X001"
    MsgBox Val("&H" & sHex)
    MsgBox Hex(Val("&H" & sHex))

両方とも「0」と表示されてしまいます。。。
どんな方法で行ったほうがよろしいのでしょうか?

[ツリー表示へ]
タイトルRe: 16進数のカウント
記事No11154
投稿日: 2008/01/15(Tue) 20:48
投稿者大吉末吉
>     sHex = "X001"
VBの16進数表記に「X」は必要ないです。

これだと、

>     MsgBox Val("&H" & sHex)
"&HX001"
と言う文字列になってしまいます。
Xを取り去って、
"&H001"
の様な文字列になるようにしてください。

[ツリー表示へ]
タイトルRe^2: 16進数のカウント
記事No11157
投稿日: 2008/01/16(Wed) 10:24
投稿者haru
ありがとうございます。
文字列のXを取り除いたら0を省く数値を取得することができました。

これを16進数としてカウントさせたいのですがiが10まで行ったらA , B, Cと表示させたいのですが
10,11,12・・・となってしまいます。
HEX関数で16進数に変換しているのですが関係ないのでしょうか?

sHex = "00"
        
For i = 0 To 32
    MsgBox Hex(Val("&H" & sHex & i))
Next i

000,001・・・00A・・・00F…010,011・・・01A・・・01Fとしたいです。

[ツリー表示へ]
タイトルRe^3: 16進数のカウント
記事No11158
投稿日: 2008/01/16(Wed) 10:58
投稿者花ちゃん
> これを16進数としてカウントさせたいのですがiが10まで行ったらA , B, Cと表示させたいのですが
> 10,11,12・・・となってしまいます。
> HEX関数で16進数に変換しているのですが関係ないのでしょうか?
>
> sHex = "00"
>        
> For i = 0 To 32
>     MsgBox Hex(Val("&H" & sHex & i))
> Next i
>
> 000,001・・・00A・・・00F…010,011・・・01A・・・01Fとしたいです。


何がしたいのかよく解らないが、こう言う事ですか?
Private Sub Command1_Click()
   Dim i As Long
   Dim sHex As String
   sHex = "00"
   For i = 0 To 32
      Debug.Print Right$(sHex & Hex(i), 3)
   Next i
End Sub

[ツリー表示へ]
タイトルRe^4: 16進数のカウント
記事No11163
投稿日: 2008/01/16(Wed) 12:53
投稿者haru
説明がわかりにくくてすみません。

ありがとうございます。
LOOPさせる数値をカウントさせ16進数に変換させるんですね。

[ツリー表示へ]