掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
if文は変数に入れられるの? (ID:102899)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> if x>=5 and y>12 thenというふうにしたいと思っています。 たとえば下記のような関数を作っておけば、上記の処理の代わりに If Compare(X, ">=", 5) And Compare(Y, ">", 12) Then という表現を使う事が出来ます。 Public Function Compare(ByVal a As Integer, ByVal op As String, ByVal b As Integer) As Boolean Select Case op Case "<" Compare = a < b Case "<=", "=<" Compare = a <= b Case "=" Compare = a = b Case ">=", "=>" Compare = a >= b Case ">" Compare = a > b Case Else Err.Raise 5 End Select End Function > 最後にThanをつけれればいいなと思っています。 Than → Then > このようなことは、そもそも可能なのでしょうか? 処理効率は劣りますが、VBScript で評価させる手もあります。 Option Explicit Private oVBS As Object Public X As Variant Public Y As Variant Private Sub Command1_Click() Label1.Caption = Condition(Text1.Text, Combo1.Text, Text2.Text, Combo2.Text) End Sub Private Function Condition(ByVal arg1 As String, ByVal op1 As String, ByVal arg2 As String, ByVal op2 As String) As Boolean Dim statement As String statement = "OBJ.X " & op1 & arg1 & " And OBJ.Y " & op2 & arg2 Condition = oVBS.Eval(statement) Debug.Print "("; statement; ") = "; Condition End Function Private Sub Form_Initialize() Set oVBS = CreateObject("ScriptControl") oVBS.Language = "VBS" Me.X = 7 Me.Y = 15 oVBS.AddObject "OBJ", Me, False End Sub Private Sub Form_Load() Label1.Caption = "" Text1.Text = "5" 'Style は「ドロップダウンリスト」にしておく Combo1.AddItem "<" Combo1.AddItem "<=" Combo1.AddItem "=" Combo1.AddItem ">=" Combo1.AddItem ">" Combo1.AddItem "<>" Text2.Text = "12" 'Style は「ドロップダウンリスト」にしておく Combo2.AddItem "<" Combo2.AddItem "<=" Combo2.AddItem "=" Combo2.AddItem ">=" Combo2.AddItem ">" Combo2.AddItem "<>" Combo1.Text = ">=" Combo2.Text = ">" End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.