|
こんにちは。かみちゃん です。
>教えて下さったプログラミングはどういう意味ですか。
'で始まる行はコメント行で、プログラムでは無視されますので、そこに意味を書いたのですが、具体的にどこがわからないのですか?
なお、さきほど、のコードに1行だけ不要な行がありましたので、訂正します。
Sub 二進数を十進数へ()
A = Cells(1, 1).Value
B = Len(Cells(1, 1).Value)
For i = 1 To B
'Cells(1, 1)の値が2進数文字列(1または0で構成される文字列)でない場合
If Mid(A, i, 1) <> "1" And Mid(A, i, 1) <> "0" Then
x = 0
'Cells(1, 2)は表示しない
Cells(1, 2).Value = ""
'マクロを終了する。
'MsgBox "Err" ' ←この行が不要です。削除してください。すみません。
Exit Sub
End If
'チェックOKの場合だけ、10進数変換の計算をする。
x = x + Mid(A, i, 1) * 2 ^ (B - i)
Next
Cells(1, 2).Value = x
End Sub
>ちなみに教師からは二進数は1と0だけで成りたっているから
>それ以外の数を除くのを付け足すように言われました。
「それ以外の数を除く」という仕様がわからないですね。
123001という数字があった場合、どうしたいのですか?
上記のコードであれば、0または1以外の文字があれば、2進数でないと判断して処理を中止するようにしているのですが。
|
|