Dim WordObj As Object
    Dim WordDoc As Object
    Set WordObj = CreateObject("Word.Basic")
    WordObj.AppActivate "Microsoft Word", 1使用这种方法出现“无法激活应用程序”,请问是怎么回事???

解决方案 »

  1.   

    1.引言
        
        Visual Basic 6.0简单易学,其可视化用户界面设计功能, 把程序员从繁琐的界面设计中解脱出来, 而强大的多媒体编程功能和网络编程功能,又 深受广大用户喜爱, 但也有一些不如人意的地方, 如既不能像 Word2000那样进行拼写检查、语法检查、单词统计等, 也不能像Excel 2000那样具有很多的函数。本文将介绍在V B 6.0中如何调用Word 2000和Excel 2000中这些功能。2.原理及实现
        
        Word 2000 和Excel 2000是功能强大的字处理软件和表处理软件, 同时提供ActiveX对象, 由于微软使用了自动化技术, 并且将Word和Excel 中的自动化对象的属性、方法等详细资料公布于众, 使Word和Excel表现出很强的可扩充性, 这样VB 6.0就可以调用Word 2000 和Excel 2000 的功能。以下将以调用Word 2000的单词统计功能和调用Excel 2000的MAX函数与ATAN函数为例来说明其实现方法。
        2.1 调用Word 2000
        如果要想在VB 6.0中调用Word 2000, 那么就要先进行设置: 选择VB6.0的“工程”菜单中的“引用”选项, 并在该选项的对话框中选定“Microsoft Word 9.0 Object Library”即可。
         调用Word 2000的“单词统计”功能。新建工程并在窗体上添加TextBox控件三个(Text1,Text2,Text3), Text1的MultiLine属性为True  一个CommandButton控件(Command1), 两个Label控件(Label1,Label2) ,设置Text1的MultiLine属性为True,然后添加以下代码:
         Option Explicit
         Dim Doc As New Document
         Dim Visi As Boolean
         
         Private Sub Command1_Click()
           Dim Dlg As Word.Dialog
           Doc.Range = Text1.text
           Set Dlg = Doc.Application.Dialogs(wdDialogDocumentStatistics)
           Dlg.Execute                  ’统计单词和字符
           Text2.Text = Dlg.Words        ’显示单词数
           Text3.Text = Dlg.Characters     ’显示字符数
         End Sub
         
          Private Sub Form_load()
            Form1.Caption = “调用 Word 2000”
            Text1.Text = “”
            Text2.Text = “”
            Text3.Text = “”
            Command1.Caption = “统计单词”
            Label1.Caption = “单词数”
            Label2.Caption = “字符数”
            Visi = Doc.Application.Visible
          End Sub      Private Sub Form_Unload(Cancel As Integer)
            If Visi Then
              Doc.Close savechanges: = False
              Else
              Doc.Application.Quit savechanges: = False
            End If
          End Sub
          运行中窗体如图1所示:
     
    图1 调用Word 2000
        2. 2 调用Excel 2000
        使用Excel Sheet 对象技术可以处理可变数量的数据, 并将结果送到Visual Basic 的应用程序中。
         新建工程并在窗体上添加TextBox控件两个(Text1,Text2), 一个CommandButton控件(Command1), 四个Label控件(Label1,Label2,Label3,Label4) , 然后添加以下代码:
          Option Explicit
          Private Sub Command1_Click()
    Dim xObject As Object
            '调用Excel 2000
            Set xObject = CreateObject("Excel.Sheet")
            Set xObject = xObject.Application.ActiveWorkbook.ActiveSheet
               '将Text1中的数值送到Excel 2000的"A1"单元格中
            xObject.Range("A1").Value = Text1.Text
              '将Text2中的数值送到Excel 2000的"A2"单元格中
            xObject.Range("A2").Value = Text2.Text
              '将MAX()的计算结果送到Excel 2000的"A3"单元格中
            xObject.Range("A3").Formula = "=MAX(A1,A2)"
               '将ATAN()的计算结果送到Excel 2000的"A4"单元格中
            xObject.Range("A4").Formula = "=ATAN(A1/A2)*180/PI()"
                '将Excel 2000的"A3"单元格中的数值显示在Label1中
            Label1.Caption = xObject.Range("A3").Value
                 '将Excel 2000的"A4"单元格中的数值显示在Label2中
            Label2.Caption = xObject.Range("A4").Value
            Set xObject = Nothing     
     End Sub
          
          Private Sub Form_Load()
            Form1.Captiom = “调用 Excel 2000”
            Text1.Text = “”
            Text2.Text = “”
            Label1.Caption = “”
            Label2.Caption = “”
            Label3.Caption = “MAX”
            Label4.Caption = “ATAN”       
            Command1.Caption = “调用函数”
          End Sub
    运行程序, 输入两数后, 其结果如图2所示:
     
    图2 调用Excel2000
       该程序先在两个文本框(Text1,Text2)中输入数值并分别将输入的数值送到Excel 2000的“A1”和“A2”单元格中, 然后调用Excel 2000中的“MAX()”函数并将计算结果送到“A3”单元格中, 接着调用Excel 2000 中的“ATAN()”函数并将计算结果送到“A4”单元格中, 最后将结果(“A3”和“A4”单元格中的值)输出到Visual Basic 的Label1和Label2中。3.结束语     通过以上的介绍, 读者会对VB 6.0调用Word2000和Excel 2000有所了解, 在此基础上可以完成调用Word 2000的其他功能和Excel 2000的其他函数。   
      

  2.   

    Private Sub Command1_Click()
        Dim WordObj As Object
        Set WordObj = CreateObject("Word.Application")
        WordObj.Documents.Add
        WordObj.Visible = True
    End Sub^_^