| 
    
     |  | こんにちは。かみちゃん です。 
 >教えて下さったプログラミングはどういう意味ですか。
 
 'で始まる行はコメント行で、プログラムでは無視されますので、そこに意味を書いたのですが、具体的にどこがわからないのですか?
 
 なお、さきほど、のコードに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進数でないと判断して処理を中止するようにしているのですが。
 
 |  |