精华内容
下载资源
问答
  • VB6 和 VBA 调用子程序如何传递 MSForms.ReturnInteger 型参数VB6 和 VBA 调用子程序如何传递 MSForms.ReturnInteger 型参数 VB6 和 VBA 调用子程序如何传递 MSForms.ReturnInteger 型参数 由于想偷个懒,直接...

    VB6 和 VBA 调用子程序时如何传递 MSForms.ReturnInteger 型参数

    VB6 和 VBA 调用子程序时如何传递 MSForms.ReturnInteger 型参数

    由于想偷个懒,直接调用一下文本框的按键事件处理程序,没想到懒没偷成,反而浪费了几十倍的时间。原因是出现了参数怎么弄都传不进去的状况,让人很恼火,整天想着这个事情,不弄明白不舒服。

    本来嘛,直接调用文本框的按键事件处理程序很简单的,

      Call TextBox1_KeyDown(Nothing, 0)
    

    就搞定了,可这不是咱们的风格,万一以后其他人士修改代码,使用了 KeyCode 这个参数,我这个调用就会造成空引用的异常。可不能为了一时的方便留下隐患,好歹要弄个有效的参数传过去才行。然后问题就出来了,直接传值不行,传递其它类型的变量也不行。

    来看代码:

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      MsgBox KeyCode
      KeyCode = 99
    End Sub
    

    那个 MSForms.ReturnInteger 肯定就是个类,那么按规矩就得这样调用:

    Private Sub CommandButton0_Click()
      Dim c As MSForms.ReturnInteger
      Set c = New MSForms.ReturnInteger '可是执行到这里一定出错,说是创建对象失败
      c = 7 
      Call TextBox1_KeyDown(c, 0)
      MsgBox c
    End Sub
    

    这就让人郁闷了,与经验不符啊!

    上网找,没找到任何有用的东西,有一个相关度最高的解决方案是申明一个全局变量,然后设法随便进入一个事件处理程序,把系统传递过来的 KeyCode 对象保存下来,以后就一直使用这个变量交换数据。这个方法实用但是搞笑,并没有回答我们的疑问,而且我并非一定得解决这个问题,所以不会采用他的方法。

    但是不搞清楚原因就不舒服的习惯让我不断回顾这个问题。终于,我把 KeyCode 添加到监视里跟踪观察时发现了端倪,我看到了这个变量的类型是

    ReturnInteger/IReturnInteger

    这一下就明白了,原来 MSForms.ReturnInteger 并非是一个类,而是一个接口。想 New 一个接口当然大错特错,我们必须来实现这个接口。

    创建一个新类,命名为:

    MyReturnInteger

    输入以下代码:

    Implements MSForms.ReturnInteger
    
    Private v As Long
    
    Private Property Let ReturnInteger_Value(ByVal val As Long)
      v = val
    End Property
    Private Property Get ReturnInteger_Value() As Long
      ReturnInteger_Value = v
    End Property
    
    Public Property Let Value(ByVal val As Long)
      v = val
    End Property
    Public Property Get Value() As Long
      Value = v
    End Property
    

    就实现了这个接口。ReturnInteger_Value 那个属性是接口规定的,必须那样写。 Value 那个属性是为了方便自己使用,可写可不写。

    然后事情就简单了:

    Private Sub CommandButton1_Click()
      Dim c As New MyReturnInteger
      c.Value = 8
      Call TextBox1_KeyDown(c, 0)
      MsgBox c.Value
    End Sub
    

    正常运行。

    还有一个问题,就是在事件处理程序里直接用 x = KeyCode;KeyCode = y 这种风格来书写,可是在我的调用程序里必须用 x = c.Value;c.Value = y 这种风格来书写。这当然不是什么原则性的问题,但如果我强迫别人在同一个程序中用不同的风格书写代码那就是我的不对。解决这个问题的方法是设置自定义类的缺省属性。

    VBA 的 IDE 没有提供设置缺省属性的功能,得学 VB6 的方法,将类导出成

    MyReturnInteger.cls

    文件,然后用记事本打开这个文件,在

      Public Property Get Value() As Long
    

    语句之后添加如下语句:

      Attribute Value.VB_UserMemId = 0
    

    存盘后再导入 VBA,这个类就有了缺省属性。
    然后下面的代码就能完美工作:

    Private Sub CommandButton2_Click()
      Dim c As New MyReturnInteger
      c = 9
      Call TextBox1_KeyDown(c, 0)
      MsgBox c
    End Sub
    

    大功告成。这里的方法对 VB6 同样适用。

    展开全文
  • VBA 中,调用子过程或函数时,我们可以为它们传递参数。提供的参数可以在子过程或函数内部使用,让程序更动态和灵活。传递参数的前提是,先在子过程或函数定义阶段设置参数,后在调用时按正确的方式提供实际参数值。...

    VBA 中,调用子过程或函数时,我们可以为它们传递参数。提供的参数可以在子过程或函数内部使用,让程序更动态和灵活。传递参数的前提是,先在子过程或函数定义阶段设置参数,后在调用时按正确的方式提供实际参数值。

    本篇教程主要介绍传递参数的基础部分,主要内容包括:

    带参数的子过程和函数的定义方法。

    调用子过程和函数时,参数的书写方式。

    可选参数的语法和实际用法。

    关于子过程和函数、它们的区别以及如何调用,请看前几篇内容。

    在子过程和函数中,传递参数的用法基本相同,本篇以子过程为例介绍参数的使用,函数中用法参考子过程。

    带参数的子过程定义方法

    子过程可以接受一个或多个参数,参数可以是常量、变量、表达式,并且每个参数指定其名称和数据类型。

    看实际的例子,以下代码定义了带两个参数的一个过程,过程名是 CustomLog ,参数分别是 num 和 base。此过程的用途是计算任意底数的对数,num 是计算对数的值,base 是底数。

    '声明一个带参数的子过程

    Sub CustomLog(num As Double, base As Integer)

    Debug.Print Log(num) / Log(base)

    End Sub

    子过程按照这种方法定义后,调用时,VBA 会提示需要提供什么参数以及参数类型。

    调用带参数的子过程

    调用带参数的过程,只需将参数按定义顺序书写即可,多个参数使用逗号分开。

    以上述过程为例,在一个主过程调用 CustomLog 子过程。

    '主入口

    Sub Main()

    CustomLog 100, 10

    End Sub

    除了按顺序书写参数外,也可以按任意顺序书写参数,但是这时需要给出参数名。带参数名的传递参数语法如下:

    [参数名]:=[实际参数值]

    参数名后写冒号等号(:=),再写需传递的参数值。看实际的例子,以下三种方式是等效的。

    '主入口

    Sub Main()

    CustomLog 100, 10 '方式一

    CustomLog num:=100, base:=10 '方式二

    CustomLog base:=10, num:=100 '方式三

    End Sub

    可选参数的用法

    实际开发中,有时子过程的参数可能不是必须的,我们希望根据参数有无情况,执行不同的操作。针对这种情况,VBA 提供了可选参数机制。

    可选参数语法

    可选参数在定义子过程时需要指定,方法是在参数名前添加 Optional 关键词。

    Optional [参数名] As [数据类型]

    还是以 CustomLog 子过程为例,我们把底数 base 设为可选参数。

    '声明一个带可选参数的子过程

    Sub CustomLog(num As Double, Optional base As Integer)

    '子过程代码

    End Sub

    调用时,VBA 会提示可选参数,参数放置在中括号中。

    设置可选参数的默认值

    可选参数定以后,如果在子过程中使用,需要判断参数有无提供。否则未提供而直接使用时,程序会出错。

    针对这种情况,VBA 提供了默认值机制,即可选参数未提供时,使用预算设置好的默认值。

    可选参数默认值,在定义过程时就设置,语法如下:

    Optional [参数名] As [数据类型] = [默认值]

    还是以 CustomLog 子过程为例,我们把底数 base 设为可选参数,并且默认值设为 10。

    '声明一个带可选参数的子过程

    Sub CustomLog(num As Double, Optional base As Integer = 10)

    Debug.Print Log(num) / Log(base)

    End Sub

    调用时,如果提供了 base 底数,则以提供的底数计算;如果未提供 base 底数,则以默认值 10 计算。

    '主入口

    Sub Main()

    CustomLog 100, 100 '返回 1

    CustomLog 100 '返回 2

    End Sub

    可选参数的位置

    当子过程有多个参数时,其中的可选参数需写在参数列表的末尾,否则 VBA 提示错误。

    可选参数错误顺序:

    可选参数的正确顺序:

    总结

    VBA 过程和函数均可以接受一个或多个参数。当调用它们时,需要注意传入的参数的书写顺序:不写参数名时,按照定义的顺序传递;写参数名时,对书写顺序没有要求。此外,过程和函数可以设置某一个参数是可选的,类似 VLOOKUP 函数的第四个参数,是否精确查找。当设置成可选时,还可以指定可选参数的默认值。

    展开全文
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    第四章 VBA过程:子程序和函数 91 1.关于函数过程 91 2.创建函数过程 91 3.执行函数过程 92 4.从工作表里运行函数过程 93 5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值...
  • Excel VBA程序设计.doc

    2009-07-06 22:16:12
    第四章 VBA过程:子程序和函数 98 1.关于函数过程 98 2.创建函数过程 98 3.执行函数过程 100 4.从工作表里运行函数过程 100 5.从另外一个VBA过程里运行函数过程 102 6.传递参数 102 7.明确参数类型 103 8.按地址和按...
  • Excel_VBA程序设计.pdf

    热门讨论 2009-08-31 23:05:20
    第四章 VBA过程:子程序和函数 98 1.关于函数过程 98 2.创建函数过程 98 3.执行函数过程 100 4.从工作表里运行函数过程 100 5.从另外一个VBA过程里运行函数过程 102 6.传递参数 102 7.明确参数类型 103 8.按地址和按...
  • 第四章 VBA过程:子程序和函数 87 1.关于函数过程 87 2.创建函数过程 87 3.执行函数过程 88 4.从工作表里运行函数过程 88 5.从另外一个VBA过程里运行函数过程 90 6.传递参数 90 7.明确参数类型 91 8.按地址和按值...
  • Excel_VBA教程

    2014-09-22 11:36:34
    第四章 VBA过程:子程序和函数 91 1.关于函数过程 91 2.创建函数过程 91 3.执行函数过程 92 4.从工作表里运行函数过程 93 5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    7 二、VISUAL BASIC程序设计网络教学.....................................................................................1 第一课 VBA是什么 ................................................................
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
    还将介绍如何使用VBA 过程和函数过程、与其他应用程序轻松交互、构建用户友好的工具栏、菜单和帮助系统等。 内容提要 -------------------------------------------------------------------------------- 这本...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
    还将介绍如何使用VBA 过程和函数过程、与其他应用程序轻松交互、构建用户友好的工具栏、菜单和帮助系统等。 内容提要 -------------------------------------------------------------------------------- 这本...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    一、VBA语言基础...................................................................................................................1 第一节标识符...........................................................
  • 如何操作 WebOffice.ocx

    2008-04-11 14:49:00
    最近在研究对WebOffice.ocx的操作(word网页中使用)收集了一些相关资料,希望对大家在程序开发中有帮助。...单位使用,将其调用部分Office VBA代码整理如下: 来自 http://www.goldgrid.com <scri...
    最近在研究对WebOffice.ocx的操作(word网页中使用)收集了一些相关资料,希望对大家在程序开发中有帮助。
    ========================

    iWebOffice2004 是一个实现痕迹保留、手写签名、电子印章的插件,已经被100多个

    单位使用,将其调用部分Office VBA代码整理如下:

    来自 http://www.goldgrid.com

    <script language=javascript>
    //系统变量
    var vFileName=""; //打开的文件名
    var vObject=null; //打开的对象
    var gFileName=""; //文件名
    var gObject=null; //对象
    var gOpened=false; //是否被打开
    var gUserName=""; //系统用户
    </script>


    <script language="JScript" for=WebOffice event="OnDocumentOpened(vFileName,vObject)">
     OnDocumentOpened(vFileName,vObject); //打开文件事件
    </script>

    <script language="JScript" for=WebOffice event="OnDocumentClosed()">
     OnDocumentClosed();   //关闭文件事件
    </script>

    <script language=javascript>
    //打开文档,根据用户权限(EditType),进行初始化设置
    function OnDocumentOpened(vFileName,vObject) 
    {
      var mProtect,mTools,mTrack,mPrint,mShow;
      gFileName=vFileName;    //取得全局文件名
      gObject=vObject;    //取得全局对象
      //设置痕迹和保护状态
      if (webform.WebOffice.EditType=="0"){
     mProtect=true;
     mTools=false;
     mTrack=false;
     mPrint=false;
     mShow=true;
      }else if(webform.WebOffice.EditType=="1"){
     mProtect=false;
     mTools=false;
     mTrack=false;
     mPrint=false;
     mShow=false;  
      }else if(webform.WebOffice.EditType=="2"){
     mProtect=false;
     mTools=false;
     mTrack=true;
     mPrint=true;
     mShow=true;
      }else if(webform.WebOffice.EditType=="3"){
     mProtect=false;
     mTools=true;
     mTrack=true;
     mPrint=true;
     mShow=true;
      }else{
     var mType="";
     var mEdit=webform.WebOffice.EditType;
     var mIdx=mEdit.indexOf(",");
     if (mIdx>0){
         mType=mEdit.substring(0,mIdx);
     }
     mEdit=mEdit.substring(mIdx+1,mEdit.length);

     mIdx=mEdit.indexOf(",");
     if (mIdx>0){
         mType=mEdit.substring(0,mIdx);
         if (mType=="1") mProtect=true;
         if (mType=="0") mProtect=false;
     }
     mEdit=mEdit.substring(mIdx+1,mEdit.length);

     var mIdx=mEdit.indexOf(",");
     if (mIdx>0){
         mType=mEdit.substring(0,mIdx);
         if (mType=="1") mShow=true;
         if (mType=="0") mShow=false;
     }
     mEdit=mEdit.substring(mIdx+1,mEdit.length);

     var mIdx=mEdit.indexOf(",");
     if (mIdx>0){
         mType=mEdit.substring(0,mIdx);
         if (mType=="1") mTrack=true;
         if (mType=="0") mTrack=false;
     }
     mEdit=mEdit.substring(mIdx+1,mEdit.length);  

        var mIdx=mEdit.indexOf(",");
     if (mIdx>0){
         mType=mEdit.substring(0,mIdx);
         if (mType=="1") mPrint=true;
         if (mType=="0") mPrint=false;
     }
     mEdit=mEdit.substring(mIdx+1,mEdit.length);  
     
        var mIdx=mEdit.indexOf(",");
     if (mIdx>0){
         mType=mEdit.substring(0,mIdx);
         if (mType=="1") mTools=true;
         if (mType=="0") mTools=false;
     }
     
      }

      if (webform.WebOffice.FileType==".doc"){
       gObject.TrackRevisions=mTrack;
      gObject.PrintRevisions=mPrint;
       gObject.ShowRevisions=mShow;

       gObject.CommandBars('Reviewing').Enabled =mTools;
       gObject.CommandBars('Reviewing').Visible =mTools;

       var mCount=gObject.CommandBars('Track Changes').Controls.Count;
             for (var mIndex = 1; mIndex<= mCount; mIndex++){
               var mCurID=gObject.CommandBars('Track Changes').Controls(mIndex).ID;
               if ((mCurID==1715) || (mCurID==1716) || (mCurID==2041) || (mCurID==305)) {
                  gObject.CommandBars('Track Changes').Controls(mIndex).Enabled = mTools;
               }
             }
     if (mProtect){
        gObject.Protect(2);
     }
     if (gUserName == "") {
              //保存原来的用户
              gUserName=gObject.Application.UserName;
              //设置系统当前用户
              gObject.Application.UserName=webform.WebOffice.UserName;
     }
      }


      if (webform.WebOffice.FileType==".xls"){
     if (mShow){
              if (mTrack){
                  gObject.Application.DisplayCommentIndicator = 1;
       }
     }else{
              gObject.Application.DisplayCommentIndicator = 0;
     }

       gObject.CommandBars('Reviewing').Enabled =mTools;
       gObject.CommandBars('Reviewing').Visible =mTools;

      if (mProtect){
                for (var mIndex=1;mIndex<=gObject.Application.ActiveWorkbook.Sheets.Count;mIndex++){
                    var mSheet=gObject.Application.ActiveWorkbook.Sheets(mIndex);
                    mSheet.Protect("", true, true, true);
                }
     }

     if (gUserName == "") {
              //保存原来的用户
              gUserName=gObject.Application.UserName;
              //设置系统当前用户
              gObject.Application.UserName=webform.WebOffice.UserName;
     }
      }
      //打开成功
      gOpened = true;  
    }

    function OnDocumentClosed()
    {
      //关闭成功
      gOpened = false;
    }

    //显示系统状态信息
    function StatusMsg(mString){
      StatusBar.innerText=mString;
    }

    //页面装入事件
    function Load(){
      //给控件属性付值
      try{
      webform.WebOffice.WebUrl="<%=mServerUrl%>";
      webform.WebOffice.RecordID="<%=mRecordID%>";
      webform.WebOffice.Template="<%=mTemplate%>";
      webform.WebOffice.FileName="<%=mFileName%>";
      webform.WebOffice.FileType="<%=mFileType%>";
      webform.WebOffice.EditType="<%=mEditType%>";
      webform.WebOffice.UserName="<%=mUserName%>";
      //打开文档,执行发送LOADFILE操作
      webform.WebOffice.WebOpen();
      if (webform.WebOffice.Error!=""){
     //如果不成功,执行发送LOADTEMPLATE操作
     webform.WebOffice.WebLoadTemplate();
     if (webform.WebOffice.Error!=""){
      //如果还没有成功,则根据扩展名创建新文档
      if (webform.WebOffice.FileType==".doc"){
       webform.WebOffice.CreateNew("Word.Document");
      }else if(webform.WebOffice.FileType==".xls"){
       webform.WebOffice.CreateNew("Excel.Sheet");
      }else if(webform.WebOffice.FileType==".ppt"){
       webform.WebOffice.CreateNew("PowerPoint.Show");
      }else{
       webform.WebOffice.CreateNew("");
      }
     }
      }
      }catch(e){
      }
      //显示状态信息
      StatusMsg(webform.WebOffice.Status);
    }

    //页面退出事件
    function UnLoad(){
      try{
         //关闭OCX控件
         webform.WebOffice.WebClose();
      }catch(e){}
    }

    //设置是否显示痕迹
    function ShowRevision(vValue){
      var object=webform.WebOffice.ActiveDocument;
       object.ShowRevisions=vValue;
      if (vValue){
         StatusMsg("显示痕迹...");
      }else{
         StatusMsg("隐藏痕迹...");
      }
    }

    //调入文档
    function LoadDocument(){
      StatusMsg("正在打开文档...");
      webform.WebOffice.WebOpen();
      StatusMsg(webform.WebOffice.Status);
    }

    //保存文档
    function SaveDocument(){
      //判断状态
      if (webform.EditType.value=="0"){
         alert("你在查看状态,不能保存!");
         return false;
      }
      //保存文档
      webform.WebOffice.WebSave();
      //如果没有错误
      if (webform.WebOffice.Error!=""){
         StatusMsg(webform.WebOffice.Status);
         return false;
      }else{
         StatusMsg(webform.WebOffice.Status);
         return true;
      }
    }

    //打开版本信息
    function WebOpenVersion(){
      var mDialogUrl = "Version/VersionList.asp?RecordID="+webform.WebOffice.RecordID;
      var mObject = new Object();
          mObject.FileID = "";
          mObject.Result = false;
          window.showModalDialog(mDialogUrl, mObject, "dialogHeight:280px; dialogWidth:420px;center:yes;scroll:no;status:no;");
      //如果用户确认选择
      if (mObject.Result &&(mObject.FileID.length>0)){
         //清除所有设置文本信息
         webform.WebOffice.WebMsgTextClear();
         //设置COMMAND为LOADVERSION
         webform.WebOffice.WebSetMsgByName("COMMAND","LOADVERSION");
         //设置用户选择的版本编号
         webform.WebOffice.WebSetMsgByName("FILEID",mObject.FileID);
         //发送命令给服务器
         webform.WebOffice.WebSendMessage();
         //如果没有错误
         if (webform.WebOffice.Error==""){
           //关闭当前文档
           webform.WebOffice.Close();
           //保存新版本为系统文件名
           webform.WebOffice.WebMsgFileSave(gFileName);
           //如果保存成功
           if (webform.WebOffice.Error==""){
       //打开该版本文档,
              webform.WebOffice.Open(gFileName,true);
           } 
        }else{
           alert(webform.WebOffice.Error);
        }
      }else{
        StatusMsg("取消打开版本");
      }
      StatusMsg(webform.WebOffice.Status);
    }

    //保存版本信息
    function WebSaveVersion(){
      var mDialogUrl = "Version/VersionForm.asp";
      var mObject = new Object();
          mObject.Descript = "";
          mObject.Result=false;
          window.showModalDialog(mDialogUrl, mObject, "dialogHeight:200px; dialogWidth:360px;center:yes;scroll:no;status:no;");
          //如果用户确认选择
          if (mObject.Result){
            //清除所有设置文本信息
            webform.WebOffice.WebMsgTextClear();
            //设置COMMAND为SAVEVERSION 
            webform.WebOffice.WebSetMsgByName("COMMAND","SAVEVERSION");
            //设置描述信息内容
            webform.WebOffice.WebSetMsgByName("DESCRIPT",mObject.Descript);
            //保存当前版本
            webform.WebOffice.Save(gFileName,true);
            //调入该文档
            webform.WebOffice.WebMsgFileLoad(gFileName);
            //发送到服务器上
            webform.WebOffice.WebSendMessage();
            if (webform.WebOffice.Error!=""){
               alert(webform.WebOffice.Error);
           }
         }
         StatusMsg(webform.WebOffice.Status);
    }

    //用数据库中的内容填充标签里的内容
    function LoadBookmarks(){
     var mCount,mIndex;
     var mBookObject,mBookName,mBookIdx;
        //清除所有设置变量信息
        webform.WebOffice.WebMsgTextClear();
        //设置COMMAND为LOADBOOKMARKS
        webform.WebOffice.WebSetMsgByName("COMMAND","LOADBOOKMARKS");
        //发送信息到服务器上
        webform.WebOffice.WebSendMessage();
        //如果没有错误信息
        if (webform.WebOffice.Error==""){
          //如果是Word文件  
          if (webform.WebOffice.FileType==".doc"){
             //替换所有的标签内容
             for (mBookIdx = 1; mBookIdx<=webform.WebOffice.ActiveDocument.Bookmarks.Count;mBookIdx++){
          //取出标签名
                 mBookName = webform.WebOffice.ActiveDocument.Bookmarks.Item(mBookIdx).Name;
                 //取出该标签对应的服务器上的数据
                 mBookValue = webform.WebOffice.WebGetMsgByName(mBookName);
                 //如果该数据有值 
                 if ((mBookValue)&&(mBookValue.length>0)) {
       //取得标签对应的对象
                     mBookObject = webform.WebOffice.ActiveDocument.Bookmarks.Item(mBookIdx).Range;
       //设置为服务器数据
       mBookObject.Text=mBookValue;
       //重新设置为标签
                     webform.WebOffice.ActiveDocument.Bookmarks.Add(mBookName, mBookObject);
                 }
             }
          }
        }
        StatusMsg(webform.WebOffice.Status);
    }

    //设置标签的内容
    function SetBookmarks(vbmName,vbmValue){
      //取得标签对象
      var mBookmarks=WebFindBookmarks(vbmName);
      if (mBookmarks){
         //设置该标签的内容为新值
         mBookmarks.Text=vbmValue;
         //重新设置为标签
         webform.WebOffice.ActiveDocument.Bookmarks.Add(vbmName, mBookmarks);
      }
    }

    //取得标签内容
    function GetBookmarks(vbmName){
      var vbmValue="";
      //取得标签对象
      var mBookmarks=WebFindBookmarks(vbmName);
      if (mBookmarks){
         //取得内容
         vbmValue=mBookmarks.Text;
      }
      return vbmValue;
    }

    //调用打印
    function WebOpenPrint(){
      try{
        //调用打印功能,true表示显示打印设置,false表示直接打印
        webform.WebOffice.PrintOut(true);
        StatusMsg(webform.WebOffice.Status);
      }catch(e){}
    }

    //调用打印页面设置对话匡
    function WebOpenPageSetup(){
       try{
     if (webform.WebOffice.FileType==".doc"){
                //如果是word
         webform.WebOffice.ActiveDocument.Application.Dialogs(178).Show();
     }else{
                //如果是Excel
         webform.WebOffice.ActiveDocument.Application.Dialogs(7).Show();
     }
       }catch(e){

       }

    }
    //调用打开图片对话框
    function WebOpenPicture(){
       try{
     if (webform.WebOffice.FileType==".doc"){
       //如果是Word
       webform.WebOffice.ActiveDocument.Application.Dialogs(163).Show();
     }else{
              //如果是Excel
       webform.WebOffice.ActiveDocument.Application.Dialogs(342).Show();
     }
       }catch(e){

       }
    }

    //电子印章功能
    function WebOpenSignature(){
      var mDialogUrl = "Signature/SignatureForm.asp";
      var mMarkName,mPassWord,mMarkTime;
      var mObject = new Object();
          mObject.MarkName = "";
          mObject.PassWord = "";
          window.showModalDialog(mDialogUrl, mObject, "dialogHeight:200px; dialogWidth:360px;center:yes;scroll:no;status:no;");
      //判断用户是否选择印章名称和密码
      if (mObject.MarkName==""||mObject.PassWord==null){
        StatusMsg("取消印章");
        return false;
      }else{
         //取得系统文件目录
         var mFilePath=webform.WebOffice.WebMsgFilepath;
         var mImgShape=null;
         var mLabName=null;
         var mZOrder=null;
         mMarkName=mObject.MarkName;
         mPassWord=mObject.PassWord;
         //清除所有设置的变量
         webform.WebOffice.WebMsgTextClear();
         //设置COMMAND 为 LOADMARKIMAGE
         webform.WebOffice.WebSetMsgByName("COMMAND","LOADMARKIMAGE");
         //设置印章名称
         webform.WebOffice.WebSetMsgByName("IMAGENAME",mMarkName);
         //设置印章密码
         webform.WebOffice.WebSetMsgByName("PASSWORD",mPassWord);
         //发送到服务器上
         webform.WebOffice.WebSendMessage();
         //如果没有错误
         if (webform.WebOffice.Error==""){
           //取得服务器返回时间
           mMarkTime=webform.WebOffice.WebGetMsgByName("DATETIME");
           //取得印章所盖的位置,POSITION所指的是标签的对象名
           mLabName=webform.WebOffice.WebGetMsgByName("POSITION");
           //设置印章的显示形式,4是在文字上方,5是在文字下方
           mZOrder=webform.WebOffice.WebGetMsgByName("ZORDER");
           //取得完整的印章图片名称
           var mFileName=webform.WebOffice.WebGetMsgByName("IMAGENAME");
           //保存该印章
           webform.WebOffice.WebMsgFileSave(mFilePath+mFileName);
           //如果一切正常
           if (webform.WebOffice.Error==""){
             //如果是word文件
             if (webform.WebOffice.FileType==".doc"){
               var mInlineShapes=null; //=webform.WebOffice.ActiveDocument.InlineShapes.Count;
               //var mShapes=webform.WebOffice.ActiveDocument.Shapes.Count;
               var mBookMark=WebFindBookmarks(mLabName);
               if (mBookMark){
                  mInlineShapes=mBookMark.InlineShapes.AddPicture(mFilePath+mFileName);
               }else{
                  mInlineShapes=webform.WebOffice.ActiveDocument.Application.Selection.InlineShapes.AddPicture(mFilePath+mFileName);
               } 

               //if (mInlineShapes!=webform.WebOffice.ActiveDocument.InlineShapes.Count){
               //   mImgShape = webform.WebOffice.ActiveDocument.InlineShapes.Item(webform.WebOffice.ActiveDocument.InlineShapes.Count).ConvertToShape();
               //}
               //if (mShapes!=webform.WebOffice.ActiveDocument.Shapes.Count){
               //   mImgShape = webform.WebOffice.ActiveDocument.Shapes.Item(webform.WebOffice.ActiveDocument.Shapes.Count);
               //}
              
              mImgShape = mInlineShapes.ConvertToShape();
              mImgShape.Select();
              mImgShape.AlternativeText="DBSTEP_2004=印章名称:["+mMarkName+"] 用户名称:["+webform.WebOffice.UserName+"] 盖章时间[:"+mMarkTime+"] 印章编号:["+webform.WebOffice.RecordID+"]";
              mImgShape.PictureFormat.TransparentBackground = true;
              mImgShape.PictureFormat.TransparencyColor = 16777215;
              mImgShape.Fill.Visible = false;
              mImgShape.WrapFormat.Type = 3;
              mImgShape.ZOrder(mZOrder);
            }
            //如果是Excel文件
            if (webform.WebOffice.FileType==".xls"){
         webform.WebOffice.ActiveDocument.ActiveSheet.Pictures.Insert(mFilePath+mFileName).Select();
       mImgShape =webform.WebOffice.ActiveDocument.Application.Selection.ShapeRange;
              mImgShape.AlternativeText="DBSTEP_2004=印章名称:["+mMarkName+"] 用户名称:["+webform.WebOffice.UserName+"] 盖章时间[:"+mMarkTime+"] 印章编号:["+webform.WebOffice.RecordID+"]";
              mImgShape.PictureFormat.TransparentBackground = true;
              mImgShape.PictureFormat.TransparencyColor = 16777215;
              mImgShape.Fill.Visible = false;
              mImgShape.ZOrder(mZOrder);
            }
           } 
           //清除印章文件
           webform.WebOffice.WebMsgFileClear(mFilePath+mFileName);
        }
        StatusMsg(webform.WebOffice.Error);
      }
    }

    //显示印章信息
    function WebShowSignature(){
      var SignatureString="";
      try{
        //如果是word文件
        if (webform.WebOffice.FileType==".doc"){
          for (var mIndex=1;mIndex<=webform.WebOffice.ActiveDocument.Shapes.Count;mIndex++){
            var mValidString=webform.WebOffice.ActiveDocument.Shapes.Item(mIndex).AlternativeText;
            if ((mValidString!=null)&&(mValidString.length!=0)){
                if ((mValidString.indexOf("DBSTEP_2004")!=-1) && (mValidString.indexOf(webform.WebOffice.RecordID)!=-1)){
      SignatureString=SignatureString+"\r\n"+mValidString.substring(12,mValidString.length);
         }
            }
          }
        }
        //如果是Excel文件
        if (webform.WebOffice.FileType==".xls"){
          for (var mSheet=1;mSheet<=webform.WebOffice.ActiveDocument.Application.Sheets.Count;mSheet++){
            webform.WebOffice.ActiveDocument.Application.Sheets(mSheet).Select();
            for (var mIndex=1;mIndex<=webform.WebOffice.ActiveDocument.ActiveSheet.Shapes.Count;mIndex++){
       var mValidString=webform.WebOffice.ActiveDocument.ActiveSheet.Shapes.Item(mIndex).AlternativeText;
              if ((mValidString!=null)&&(mValidString.length!=0)){
                  if ((mValidString.indexOf("DBSTEP_2004")!=-1) && (mValidString.indexOf(webform.WebOffice.RecordID)!=-1)){
        SignatureString=SignatureString+"\r\n"+mValidString.substring(12,mValidString.length);
           }
              }
            }
          }
        }

        if (SignatureString){
           alert("印章列表如下:"+SignatureString);
        }else{
           alert("没有找到任何有效印章");
        }
      }catch(e){}
    }


    //是否显示工具栏
    function WebToolBars(Visible){
      try{
         webform.WebOffice.ToolBars=Visible;
      }catch(e){}
    }
    //是否显示菜单栏
    function WebMenuBar(Visible){
      try{
         webform.WebOffice.MenuBar=Visible;
      }catch(e){}
    }

    //是否显示某种工具栏
    function WebToolsVisible(ToolName,Visible){
      try{
        webform.WebOffice.ActiveDocument.CommandBars(ToolName).Visible = Visible;
      }catch(e){}
    }

    //是否允许某工具栏上的某工具有效
    function WebToolsEnable(ToolName,ToolIndex,Enable){
     var i;
     try{
        for (i=1;i<=webform.WebOffice.ActiveDocument.CommandBars(ToolName).Controls.Count;i++){
     if  (webform.WebOffice.ActiveDocument.CommandBars(ToolName).Controls(i).id==ToolIndex){
          webform.WebOffice.ActiveDocument.CommandBars(ToolName).Controls(i).Enabled = Enable;
      break;
     }
        }
     }catch(e){}
    }

    //设置是否保护
    function WebProtect(value){
      try{
        if (value){
     if (webform.WebOffice.FileType==".doc"){ 
           webform.WebOffice.ActiveDocument.Protect(2);
     }else if(webform.WebOffice.FileType=='.xls'){
                for (var mIndex=1;mIndex<=webform.WebOffice.ActiveDocument.Application.ActiveWorkbook.Sheets.Count;mIndex++){
                    var mSheet=webform.WebOffice.ActiveDocument.Application.ActiveWorkbook.Sheets(mIndex);
                    mSheet.Protect("", true, true, true);
                }
     }
        }else{
     if (webform.WebOffice.FileType==".doc"){ 
      webform.WebOffice.ActiveDocument.UnProtect();
     }else if(webform.WebOffice.FileType=='.xls'){
                for (var mIndex=1;mIndex<=webform.WebOffice.ActiveDocument.Application.ActiveWorkbook.Sheets.Count;mIndex++){
                    var mSheet=webform.WebOffice.ActiveDocument.Application.ActiveWorkbook.Sheets(mIndex);
                    mSheet.UnProtect("");
                }
     }

        }
      }catch(e){}
    }

    //取得Word内容
    function WebGetWordContent(){
      try{
        alert(webform.WebOffice.ActiveDocument.Content.Text);
      }catch(e){}
    }

    //插入Word内容
    function WebSetWordContent(){
      var mText=window.prompt("请输入内容:","测试内容");
      if (mText==null){
         return (false);
      }
      else
      {
         //下面为显示选中的文本
         //alert(webform.WebOffice.ActiveDocument.Application.Selection.Range.Text);
         //下面为在当前光标出插入文本
         webform.WebOffice.ActiveDocument.Application.Selection.Range.InsertAfter (mText+"\n");
         //下面为在第一段后插入文本
         //webform.WebOffice.ActiveDocument.Application.ActiveDocument.Range(1).InsertAfter(mText);
      }
    }

    //设置并取得Excel的内容
    function WebGetExcelContent(){
        webform.WebOffice.ActiveDocument.Application.Sheets(1).Select;
        webform.WebOffice.ActiveDocument.Application.Range("C5").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "126";
        webform.WebOffice.ActiveDocument.Application.Range("C6").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "446";
        webform.WebOffice.ActiveDocument.Application.Range("C7").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "556";
        webform.WebOffice.ActiveDocument.Application.Range("C5:C8").Select;
        webform.WebOffice.ActiveDocument.Application.Range("C8").Activate;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)";
        webform.WebOffice.ActiveDocument.Application.Range("D8").Select;
        alert(webform.WebOffice.ActiveDocument.Application.Range("C8").Text);
    }

    //设置Excel页,并演示锁定相应栏目
    function WebSheetsLock(){
        webform.WebOffice.ActiveDocument.Application.Sheets(1).Select;

        webform.WebOffice.ActiveDocument.Application.Range("A1").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "产品";
        webform.WebOffice.ActiveDocument.Application.Range("B1").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "价格";
        webform.WebOffice.ActiveDocument.Application.Range("C1").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "详细说明";
        webform.WebOffice.ActiveDocument.Application.Range("D1").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "库存";
        webform.WebOffice.ActiveDocument.Application.Range("A2").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "书签";
        webform.WebOffice.ActiveDocument.Application.Range("A3").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "毛笔";
        webform.WebOffice.ActiveDocument.Application.Range("A4").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "钢笔";
        webform.WebOffice.ActiveDocument.Application.Range("A5").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "尺子";

        webform.WebOffice.ActiveDocument.Application.Range("B2").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "0.5";
        webform.WebOffice.ActiveDocument.Application.Range("C2").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "樱花";
        webform.WebOffice.ActiveDocument.Application.Range("D2").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "300";

        webform.WebOffice.ActiveDocument.Application.Range("B3").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "2";
        webform.WebOffice.ActiveDocument.Application.Range("C3").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "狼毫";
        webform.WebOffice.ActiveDocument.Application.Range("D3").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "50";

        webform.WebOffice.ActiveDocument.Application.Range("B4").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "3";
        webform.WebOffice.ActiveDocument.Application.Range("C4").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "蓝色";
        webform.WebOffice.ActiveDocument.Application.Range("D4").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "90";

        webform.WebOffice.ActiveDocument.Application.Range("B5").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "1";
        webform.WebOffice.ActiveDocument.Application.Range("C5").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "20cm";
        webform.WebOffice.ActiveDocument.Application.Range("D5").Select;
        webform.WebOffice.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "40";

        //保护工作表
        webform.WebOffice.ActiveDocument.Application.Range("B2:D5").Select;
        webform.WebOffice.ActiveDocument.Application.Selection.Locked = false;
        webform.WebOffice.ActiveDocument.Application.Selection.FormulaHidden = false;
        webform.WebOffice.ActiveDocument.Application.ActiveSheet.Protect(true,true,true);  

        alert("已经保护工作表,只有B2-D5单元格可以修改。");
    }

    //VBA套红操作
    function WebInsertVBA(){
     
     //画线
     var object=webform.WebOffice.ActiveDocument;
     var myl=object.Shapes.AddLine(100,60,305,60)
     myl.Line.ForeColor=255;
     myl.Line.Weight=2;
     var myl1=object.Shapes.AddLine(326,60,520,60)
     myl1.Line.ForeColor=255;
     myl1.Line.Weight=2;

     //object.Shapes.AddLine(200,200,450,200).Line.ForeColor=6;
        var myRange=webform.WebOffice.ActiveDocument.Range(0,0);
     myRange.Select();

     var mtext="★";
     webform.WebOffice.ActiveDocument.Application.Selection.Range.InsertAfter (mtext+"\n");
        var myRange=webform.WebOffice.ActiveDocument.Paragraphs(1).Range;
        myRange.ParagraphFormat.LineSpacingRule =1.5;
        myRange.font.ColorIndex=6;
        myRange.ParagraphFormat.Alignment=1;
        myRange=webform.WebOffice.ActiveDocument.Range(0,0);
     myRange.Select();
     mtext="金格发[2003]154号";
     webform.WebOffice.ActiveDocument.Application.Selection.Range.InsertAfter (mtext+"\n");
     myRange=webform.WebOffice.ActiveDocument.Paragraphs(1).Range;
     myRange.ParagraphFormat.LineSpacingRule =1.5;
     myRange.ParagraphFormat.Alignment=1;
     myRange.font.ColorIndex=1;
     
     mtext="金格电子政务文件";
     webform.WebOffice.ActiveDocument.Application.Selection.Range.InsertAfter (mtext+"\n");
     myRange=webform.WebOffice.ActiveDocument.Paragraphs(1).Range;
     myRange.ParagraphFormat.LineSpacingRule =1.5;
     
     //myRange.Select();
     myRange.Font.ColorIndex=6;
     myRange.Font.Name="仿宋_GB2312";
     myRange.font.Bold=true;
     myRange.Font.Size=50;
     myRange.ParagraphFormat.Alignment=1;
     
     //myRange=myRange=webform.WebOffice.ActiveDocument.Paragraphs(1).Range;
     webform.WebOffice.ActiveDocument.PageSetup.LeftMargin=70;
     webform.WebOffice.ActiveDocument.PageSetup.RightMargin=70;
     webform.WebOffice.ActiveDocument.PageSetup.TopMargin=70;
     webform.WebOffice.ActiveDocument.PageSetup.BottomMargin=70;
    }

    //保存定稿文件
    function WebUpdateFile(){
      try{
        webform.WebOffice.WebUpdateFile();
        if (webform.WebOffice.Error!=""){
     alert(webform.WebOffice.Status+webform.WebOffice.Error);
        }
      }catch(e){}
      StatusMsg(webform.WebOffice.Status);
    }

    //从服务器上导入数据到文档中
    function WebInportText(){
        var mText;
        webform.WebOffice.WebSetMsgByName("COMMAND","INPORTTEXT");
        webform.WebOffice.WebSendMessage();
        if (webform.WebOffice.Error==""){
          mText=webform.WebOffice.WebGetMsgByName("CONTENT");
          webform.WebOffice.ActiveDocument.Application.Selection.Range.InsertAfter(mText);
          alert("导入文本成功");
        }
        StatusMsg(webform.WebOffice.Status);
    }

    //导出所有文档文本给服务器
    function WebExportText(){
        var mText=webform.WebOffice.ActiveDocument.Content.Text;
        webform.WebOffice.WebSetMsgByName("COMMAND","EXPORTTEXT");
        webform.WebOffice.WebSetMsgByName("CONTENT",mText);
        webform.WebOffice.WebSendMessage();
        if (webform.WebOffice.Error==""){
          alert("导出文本成功");
        }
        StatusMsg(webform.WebOffice.Status);
    }

    //根据标签名称查找标签
    function WebFindBookmarks(mPosition)
    {
      var mBookObject,mBookName,mBookIdx;
      if (webform.WebOffice.FileType==".doc"){
             for (mBookIdx = 1; mBookIdx<=webform.WebOffice.ActiveDocument.Bookmarks.Count;mBookIdx++){
                 mBookName = webform.WebOffice.ActiveDocument.Bookmarks.Item(mBookIdx).Name;
                 if (mBookName==mPosition) {
                     mBookObject = webform.WebOffice.ActiveDocument.Bookmarks.Item(mBookIdx).Range;
                     break;
                 }
             }
      }
      return (mBookObject);
    }

    //插入服务器图片
    function WebInsertImage(vLabName,vImgName,vTrans,vZOrder)
    {
        //取得文件目录
        var mFilePath=webform.WebOffice.WebMsgFilepath;
        var mImgShape=null;
        var mPassword=null;
        //清除所有设置变量
        webform.WebOffice.WebMsgTextClear();
        //设置COMMAND 为 INSERTIMAGE 命令
        webform.WebOffice.WebSetMsgByName("COMMAND","INSERTIMAGE");
        //设置要插入的图片名称
        webform.WebOffice.WebSetMsgByName("IMAGENAME",vImgName);
        //发送到服务器上
        webform.WebOffice.WebSendMessage();
        //如果没有错误
        if (webform.WebOffice.Error==""){
           //将服务器返回的图片保存
           webform.WebOffice.WebMsgFileSave(mFilePath+vImgName);
           //如果没有错误
           if (webform.WebOffice.Error==""){
             //如果是word文档
             if (webform.WebOffice.FileType==".doc"){
               var mInlineShapes=null;  //=webform.WebOffice.ActiveDocument.InlineShapes.Count;
               //var mShapes=webform.WebOffice.ActiveDocument.Shapes.Count;
               var mBookMark=WebFindBookmarks(vLabName);
               if (mBookMark){
                  mInlineShares=mBookMark.InlineShapes.AddPicture(mFilePath+vImgName);
               }else{
                  mInlineShares=webform.WebOffice.ActiveDocument.Application.Selection.InlineShapes.AddPicture(mFilePath+vImgName);
               } 
               //if (mInlineShapes!=webform.WebOffice.ActiveDocument.InlineShapes.Count){
               //   mImgShape = webform.WebOffice.ActiveDocument.InlineShapes.Item(webform.WebOffice.ActiveDocument.InlineShapes.Count).ConvertToShape();
               //}
               //if (mShapes!=webform.WebOffice.ActiveDocument.Shapes.Count){
               //   mImgShape = webform.WebOffice.ActiveDocument.Shapes.Item(webform.WebOffice.ActiveDocument.Shapes.Count);
               //}
              mImgShape=mInlineShares.ConvertToShape();
              mImgShape.Select();
              mImgShape.PictureFormat.TransparentBackground = vTrans;
              mImgShape.PictureFormat.TransparencyColor = 16777215;
              mImgShape.Fill.Visible = false;
              mImgShape.WrapFormat.Type = 3;
              mImgShape.ZOrder(vZOrder);
            }
            //如果是Excel文档
            if (webform.WebOffice.FileType==".xls"){
         webform.WebOffice.ActiveDocument.ActiveSheet.Pictures.Insert(mFilePath+vImgName).Select();
       mImgShape =webform.WebOffice.ActiveDocument.Application.Selection.ShapeRange;
              mImgShape.PictureFormat.TransparentBackground = vTrans;
              mImgShape.PictureFormat.TransparencyColor = 16777215;
              mImgShape.Fill.Visible = false;
              mImgShape.ZOrder(vZOrder);
            }
          } 
          //清除文件
          webform.WebOffice.WebMsgFileClear(mFilePath+vImgName);
        }
        StatusMsg(webform.WebOffice.Status+webform.WebOffice.Error);
    }

    //套用模版定稿
    function WebInsertFile()
    {
      //var mDialogUrl = "Version/VersionList.asp?RecordID="+webform.WebOffice.RecordID;
      //var mObject = new Object();
      //    mObject.FileID = "";
      //    mObject.Result = false;
      //    window.showModalDialog(mDialogUrl, mObject, "dialogHeight:280px; dialogWidth:420px;center:yes;scroll:no;status:no;");
      //if (mObject.Result){
         //取得目录名称
         var mFilePath=webform.WebOffice.WebMsgFilepath;
         //取得文件类型
         var mFileName=webform.WebOffice.RecordID+webform.WebOffice.FileType;
         var mBookRange;
         //保存当前文件
         webform.WebOffice.Save(mFilePath+mFileName,true);
         //如果没有问题
         if (webform.WebOffice.Error==""){
           //清除所有设置变量
           webform.WebOffice.WebMsgTextClear();
           //设置COMMAND为INSERTFILE
           webform.WebOffice.WebSetMsgByName("COMMAND","INSERTFILE");
           //设置需要调用的模版名称
           webform.WebOffice.WebSetMsgByName("TEMPNAME","模板一.doc");
           //发送该信息到服务器上
           webform.WebOffice.WebSendMessage();
           //如果没有错误
           if (webform.WebOffice.Error==""){
             //关闭当前文件
             webform.WebOffice.Close();
             //保存模版文件
             webform.WebOffice.WebMsgFileSave(gFileName);
             //如果没有错误
             if (webform.WebOffice.Error==""){
                //打开模版文件
                webform.WebOffice.Open(gFileName,true);
                //查找需要插入的位置(标签)
                var mPosition=webform.WebOffice.WebGetMsgByName('POSITION');
                if (mPosition.length>0){
                   mBookRange = WebFindBookmarks(mPosition);
                }else{
                   mBookRange = webform.WebOffice.ActiveDocument.Range.Application.Selection;
                }
                //将原工作文档插入到该位置
                mBookRange.InsertFile(mFilePath+mFileName);
             } 
           }else{
             alert(webform.WebOffice.Error);
           }
         }
         //清楚文件
         webform.WebOffice.WebMsgFileClear(mFilePath+mFileName);
         StatusMsg(webform.WebOffice.Status)
    }

    //作用:表格生成及填充
    function WebSetWordTable(){
      var mText="",mName="",iColumns,iCells,iTable;
      //清除所有设置变量
      webform.WebOffice.WebMsgTextClear();
      //设置COMMAND为WORDTABLE
      webform.WebOffice.WebSetMsgByName("COMMAND","WORDTABLE");   //OfficeServer.asp  COMMAND=WORDTABLE
      //发送到服务器上
      webform.WebOffice.WebSendMessage();         //OfficeServer.asp  OPTION=SENDMESSAGE
      //如果没有错误
      if (webform.WebOffice.Error==""){                      
     //取得列
     iColumns = webform.WebOffice.WebGetMsgByName("COLUMNS");
     //取得行
     iCells = webform.WebOffice.WebGetMsgByName("CELLS");     
     //生成表格
     iTable=webform.WebOffice.ActiveDocument.Tables.Add(webform.WebOffice.ActiveDocument.Application.Selection.Range,iCells,iColumns);  
     for (var i=1; i<=iColumns; i++)
     {
          for (var j=1; j<=iCells; j++)
       {
      mName=i.toString()+j.toString();  
      //取得表格内容 
      mText=webform.WebOffice.WebGetMsgByName(mName); 
      //填充单元值
      iTable.Columns(i).Cells(j).Range.Text=mText;    
        }
     }
       }
       StatusMsg(webform.WebOffice.Status);
    }

    </script>
    </head>
    <body bgcolor="#ffffff" οnlοad="Load()" οnunlοad="UnLoad()">

    <form name="webform" method="post" action="DocumentSave.asp" οnsubmit="return SaveDocument();">
    <input type=hidden name=RecordID value="<%=mRecordID%>">
    <input type=hidden name=Template value="<%=mTemplate%>">
    <input type=hidden name=FileType value="<%=mFileType%>">
    <input type=hidden name=EditType value="<%=mEditType%>">
    <input type=hidden name=HTMLPath value="<%=mHTMLPath%>">

    <table border=0  cellspacing='0' cellpadding='0' width=100% height=100% align=center class=TBStyle>
    <tr>
      <td align=right class="TDTitleStyle" width=64>主题</td>
      <td class="TDStyle"><input type=text name=Subject value="<%=mSubject%>" class="IptStyle" οnblur="SetBookmarks('Caption',this.value);" ></td>
    </tr>

    <tr>
      <td align=right class="TDTitleStyle" width=64>作者</td>
      <td class="TDStyle"><input type=text name=Author value="<%=mAuthor%>" class="IptStyle" οnblur="SetBookmarks('Author',this.value);" ></td>
    </tr>

    <tr>
      <td align=right class="TDTitleStyle" width=64>时间</td>
      <td class="TDStyle"><input type=text name=FileDate value="<%=mFileDate%>" readonly class="IptStyle" ></td>
    </tr>
    <tr>
      <!--td align=right valign=top  class="TDTitleStyle" width=64>内容</td-->
      <td align=right valign=top  class="TDTitleStyle" width=64 hegith=90% >
      <br>功能列表<br>
                     <input type=button class=button value="隐藏痕迹" <%=mDisabled%> <%=mWord%> οnclick="ShowRevision(false)">
                     <input type=button class=button value="显示痕迹" <%=mDisabled%> <%=mWord%> οnclick="ShowRevision(true)">
                     <input type=button class=button value="清除痕迹" <%=mDisabled%> <%=mWord%> οnclick="webform.WebOffice.ActiveDocument.AcceptAllRevisions();">
                     <input type=button class=button value="保护文档" <%=mDisabled%> οnclick="WebProtect(true)">
                     <input type=button class=button value="解除保护" <%=mDisabled%> οnclick="WebProtect(false)">
                     <input type=button class=button value="页面设置" <%=mDisabled%> οnclick="WebOpenPageSetup()">
                     <input type=button class=button value="打印文档" <%=mDisabled%> οnclick="WebOpenPrint()">
                     <input type=button class=button value="插入图片" <%=mDisabled%> οnclick="WebOpenPicture()">
        版本控制
                     <input type=button class=button value="保存版本" <%=mDisabled%> οnclick="WebSaveVersion()">
                     <input type=button class=button value="打开版本" <%=mDisabled%> οnclick="WebOpenVersion()">
        服务器交互
                     <input type=button class=button value="签名印章" <%=mDisabled%> οnclick="WebOpenSignature()">
                     <input type=button class=button value="验证签章" <%=mDisabled%> οnclick="WebShowSignature()">
                     <input type=button class=button value="远程图片" <%=mDisabled%> οnclick="WebInsertImage('Image','样品.jpg',true,4);">
                     <input type=button class=button value="填充模版" <%=mDisabled%> <%=mWord%> οnclick="LoadBookmarks()">
                     <input type=button class=button value="表格填充" <%=mDisabled%> <%=mWord%> οnclick="WebSetWordTable()">

        VBA调用
                     <input type=button class=button value="取Word内容" <%=mDisabled%> <%=mWord%>  οnclick="WebGetWordContent()">
                     <input type=button class=button value="写Word内容" <%=mDisabled%> <%=mWord%> οnclick="WebSetWordContent()">
                     <input type=button class=button value="用Excel求和" <%=mDisabled%> <%=mExcel%> οnclick="WebGetExcelContent()">
                     <input type=button class=button value="Excel保护工作表" <%=mDisabled%> <%=mExcel%> οnclick="WebSheetsLock()">
          工具栏
                     <input type=button class=button value="关闭菜单" <%=mDisabled%>  οnclick="WebMenuBar(false)">
                     <input type=button class=button value="显示菜单" <%=mDisabled%>  οnclick="WebMenuBar(true)">
                     <input type=button class=button value="关闭工具栏" <%=mDisabled%>  οnclick="WebToolBars(false)">
                     <input type=button class=button value="显示工具栏" <%=mDisabled%>  οnclick="WebToolBars(true)">
                     <input type=button class=button value="关闭常用工具" <%=mDisabled%>  οnclick="WebToolsVisible('Standard',false)">
                     <input type=button class=button value="打开常用工具" <%=mDisabled%>  οnclick="WebToolsVisible('Standard',true)">
                     <input type=button class=button value="关闭格式工具" <%=mDisabled%>  οnclick="WebToolsVisible('Formatting',false)">
                     <input type=button class=button value="打开格式工具" <%=mDisabled%>  οnclick="WebToolsVisible('Formatting',true)">
                     <input type=button class=button value="关闭审阅按钮" <%=mDisabled%>  οnclick="WebToolsVisible('Reviewing',false)">
                     <input type=button class=button value="打开审阅按钮" <%=mDisabled%>  οnclick="WebToolsVisible('Reviewing',true)">
                     <input type=button class=button value="关闭打印按钮" <%=mDisabled%>  οnclick="WebToolsEnable('Standard',2521,false);">
                     <input type=button class=button value="打开打印按钮" <%=mDisabled%>  οnclick="WebToolsEnable('Standard',2521,true);">
        其他调用
                     <input type=button class=button value="VBA套红定稿" <%=mDisabled%> <%=mWord%> οnclick="WebInsertVBA();">
                     <input type=button class=button value="套用模版定稿" <%=mDisabled%> οnclick="WebInsertFile()">
                     <input type=button class=button value="保存定稿文件" <%=mDisabled%> οnclick="WebUpdateFile()">
                     <input type=button class=button value="导入Text" <%=mDisabled%> <%=mWord%> οnclick="WebInportText();">
                     <input type=button class=button value="导出Text" <%=mDisabled%> <%=mWord%> οnclick="WebExportText();">

      </td>

      <td class="TDStyle" height=90% >
            <table border=0 cellspacing='0' cellpadding='0' width='100%' height='100%' >
            <tr>
              <td bgcolor=menu >
    <OBJECT id="WebOffice" width="100%" height="100%" classid="clsid:23739A7E-2004-4D1C-88D5-D50B18F7C347" codebase="<%=mClientUrl%>">
             <param name="BorderStyle" value="1">
             <param name="Menubar" value="1">
             <param name="Toolbars" value="1">
    </OBJECT>
              </td>
            </tr>
            <tr>
              <td bgcolor=menu height='20'>
      <div id=StatusBar>状态栏</div>
              </td>
            </tr>
            </table>
      </td>
    </tr>
    </table>

    <input type=submit value="  保存  " <%=mDisabled%> >
    <input type=button value="  返回  " οnclick="history.back()"> 注意:只有选择《保存》后,所做的操作才有效!
    </form>

    </body>
    </html>

    转载于:https://www.cnblogs.com/fengxiaoxiao/archive/2008/04/11/1148473.html

    展开全文
  • vba-acad.zip VB控制ACAD(4KB) 47,vba-word2.zip VB控制Word 2(2KB) 48,vba-word1.zip VB控制Word 1 (2KB) 49,vba-excel.zip VB控制EXCEL(2KB) 50,hotkey.zip 如何程序拥有热键?...
  • 7.7.2 调用错误日志的错误处理程序的示例 157 7.7.3 每个错误的跟踪信息 158 7.7.4 检查实际的错误日志代码 159 7.7.5 首先记录到后端,必要时记录到前端 162 7.7.6 使用错误处理程序更新后端 163 7.8 ...
  • 7.7.2 调用错误日志的错误处理程序的示例 157 7.7.3 每个错误的跟踪信息 158 7.7.4 检查实际的错误日志代码 159 7.7.5 首先记录到后端,必要时记录到前端 162 7.7.6 使用错误处理程序更新后端 163 7.8 创建集中...
  • Visual Basic 2008/2010从入门到精通

    热门讨论 2012-02-28 19:05:54
    10.5.2 调用子过程 10.5.3 使用子过程管理输入信息 10.6 补充知识:按传值方式和引用方式传递参数 10.7 本章小结 第11章 使用数组管理数值和字符串数据 11.1 使用变量数组 11.1.1 创建数组 11.1.2 声明定长...
  • g011.zip 生命游戏源程序(12KB) 588,g010.zip 一个精灵游戏源程序(33KB) 589,g009.zip 翻转棋游戏(64, 每正反面分别为黑白两色, 两人对弈)的源程序(29) 590,g008.zip 纸牌游戏源程序(45KB)...
  • g011.zip 生命游戏源程序(12KB) 588,g010.zip 一个精灵游戏源程序(33KB) 589,g009.zip 翻转棋游戏(64, 每正反面分别为黑白两色, 两人对弈)的源程序(29) 590,g008.zip 纸牌游戏源程序(45KB)...
  • g011.zip 生命游戏源程序(12KB) 588,g010.zip 一个精灵游戏源程序(33KB) 589,g009.zip 翻转棋游戏(64, 每正反面分别为黑白两色, 两人对弈)的源程序(29) 590,g008.zip 纸牌游戏源程序(45KB)...
  • g011.zip 生命游戏源程序(12KB) 588,g010.zip 一个精灵游戏源程序(33KB) 589,g009.zip 翻转棋游戏(64, 每正反面分别为黑白两色, 两人对弈)的源程序(29) 590,g008.zip 纸牌游戏源程序(45KB)...
  • 定制系统,并与其它应用程序集成 3-8 使用其它应用程序中的数据 3-8 定制系统 3-8 设计多用户系统 3-9 设计易于部署及维护的系统 3-9 4 章 设置FactoryTalk Directory 4-1 关于FactoryTalk Directory 4-1 关于...
  • 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端...
  • MYSQL中文手册

    2013-03-11 21:21:34
    4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. ...
  • MySQL 5.1中文手冊

    2009-12-11 09:43:12
    4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端...
  • 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端...
  • MySQL 5.1参考手册.chm

    2011-12-07 13:53:37
    4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端...
  • MySQL 5.1参考手册

    2010-04-20 22:02:50
    4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端...
  • 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. ...
  • 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

vba如何调用子程序