VBA 2進数の小数を10進数に変換する

VBA/Excel

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

タイトルとURLをコピーしました