加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VBA调用vbs计算表达式的值

(2015-03-27 22:10:22)
标签:

it

分类: 编程

方法一:前期绑定,也就是程序在设计时就用到了脚本对象,需要手动引用Microsoft Script Control库

Private Function calc( str As String ) As Variant    '参数str是要计算的表达式,比如"sin(30*3.14/180)"
    Dim s As New ScriptControl
    s.Language = "vbscript"
    str = Replace( str ,  "[" , "(" )
    str = Replace( str ,  "{" , "(" )
    str = Replace( str ,  "]" , ")" )
    str = Replace( str ,  "}" , ")" )    ‘以上进行括号的替换,这样表达式str里可以用中括号和大括号
   calc =  s.eval_r( str )
End Function

方法二:后期绑定,也就是直到运行时才用到脚本对象。

Private Function calc( str As String ) As Variant
    Dim s As New ScriptControl
    Set s = CreateObject( "MSScriptControl.ScriptControl" )
    s.Language = "VBScript"
    calc = s.eval_r( str )
    Set s = Null
End Function

  要想让vba执行一段vbs代码,也就是说把vbs代码直接以字符串的形式放进vba程序里去,相应的vba代码如下(只列出了后期绑定代码):

Private Sub m(str As String)    '参数str的内容为任意的一段vbs代码
    Dim s As Object
    Set s= CreateObject( "MSScriptControl.ScriptControl" )
    s.Language = "VBScript"
    s.ExecuteStatement ( str )
End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有