2011-06-20 62 views
0

我有一个遗留项目,我试图在windows server 2003上进行调试。 1)我不能让应用程序打开Word 2007(安装在该机器上)
2)我知道应用程序是否在它被写入其他计算机开放 - 这些机器正在运行XP或Windows终端服务器,
3)申请打开与标准
声明从vb 6打开word 2007

Private wdApplication   As Word.Application 

和代码

Set wdApplication = GetObject(, "Word.Application") 
    If wdApplication Is Nothing Then Set wdApplication = CreateObject("Word.Application") 
     If wdApplication Is Nothing Then 
     Kill sFileName 
    End If 
    ' other code 
    end if 

任何想法,以什么可是没有设置,我需要设置
谢谢 我尝试了方法建议,这是不成功的Windows服务器 我去寻找通过我的代码库,我继承,我发现一个应用程序这确实运行Word正确,它是由不同的人设定(显然)
它使用一个类来连接到具有这些功能

Option Explicit 
Private bIsNewApp As Boolean 
Private sErrorStr As String 
Private oWordApp As Object 
Private ys As YouthSoft 

Public Sub MakeVisible() 
    oWordApp.Visible = True 
    oWordApp.ActiveDocument.Select 
    oWordApp.Selection.GoTo 1, 1 
End Sub 
Public Sub StartWord() 

    'Set oWordApp = GetObject(, "Word.Application") 
    If oWordApp Is Nothing Then 
    Set oWordApp = CreateObject("Word.Application") 
    If oWordApp Is Nothing Then 
     sErrorStr = "Microsoft Word could not be located or started. OLE Automation Error" 
    Else 
     bIsNewApp = True 
    End If 
    Else 
    bIsNewApp = False 
    End If 

End Sub 

字是否有这个和其他代码之间的一些区别,我应该看到 我经历了参考这两个项目的组件和功能都相同。

+0

为什么上次“结束时,如果”? – BlackBear

+0

在声明中尝试使用这种更改的后期绑定方法调用:'Private wdApplication As Object' – wqw

回答

2

添加对“Microsoft Word {版本号}对象库”的引用。

试试这个,如果它的工作原理,

Dim objWord As New Word.Application 
Dim ActiveWord As New Word.Document 

Set objWord = New Word.Application 
Set ActiveWord = objWord.Documents.Add(, , wdNewBlankDocument) 
objWord.Visible = True 
objWord.Activate 



With ActiveWord 
    .PageSetup.TopMargin = 1 * 72 
    .PageSetup.BottomMargin = 1 * 72 
    .PageSetup.LeftMargin = 1.25 * 72 
    .PageSetup.RightMargin = 1.25 * 72 
    .ActiveWindow.Application.Selection.TypeText "Test" 
End With 

Set objWord = Nothing 
Set ActiveWord = Nothing 
+0

+1,当您CREATEOBJECT时,字窗口不一定是可见的。 OP不表示是否有错误,或者如果WINWORD.EXE出现在taskman进程列表中。如果它在进程列表中,则它被无形地加载。 – DarinH

+0

感谢球员,我有什么应该是正确的对象库(12),我尝试了Nick Binnet的代码,但它仍然没有启动它。我去搜索服务器上的其他遗留应用程序,发现一个打开“代码”的程序如果wdApplication是Nothing然后设置wdApplication = New Word.Application 'code' – IronHead83

2

的问题可能是,Word应用程序实例未负载,但被隐藏。

尝试以下,它总是与我的作品:

Dim WD As New Word.Application 
WD.Visible = True 
'from here Word should open and have no active documents opened 
'here is how to open documents 
WD.Documents.Open "C:\FileName.doc"