2行4列目に入力された2進数の小数値を読み込んで、3行4列目に表示する仕様です。
今のところ、Continue Forがエラーで、原因分からず。。。
Sub ConvertBinaryToDecimal()
Dim binaryValue As String
Dim decimalValue As Double
‘2行4列目のセルに入力された2進数の値を取得
binaryValue = Sheets(“Sheet1”).Cells(2, 4).Value
‘2進数を10進数に変換
decimalValue = binaryToDecimal(binaryValue)
‘3行4列目のセルに10進数の値を出力
Sheets(“Sheet1”).Cells(3, 4).Value = decimalValue
End Sub
Function binaryToDecimal(binary As String) As Double
Dim integerPart As Long
Dim fractionalPart As Double
Dim isFractionalPart As Boolean
Dim i As Integer
integerPart = 0
fractionalPart = 0#
isFractionalPart = False
‘2進数の各桁を10進数に変換
For i = 1 To Len(binary)
If Mid(binary, i, 1) = “.” Then
isFractionalPart = True
Continue for
End If
If Not isFractionalPart Then
integerPart = integerPart * 2 + Val(Mid(binary, i, 1))
Else
fractionalPart = fractionalPart / 2 + Val(Mid(binary, i, 1))
End If
Next i
’10進数に変換した値を返す
binaryToDecimal = integerPart + fractionalPart
End Function