VBA 使えるソースコード

つたないソースコードを載せます。これは、他人の書いたソースコードを読む練習に最適です。初心者の方は、どうしたらきれいになるかなど考えながら活用してください。

VBA 測定単位を計算する(関数)

Function Unit(x() As Double) As Double()
Dim i As Integer
Dim n As Integer
Dim a As Integer
Dim m As Double
Dim j As Integer
Dim x_k() As Double
Dim x_len As Integer
Dim max As Double, min As Double
max = x(1)
min = x(1)
x_len = UBound(x)

For i = 1 To x_len
If max < x(i) Then
max = x(i)
End If

If min > x(i) Then
min = x(i)
End If
Next i

n = 0
a = 0
Do While a = 0
a = 1
For i = 1 To x_len
x(i) = x(i) * 10 ^ n
If x(i) <> Int(x(i)) Then
a = 0
End If
x(i) = x(i) / 10 ^ n
Next i
n = n + 1
Loop
x_k = x

For i = 1 To UBound(x)
x_k(i) = 10 ^ (n - 1) * x(i)
Next i

For i = Int*1 ^ 0.5) + 1 To 1 Step -1
a = 1
For j = 1 To UBound(x)

If x_k(j) Mod i <> 0 Then
a = 0
Exit For
End If

Next j
If a = 1 Then
m = i
Exit For
End If
Next i

m = 10 ^ (-n + 1) * m
Cells(1, 1).Value = "測定単位 : " & m
End Function

*1:max * 10 ^ (n - 1