Вступительное слово 2007 от VB 6 - PullRequest
0 голосов
/ 20 июня 2011

У меня есть устаревший проект, который я пытаюсь отладить на Windows Server 2003. 1) Я не могу заставить приложение открыть Word 2007 (установлено на этом компьютере)
2) Я знаю, что приложение открывается на других компьютерах в том виде, как оно написано - на этих машинах запущен сервер терминалов xp или windows,
3) Приложение открывается со стандартом
Объявление

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 не установил, что мне нужно установить
благодарю вас Я попробовал предложенные методы, но он не увенчался успехом. Я просмотрел свою библиотеку кода, которую унаследовал, и нашел приложение, которое правильно запускает слово, оно было настроено другим человеком (очевидно)
он использует класс для соединения со словом, которое имеет эти функции

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

Есть ли какая-то разница между этим и другим кодом, который я должен увидеть Я просмотрел ссылки и компоненты для обоих проектов, и они были одинаковыми в этой функциональной области

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Возможно, проблема в том, что DID экземпляра приложения 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"
2 голосов
/ 20 июня 2011

Добавить ссылку на «Библиотеку объектов Microsoft Word {VersionNumber}».

Попробуйте, если это работает,

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
...