在delphi中能否动态执行vba,例如:
  ls_vba:='Selection.Font.NameFarEast = "宋体"'
然后执行ls_vba就可以

解决方案 »

  1.   

    Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。1994年发行的Excel 5.0版本中,即具备了VBA的宏功能。随着微软放弃支持旧的Office文档格式,VBA也正在被抛弃。Mac Office 2008改支持AppleScript[1]。这引起了一系列的兼容性问题。没查还真不知道VBA是什么,我想delphi应该没有吧
    我没碰到过
      

  2.   

    Office组件的Application.Run方法可以执行,不过Office2000以上的版本默认权限是不允许执行的,需要在“工具”-“宏”-“安全性”-“可靠发行商”的“信任对于Visual Basic 项目的访问”勾上才行。
      

  3.   


    VBComp := Application.ActiveDocument.VBProject.VBComponents.Add('MyModule');
    VBComp.CodeModule.AddFromString('Sub Test()' + #10#13 + 'Selection.Font.NameFarEast = "宋体"' + #10#13 + 'End Sub');
    Application.Run('Test');
    Application.ActiveDocument.VBProject.VBComponents.Remove(VBComp);
      

  4.   

    可以,使用ms提供的IScriptControl接口就可以