Visual Studio Basicと同じ事をVBAでやってみました。
Sub CalculateLayersForOpacity()
Dim opacity As Double
Dim layers As Integer
Dim currentTransparency As Double
Dim transparency As Double
' ユーザーから不透明度を入力させる
opacity = InputBox
("不透明度N%を入力してください:", "不透明度の入力")
' 入力が無効な場合のチェック
If Not IsNumeric(opacity) Or opacity <= _
0 Or opacity > 100 Then
MsgBox "無効な入力です。"
0 より大きく100以下の数値を入力してください。 ", v"
bExclamation , "入力エラー"
Exit Sub
End If
' 透明度の計算
transparency = 1 - (opacity / 100)
' 初期化
layers = 0
currentTransparency = 1
' 99%以上不透明になるまでの層の計算
Do While currentTransparency > 0.01
currentTransparency = _
currentTransparency * transparency
layers = layers + 1
Loop
' 結果を表示
MsgBox "99%以上不透明になるまでに必要な層の数: " _
& layers, vbInformation, "計算結果"
End Sub
-------------------
実行したら透明度の%値を入力すると・・・
何枚必要なのかが表示されます。