Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1352to1356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word aus Excel starten

Word aus Excel starten
24.03.2014 18:23:16
ing.grohn
Hallo Forum,
ich starte Word aus Excel2003 mit (u.a.) folgenden Befehlen:

MsgBox version
On Error Resume Next
Set objWord = GetObject("Word.Application." & version)
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application." & version)
End If
On Error GoTo 0

funktioniert eigentlich tadellos! Eigentlich: in Wirklichkeit startet immer Word 2010 obwohl als Version die 11 (hab ich geprüft)übergeben/angehängt wird und damit Word 2003 starten sollte.
(beide Versionen sind parallel installiert)
Warum ist das so?
Wie kann man das abstellen?
Ich freue mich auf Eure Antworten und bedanke mich zielsveel.
Mit freundlichen Grüßen
Albrecht

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word aus Excel starten
24.03.2014 18:42:10
Martin
Hallo Albrecht,
gib den direkten Pfad von Word an:
Sub OpenWinword()
Shell "C:\Programme\Microsoft Office\OFFICE11\winword.exe", vbNormalFocus
End Sub
Viele Grüße
Martin

Ergänzung
24.03.2014 18:47:24
Martin
Hallo Albrecht,
wenn der Code immer aus Excel 2003 ausgeführt wird, kannst du auch folgenden Code nehmen:
Sub OpenWinword2()
Shell Application.Path & "\winword.exe", vbNormalFocus
End Sub
Viele Grüße
Martin

AW: Ergänzung
24.03.2014 19:32:09
ing.grohn
Hallo Martin,
meine Frage war nicht klar genug gestellt:
es geht nicht nur um den Start, es werdwn natürlich auch Vorlagen und Dokumente aufgerufen und dann weiter verarbeitet:

Function Word_Aktivieren(Vorlage As String, sichtbar As Boolean) As Word.Document
Dim strTemplate As String
Dim version As Integer
Dim objWord As Object
version = Workbooks("Kanzlei.xls").Sheets("Konstanten").Range("A54").Value
On Error Resume Next
Set objWord = GetObject("Word.Application." & version)
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application." & version)
End If
On Error GoTo 0
If Not objWord Is Nothing Then
objWord.Visible = True
strTemplate = Workbooks("Kanzlei.xls").Sheets("Konstanten").Range("aLW").Value _
& Workbooks("Kanzlei.xls").Sheets("Konstanten").Range("Vorlagen"). _
Value _
& Workbooks("Kanzlei.xls").Sheets("Konstanten").Range(Vorlage).Value
Set Word_Aktivieren = objWord.Documents.Add(template:=strTemplate)
End If
Set objWord = Nothing
End Function
Mit freundlichen Grüßen
Albrecht

Anzeige
AW: Ergänzung
24.03.2014 19:46:25
Martin
Hallo Albrecht,
dann geht es so:
    Call Shell("""C:\Programme\Microsoft Office\OFFICE11\winword.exe"" ""c:\Datei.doc""", 1)
Viele Grüße
Martin

AW: Ergänzung
24.03.2014 19:59:35
Martin
Hallo Albrecht,
da ihr das Makro eher variabel braucht, verwende es am besten so:
Sub OpenWinword2()
Dim strPathWinword As String
Dim strPathDocument As String
strPathWinword = "C:\Programme\Microsoft Office\OFFICE11\winword.exe"
strPathDocument = "c:\Document.doc"
Call Shell("" & strPathWinword & " """ & strPathDocument & """", 1)
End Sub
Viele Grüße
Martin

Anzeige
AW: Ergänzung
24.03.2014 20:36:42
ing.grohn
Hallo Martin,
vielen Dank für Deine Vorschläge.
Im Moment kann ich nicht überblicken, ob das lösungsweisend ist und lasse den Beitrag noch offen.
(ich gebe zu bedenken das mit meiner Function der Start von Word als "Object" von der Function zurückgegeben wird an die Variable "Set DocNeu = Word_Aktivieren("Briefan", True)" mit der dann weitere Aktionen vorgenommen werden (suchen und ersetzten Text einfügen etc)).
Mit freundlichen Grüßen
Albrecht

AW: Ergänzung
25.03.2014 08:19:35
fcs
Hallo Albrecht,
eigentlich sollte die Wordversion keine Rolle spielen.
Allerdings muss man dann beim Speichern darauf achten, dass das Dokument im richtigen Formeat gespeichert wird. Dazu muss dann die Version von Word geprüft werden.
Kann dann etwawie folgt aussehen.
Gruß
Franz
Sub wordTest()
Dim DocNeu As Word.Document
Dim strDocName As String
Dim strPath As String
strPath = "C:\Users\Public\Test\Daten"  'ActiveSheet.Cells(1, 2)
strDocName = strPath & Application.PathSeparator & ActiveSheet.Cells(2, 2)
Set DocNeu = Word_Aktivieren("Brief", sichtbar:=True)
If Val(Left(DocNeu.Parent.version, 2)) > 11 Then
'Word 2007 und neuer
DocNeu.SaveAs2 Filename:=strDocName, _
FileFormat:=0, LockComments:=False, Password:="", _
AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=0 'Fileformat: 0 = wdWordFormat, 12 =  _
wdFormatXLMDocumet
Else
'frühere Version
DocNeu.SaveAs Filename:=strDocName 'Syntax nochmals prüfen !!1
End If
End Sub
Function Word_Aktivieren(Vorlage As String, sichtbar As Boolean) As Word.Document
Dim strTemplate As String
Dim version As Integer
Dim objWord As Object
'version = Workbooks("Kanzlei.xls").Sheets("Konstanten").Range("A54").Value
On Error Resume Next
Set objWord = GetObject("Word.Application")
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
If Not objWord Is Nothing Then
objWord.Visible = True
strTemplate = Workbooks("Kanzlei.xls").Sheets("Konstanten").Range("aLW").Value _
& Workbooks("Kanzlei.xls").Sheets("Konstanten").Range("Vorlagen").Value _
& Workbooks("Kanzlei.xls").Sheets("Konstanten").Range(Vorlage).Value
Set Word_Aktivieren = objWord.Documents.Add(Template:=strTemplate)
End If
Set objWord = Nothing
End Function

Anzeige
AW: Word-Version ?
25.03.2014 09:37:43
ing.grohn
Hallo Franz,
es ist nicht immer einfach Fragen präzise zu stellen!
Mein Problem ist weniger das Speichern des Dokuments als vielmehr der Aufruf der Wordinstanz: ich habe gelesen und geglaubt, durch anhängen der Versionsnummer (Set objWord = GetObject("Word.Application.11")) wird die "richtige" Word-Version aufgerufen. Dem scheint aber nicht so zu sein (muss wohl mal so gewesen sein!?!?)!!
Das ist ein wenig ärgerlich, weil ich viel mit Autotext arbeite und diese nicht in Word 2010 sondern in 2003 gespeichert habe.
Wie dem auch sei, wenn das nicht geht, fliegt 2010 wieder von meinem Rechner (dumm gelaufen)
Vielen Dank (die Speichergeschichte hab ich mir schon mal auf Seite gelegt)
Mit freundlichen Grüßen
Albrecht
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige