§2 電圧、電流、抵抗の値を求めるツール VB6 | |
(2) 電流、電圧、抵抗を求めるツールの作成 |
オプションボタンで、電圧、電流、抵抗のうち、どれを計算するか選択して、それに応じて入力データの変更と計算をする。
図2-2-1 |
図2-2-1のようにオブジェクト(部品)を配置して、図のメッセージも参考にして各オブジェクトのプロパティを設定する。
Option1オブジェクトにチェックを入れておきたいので、ValueプロパティをTrueにする。
また、Label1とLabel2のメッセージは、オプションボタンの状態によって変更すのだが、実行時(最初)は電流にチェックがあるのでラベルには電圧と抵抗と表示させておく。すなわち、電圧と抵抗が入力データとなる。
電圧がチェック(クリック)されるとLabel1とLabel2のメッセージは電流と抵抗に変わる。
・プログラムリスト
Private Sub Command1_Click() '計算開始ボタン Dim ans As Double, sans As String If Option1.Value = True Then '電流計算 ans = Val(Text1.Text) / Val(Text2.Text) If Abs(ans) < 1 Then '-1<ans<1のとき、整数部に0を付ける If ans < 0 Then sans = "-0" & Str(Abs(ans)) Else sans = "0" & Str(ans) End If Else '-1<ans<1以外とき sans = Str(ans) End If Label3.Caption = "電流は、" & sans & "[A]です。" '結果表示 ElseIf Option2.Value = True Then '電圧計算 ans = Val(Text1.Text) * Val(Text2.Text) If Abs(ans) < 1 Then If ans < 0 Then sans = "-0" & Str(Abs(ans)) Else sans = "0" & Str(ans) End If Else sans = Str(ans) End If Label3.Caption = "電圧は、" & sans & "[V]です。" ElseIf Option3.Value = True Then '抵抗計算 ans = Val(Text1.Text) / Val(Text2.Text) If Abs(ans) < 1 Then If ans < 0 Then sans = "-0" & Str(Abs(ans)) Else sans = "0" & Str(ans) End If Else sans = Str(ans) End If Label3.Caption = "抵抗は、" & sans & "[Ω]です。" End If End Sub Private Sub Command2_Click() 'クリアボタン Text1.Text = "" Text2.Text = "" Label3.Caption = "計算結果" End Sub Private Sub Command3_Click() '終了ボタン Unload Me End Sub '終了確認の処理 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim res As VbMsgBoxResult res = MsgBox("終了しますか。", vbYesNo, "確認") If res = vbNo Then Cancel = True Exit Sub End If End Sub 'OptionボタンによってLabel1とLabel2のメッセージを変える。 Private Sub Option1_Click() If Option1.Value = True Then Label1.Caption = "電圧[V]" Label2.Caption = "抵抗[Ω]" End If End Sub Private Sub Option2_Click() If Option2.Value = True Then Label1.Caption = "電流[A]" Label2.Caption = "抵抗[Ω]" End If End Sub Private Sub Option3_Click() If Option3.Value = True Then Label1.Caption = "電圧[V]" Label2.Caption = "電流[A]" End If End Sub
関数Val … 数字の文字列を数値(計算に使えるデータ)に変換する。
関数Str … 数値を文字列に変換する。
関数Abs … 絶対値を計算する。
【注意】 電流は電圧÷抵抗で計算する。このとき、抵抗の値にゼロや空白のままで計算開始ボタンをクリックするとエラーになる。
*1 VisualBASICではある程度、自動で型を合わせてくれる。しかし、型を合わせておいたときに比べて型を判定しなければならない分だけ処理が遅くなる。ちょうど変数宣言する/しないと同じようにである。
=== ポイント ===
文字列データと数値データが混在するプログラムでは、できるだけデータの型を合わせる方が良い*1。文字列のデータは文字列型の変数に、数値型のデータは数値型の変数に記憶させる。
テキストボックスに入力したデータは数字であっても文字列なので数値型に変換して数値型の変数に記憶させる。このように、文字列を数値に、数値を文字列に変換するときに使う関数をまとめておく。
・Val関数 … 数字の文字列を数値(計算に使えるデータ)に変換する。
・Str関数 … 数値を文字列に変換する。
(2) 電流、電圧、抵抗を求めるツールの作成 | |
Copyright © 2001,2002 Hiroshi Masuda |