|
▼ichinose さん:
ありがとうございました、うまくいきました.
作ったのは、
> bit(桁 - g0 + 1) = 0
> If myvalue And 2 ^ (g0 - 1) Then bit(桁 - g0 + 1) = 1
の部分がわからず困っていたのです.後はだいたい同じなのですが・・.
こんなにシンプルに書けるとは、驚きです.
お礼が遅れてしまいましたが、本当にありがとうございました.
>▼MAK さん:
>こんばんは。
>
>
>>再帰計算等試しましたが、難しくかなり手づまっております.
>試したコードも見せてください。
>0と1の並びなら、二進数ですよね?
>下記は、15桁の例です。桁数が、17以上だとシートに表示するのは無理ですけど(Excel2002では)。
>
>'=============================================================
>Sub test()
> Const 桁 = 15
> Dim g1 As Long
> Dim g0 As Long
> g1 = 1
> For g0 = 0 To 2 ^ 桁 - 1
> Range(Cells(g1, 1), Cells(g1, 桁)).Value = decbin(g0, 桁)
> g1 = g1 + 1
> Next
>End Sub
>
>'================================================================
>Function decbin(myvalue As Long, 桁 As Long) As Variant
>'30桁ぐらいなら、これでいけます
> Dim g0 As Long
> ReDim bit(1 To 桁) As Long
> For g0 = 1 To 桁
> bit(桁 - g0 + 1) = 0
> If myvalue And 2 ^ (g0 - 1) Then bit(桁 - g0 + 1) = 1
> Next
> decbin = bit()
> Erase bit()
>End Function
|
|