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
dll声明,顾名思义,就是执行一行
第一个参数,指向命令行字符串的指针
剩下的参数不知道作甚么用的......
用的时候:
封装一下这样用起来方便 Function stepline(ByVal cmd As String) As Long ''''cmd就是vb6代码 Dim l As Long ''''临时变量,意义不大 l = EbExecuteLine(StrPtr(ByVal cmd), 0, 0, 0) ''''这就是实质,简单吧 Debug.Print CStr(l) + ":" + cmd ''''调试用的,无意义
也可以 stepline "dim a as long,b as long,c as long" stepline "a=" & 3 stepline "b=" & 5 stepline "c=" & 2 stepline "clipboard.settext (a+b)/c" stepline "msgbox Clipboard.GetText"
或者将文本放入listbox,甚至可以逐行进行(当然,有兴趣你可以自己做调试器) If List1.ListCount = 0 Then MsgBox "没有代码" Else List1.ListIndex = 0 Dim i As Long For i = 0 To List1.ListCount - 1 stepline List1.List(i) Next End If
当然,直接执行文本也是可以的 假定text1.text是全部的代码
List1.Clear Dim Arr() As String Dim i As Long Dim s As String Arr = Split(Text1.Text, Chr(13) + Chr(10)) For i = 0 To UBound(Arr()) stepline Arr(i) Next