水曜日, 9月 11, 2024

Excel VBA 30 
不透明度の色を何枚重ねたら100%になるか?


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
-------------------

実行したら透明度の%値を入力すると・・・

何枚必要なのかが表示されます。