[[20040424195923]] 『16進数』(A) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『16進数』(A)

7桁の番号を16進数表示(bと6を外して)簡単にできないでしょうか?

 0000001 0000002 0000003 0000004 0000005 0000007 0000008
 0000009 000000a  000000c  000000d  000000e  000000f  0000010

  こんな感じで作成していきたいのですが


 ふつう
 0〜9で10進数
 0〜1で2進数
 0〜7で8進数
 0〜Fで16進数

 これもふつうに考えると0から数えるわけだけど、
 2つ使わないから14進数で表したいということ?

 例えば1234567という番号だったら、241ED5としたいということ?

 (ramrun)


以前ここで掲載されていた下記のマクロでは、
0002000〜0002eeeまで表示します。
この中にある
6とbを外して連番を作りたいのですが
(14進数の連番を作成したいのですが)

Sub testHex()
Dim j As Integer, k As Integer
k = 1

 For j = 8192 To 12014
Cells(k, 1) = j
Cells(k, 2) = "'000" & Hex(j)
k = k + 1
Next j

End Sub


 > 以前ここで掲載されていた下記のマクロ...
 それらしきマクロが見当たりません...。
(検索下手・kazu)


 ファンクションにしたら、めっさ時間かかります。
(ramrun)

 たぶんこれです。しかもkazuさん(笑)。

https://www.excel.studio-kazu.jp/z_old_log/13.html#u2129

 Sub testHex()
 Dim j As Long, k As Long
 k = 1
 For j = 8192 To 12014
    Cells(k, 1) = j
    Cells(k, 2) = "'" & dec(j)
    k = k + 1
 Next j
 End Sub

 Function dec(ByVal c As Long) As String
 Dim ary As Variant
 Dim d As Long, buf As String
 ary = Array("0", "1", "2", "3", "4", "5", _
    "7", "8", "9", "A", "C", "D", "E", "F")
 Do
    d = Int(c / 14)
    buf = buf & ary(c - d * 14)
    c = d
 Loop While (c > 0)
 buf = buf & Mid("0000000", 1, 7 - Len(buf))
 For n = Len(buf) To 1 Step -1
    dec = dec & Mid(buf, n, 1)
 Next n
 End Function


kazuさん、ramrunさん ありがとうございます。
問題解決いたしました。
(A)

 14進法でしたら、解決済みですが、このようなことでもよいかもしれません。 (LOOKUP)
=IF(A1="","",
MID("012345789acdef",MOD(A1/14^6,14)+1,1)
&MID("012345789acdef",MOD(A1/14^5,14)+1,1)
&MID("012345789acdef",MOD(A1/14^4,14)+1,1)
&MID("012345789acdef",MOD(A1/14^3,14)+1,1)
&MID("012345789acdef",MOD(A1/14^2,14)+1,1)
&MID("012345789acdef",MOD(A1/14,14)+1,1)
&MID("012345789acdef",MOD(A1,14)+1,1))

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.