如何使用脚本控件的调用函数

文章翻译 文章翻译
文章编号: 184740 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文提供的脚本控件说明的 Visual Basic 从调用脚本函数的各种方法的代码示例。

更多信息

要点: Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证,其中包括但不是限于对适销性和/或针对特定用途的适用性的暗示的担保。本文假定您熟悉所演示的编程语言和工具用于创建和调试过程。

脚本控件可以承载 VBScript、 JavaScript 和任何其他兼容的脚本语言,使您的用户可以用脚本编写您的应用程序以使用 VBScript 或 JavaScript 为 Web 页提供附加功能类似的方式。

下面的文章 Microsoft 知识库中介绍了如何获取该脚本控件:
184739: 信息: 获得脚本控件的位置

脚本控件提供了四种方法的调用 Sub 和函数脚本例程:
  • Eval: 计算文本表达式。
  • 运行: 运行一个已命名的 Sub 或 Function。
  • 执行: 执行脚本语句。
  • 作为一种对 Module 对象的方法。

eval

调用约定为:
  Result = ScriptControl.Eval("some text expression")

				
可以使用此方法来调用这两个的内部脚本函数以及用户函数。函数参数表达式文本中的原义值作为传递和可以进行硬编码或从变量连接起来。

注: 此方法不能用于调用的子例程。

运行

调用约定是:
  Result = ScriptControl.Run("Name", arg1, arg2, ... argn)

				
可以使用此方法来调用子例程,在这种情况下返回结果为空并且您可以使用备用的调用约定忽略返回的结果:
  ScriptControl.Run "Name", arg1, arg2, ... argn

				
注: 名称是名称的 Sub 或 Function 和 arg1...argn 是可选的不同,具体取决于 Sub 或问题中的函数。

执行

调用约定为:
  ScriptControl.Execute "statement text"

				
此方法允许您调用任何内部的语句或子例程。您还可以使用它调用的函数,但返回的结果将被删除。

模块方法

调用约定为:
   Result = ScriptControl.Modules(modulename).functionname(arg1, arg2, ...)
   ScriptControl.Modules(modulename).subname arg1, arg2, ...
				

默认模块中给出 GlobalModule 常数类似如下:
   Result = ScriptControl.Modules(GlobalModule).MyFunction(5)
   ScriptControl.Modules(GlobalModule).MySub 5, "A"
				

有关 ScriptControl 模块的详细信息,请参阅 Microsoft 知识库中下面的文章:
184745: 如何使用脚本管理模块和过程集

示例

  1. 在 Visual Basic 中创建新的项目。默认情况下创建 Form1。
  2. 在项目菜单上单击组件,然后选择 Microsoft 脚本控制 1.0 复选框。
  3. 将脚本控件 (ScriptControl1)、 文本框 (文本 1) 和命令按钮 (Command1) 添加到窗体。将文本框的多行属性设置为 True。
  4. 向 Form1 中添加以下代码:
          Private Sub Command1_Click()
            With ScriptControl1
              ' Set script language (VBScript is the default).
              .Language = "VBScript"
              ' Set UI interaction (TRUE is the default).
              .AllowUI = True
              ' Copy the script to the control.
              .AddCode Text1.Text
              ' Demonstrate the Eval method.
              Debug.Print .Eval("AddTwo(5,7)")
              ' Demonstrate the Run method both with and without return values.
              .Run "Hello", "Jane Doe"
              Debug.Print .Run("Hello", "James Smith")
              .Run "AddTwo", 4, 6
              Debug.Print .Run("AddTwo", 7, 8)
              ' Demonstrate the ExecuteStatement method.
              .ExecuteStatement "Hello ""Sue Smith"""
              .ExecuteStatement "AddTwo 9,18"
              .ExecuteStatement "MsgBox CStr(AddTwo(3,8))"
              .Modules(GlobalModule).Hello "Jane Doe"
              Dim oMod As Object
              Set oMod = .Modules(GlobalModule)
              Debug.Print oMod.AddTwo 12, 24
              Set oMod = Nothing
            End With
          End Sub
    
    						
  5. 运行 Form1,然后打开调试窗口。
  6. 在文本框中键入下面的脚本:
          Sub Hello(YourName)
            MsgBox "Hello " & YourName
          End Sub
    
          Function AddTwo(X1, X2)
            AddTwo = X1 + X2
          End Function
    
    						
  7. 单击命令按钮。

    注: 下面两个语句中的执行不生成输出,因为函数返回都将丢失,并且代码不输出结果通过任何其他方式,如全局变量或消息框:
          .Run "AddTwo", 4, 6
          .ExecuteStatement "AddTwo 9,18"
    
    						

参考

有关如何获得该脚本控件的信息,请参阅 Microsoft 知识库中下面的文章:
184739: 信息: 获得脚本控件的位置

(c) Microsoft Corporation 1998,保留的所有权限。
由 Malcolm Stewart,Microsoft 公司的贡献

属性

文章编号: 184740 - 最后修改: 2004年7月15日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft Visual Basic 5.0 学习版
  • Microsoft Visual Basic 6.0 学习版
  • Microsoft Visual Basic 5.0 专业版
  • Microsoft Visual Basic 6.0 专业版
  • Microsoft Visual Basic 5.0 企业版
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 标准版
  • Microsoft Visual Basic 4.0 专业版
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
关键字:?
kbmt kbhowto KB184740 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 184740
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com