§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。文字列のデータは文字列型の変数に、数値型のデータは数値型の変数に記憶させる。
 テキストボックスに入力したデータは数字であっても文字列なので数値型に変換して数値型の変数に記憶させる。このように、文字列を数値に、数値を文字列に変換するときに使う関数をまとめておく。
  ・Val関数 … 数字の文字列を数値(計算に使えるデータ)に変換する。
  ・Str関数 … 数値を文字列に変換する。
*1 VisualBASICではある程度、自動で型を合わせてくれる。しかし、型を合わせておいたときに比べて型を判定しなければならない分だけ処理が遅くなる。ちょうど変数宣言する/しないと同じようにである。


 (2) 電流、電圧、抵抗を求めるツールの作成 前へ 目次へ 次へ 
Copyright © 2001,2002 Hiroshi Masuda 

 

 

inserted by FC2 system