こんにちは。
「VBA」とのみ言われましても、Excel、Word、Outlook、etc...など、いろいろ
ありますので、以下は、Excel VBAの話しとして仮定させて頂きます。
> まず、リストやコンボボックスで選択肢を作り、選択された内容の値を使った計算をしていきます。
> そして、テキストボックスより、数字の入力を行い、結果を表示します。
とありますので、フォーム上に貼り付けた、各種コントロールの操作の仕方と解釈
致しました。
■不明点その1
> 例としては、自動車や自転車をどちらかを選択して、
> X=2*3
> y=4/3
>
> という値から、(テキストボックス3*テキストボックス4*X/テキストボックス5)
>
> その結果をテキストボックス6に表示させるというコードです。
上記の
> 例としては、自動車や自転車をどちらかを選択して、
というのは、計算式に、どのように関係してくるのでしょうか?
■不明点その2
> X=2*3
> y=4/3
>
> という値から、(テキストボックス3*テキストボックス4*X/テキストボックス5)
この、y=4/3 という式は、
> という値から、(テキストボックス3*テキストボックス4*X/テキストボックス5)
この計算式の中には、使われていないのですが、どういうことでしょうか?
■マクロ(VBA)の記述例(※憶測した上での一例です)
以上のような不明な部分がありますので、以下は、憶測した上での記述例です。
フォーム上の各テキストボックスのオブジェクト名を、下記と仮定します。
テキストボックス3 ⇒ TextBox3
テキストボックス4 ⇒ TextBox4
テキストボックス5 ⇒ TextBox5
テキストボックス6 ⇒ TextBox6
計算を行うタイミングは、フォームに設置した「計算実行」ボタンを押した時の
ボタンクリックイベントの処理として行うものと仮定します。
それから、X と Y の値は、文字列ではなく、コード内で以下のような固定の
計算式として、Double型の数値として持つようにしています。
Dim dX As Double
Dim dY As Double
dX = 2 * 3
dY = 4 / 3 '←※こちらは未使用
◎「計算実行」ボタンのクリックイベントのマクロ
注)インデント等のため全角スペースを入れています。
/////↓ここから///////////////////////////////////
'== [計算実行]ボタンのクリック時の処理 ==
Private Sub CommandButton1_Click()
'各テキストボックスに数値が、入力されているかチェックする
If IsNumeric(TextBox3.Text) = False Or _
IsNumeric(TextBox4.Text) = False Or _
IsNumeric(TextBox5.Text) = False Then
'数値でなかった場合は、メッセージを表示して処理を抜ける
MsgBox "各テキストボックスには、数値を入れて下さい。", _
vbOKOnly Or vbExclamation
Exit Sub
End If
'テキストボックス5の数値が、0でないかチェックする
'※TextBox5の値は、割り算での分母の値なので、これが0だと
' 計算エラーとなるため、これはその回避策です。
If TextBox5.Value = 0 Then
'数値が0だった場合は、メッセージを表示して処理を抜ける
MsgBox "テキストボックス5には、0以外の数値を入れて下さい。", _
vbOKOnly Or vbExclamation
Exit Sub
End If
'各テキストボックスの入力値より次の計算を行う
'※計算式 = TextBox3 * TextBox4 * dX / TextBox5
Dim dX As Double
Dim dY As Double
dX = 2 * 3
dY = 4 / 3 '←※こちらは未使用
'念のため、TextBox5が0でないかをチェックして計算を行う
If TextBox5.Value <> 0 Then
TextBox6.Value = TextBox3.Value * TextBox4.Value _
* dX / TextBox5.Value
Else
TextBox6.Value = 0
End If
End Sub
/////↑ここまで///////////////////////////////////
以上です。
的外れでしたらすみません。
参考になれば幸いです。