2011-06-20 103 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"