2009-06-13 01:16:57Option Explicit '↓方法一 Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0 End Function Sub calc(ByVal x As String) Dim result ExecuteLine "dim x as double" ExecuteLine "x= " & x ExecuteLine "clipboard.settext x" result = Clipboard.GetText MsgBox x & "=" & result Set result = Nothing End Sub Private Sub Command1_Click() calc Text1 End Sub Private Sub Form_Load() Text1.Text = "(1+(2*((3-2)-4)))/2" End Sub '↑方法一 '↓方法二 '引用Microsoft Script Control 1.0 Private Sub Command2_Click() Dim VBEval As New ScriptControl Dim result As String On Error GoTo E VBEval.Language = "vbscript" result = VBEval.Eval(Text1.Text) MsgBox Text1.Text & "=" & result Exit Sub E: MsgBox "表达式错误,检查是否输入了非法字符!" End Sub '↑方法二