vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 05.01.10 22:46

Hallo Bingopark,

danke für deine Antwort! Kannst du mir ein Beispiel machen? Die Automation meint doch soetwas:

            Dim oWord As Object
            Dim oDoc As Word.Document
 
            oWord = CreateObject("Word.Application")
 
            oWord.Visible = False
Ist das richtig so? D.h. dann, wenn ich obigen Code verwende, keinen Verweis mehr festlegen muss?

Wie soll ich nachfolgenden Code dann transformieren:

' Word-Objekt deklarieren
                Dim oWord As Word.Application
                Dim oDoc As Word.Document
 
                oWord = New Word.Application
                oWord.Visible = False
 
                oDoc = oAppWord.Documents.Open("Datei-Pfad")
Ich habe ja ein Word.Application-Objekt, welches das allgemeine Word-Programm bezeichnet und ein oDoc-Objekt, welches das spezifische Word-Dokument bezeichnet.

Freue mich auf eure Hilfe.

Viele Gr??e
ANS

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 05.01.10 11:33

Hallo,

ich habe folgendes Problem: Ich steuere Word von Microsoft in meiner VB.NET-Anwendung an. Ich selbst verwende Office 2007 und habe deshalb auch einen Verweis auf "Microsoft.Office.Interop.Word" gesetzt. Auf einem PC mit Office 2003 funktioniert der Verweis dann nicht. Es kommt bei der Laufzeit zu einem Fehler [...] "culture=12". Das heißt, es kann kein Verweis bzw. keine COM mit der Versionsnummer 12 für Office 2007 gefunden werden. Wie kann ich die Verweise einbinden, dass keine Fehlermeldung erscheint (zur Laufzeit) und dass dieser Verweis dann für Office 2003, 2002, etc. funktioniert?

Danke für eure Hilfe

ANS
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: VB.NET2005
Datum: 05.01.10 11:36

Also ich setze in den Eigenschaften des Projekts unter Verweise Lokale Kopie des Verweises den ich brauche auf True, dann wird er mit kopiert und müsste eigentlich immer verwendbar sein.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 05.01.10 11:48

Hallo, darf ich denn diesen Verweis bzw. diese DLL immer mit ausliefern? (Lizenzrestriktionen ausgeschlossen???)

Außerdem: Wenn der Kunde Office 2003 installiert hat und ich liefere den Office 2007-Verweis mit? Geht das gut? Funktioniert der Verweis dann auch? Ist der dann abwärtskompatibel?

Gruß
ANS
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: VB.NET2005
Datum: 05.01.10 11:54

Den Verweis wirst du wohl nicht so einfach weggeben dürfen.
Aber kannst du mit deinem Programm nicht prüfen, oder den Benutzer eingeben lassen, welche Version er hat, und zwei Programme liefern, eins für 2003 und eins für 2007?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 05.01.10 11:56

Nein, ich wollte etwas universelles liefern. Ich könnte zwar überprüfen, welche Version vorliegt, aber: Ich verfüge nicht über alle DLLs (Verweise) aller Office-Word-Reihen. Darf ich diese Verweis-DLL nicht einfach weitergeben? Warum nicht?

Viele Gr??e
ANS

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: VB.NET2005
Datum: 05.01.10 12:14

Also ich würde die Verweise nicht weitergeben, verkaufen erst recht nicht. Sie sind doch Teil von Office und unterliegen so doch wahrscheinlich dem Copyright von Microsoft.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 05.01.10 12:22

Genau. Deswegen gebe ich diese Verweise auch nicht weiter. Office muss halt installiert sein. Aber wie bekomme ich dass den nun hin, dass es funktioniert, mit allen Office-Versionen?

Viele Gr??e
ANS

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 05.01.10 20:48

Wie sollte ich denn nun vorgehen? Weiss denn niemand etwas dazu?

Viele Gr??e
ANS

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: Bingopark
Datum: 05.01.10 22:18

Hallo ANS,

mache Dich mal per Suchmaschine zum Thema Office-Automation und Late-Binding schlau. Das könnte eine Möglichkeit für Dich sein. Bei Late-Binding wird der Verweis auf die Office-Komponente erst zur Laufzeit erstellt. So musst Du keine Interops oder dergleichen verteilen.

Einführungsbesipiele:
http://support.microsoft.com/kb/245115
http://www.vbarchiv.net/forum/read.php?id=22&t=31773&i=31773&v=f
aus VB:
http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0413.shtml

Bingopark

----
Meine Komponenten sind:
Visual Studio 2008 (Standard) SP 1
Windows 7 SP 1

Beitrag wurde zuletzt am 05.01.10 um 22:22:43 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: Bingopark
Datum: 05.01.10 23:53

Fast direkt aus dem einen Link heraus kopiert...

Dim objWDApp As Object
        Dim objWDDoc As Object
 
        objWDApp = CreateObject("Word.Application")
        With objWDApp
            .Visible = True
            .Activate()
            .WindowState = 0
        End With
 
        objWDDoc = objWDApp.Documents.Add
        MsgBox("Dokument erstellt! Und das Ganze mit Latebinding..." & vbCrLf & _
          "Soll heißen: Es müssen keine Office-Dateien weitergegeben" & _
          "werden...", vbMsgBoxSetForeground)
 
        With objWDDoc
            .Saved = True
        End With
        objWDDoc = Nothing
        objWDApp = Nothing
Pack das mal zum Testen in ein Formload-Event oder beispielweise ein Button-Click-Event...

Und was passiert da bei Dir? Klappts? Ohne eine Interop weiterzugeben?
Bei mir gehts

Bingopark

----
Meine Komponenten sind:
Visual Studio 2008 (Standard) SP 1
Windows 7 SP 1

Beitrag wurde zuletzt am 06.01.10 um 00:05:40 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: ANS
Datum: 06.01.10 10:07

Hallo Bingopark,

vielen Dank für deinen Tipp bzw. die Lösung, hat super funktioniert!

Viele Gr??e
ANS

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: johnnie
Datum: 17.01.10 13:34

Der Widerspruch ergibt sich daraus, dass es tatächlich mit Verweis auf die 12.0 er nicht gegangen ist, doch dann habe ich nur hypothetisch angenommen, es würde gehen, um den Unterschied klarzumachen, dass ich ich mit Verweis auf die 10.0 besser fahren würde, da dieser auch unter Office 2007 gilt.

Deine Lösung mit dem latebinding hätte ich schon vor zwei Jahren gebraucht, da hätte ich mir viele Stunden Herumknobelei gespart.

Du bist echt klasse und hilfst mir aus einer sehr großen Not. Ich habe wirklich etwas sehr Wichtiges gelernt, vielen Dank auch noch, toll, dass es so kompetente Leute gibt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: Bingopark
Datum: 17.01.10 13:41

Du bist hier beim falschen Beitrag...
Ich glaube, Du meintest den hier: http://www.vbarchiv.net/forum/id22_i66096t66056_verweis-funktioniert-nur-auf-alte-excel-library.html

Dennoch freut es mich natürlich, Dir geholfen zu haben...
Viel Erfolg weiterhin!

----
Meine Komponenten sind:
Visual Studio 2008 (Standard) SP 1
Windows 7 SP 1

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: johnnie
Datum: 18.01.10 16:32

Jetzt habe ich doch doch ein Problem:die Funktion
 Excel.XlDirection.xlDown
geht nicht damit,(Meldung Der offentliche Member XlDirection für den Typ ApplicationClass wurde nicht gefunden), bzw. ich weiss nicht, wie ich es anders schreiben soll

Hast Du da eine Idee?


 
Public objXls1 As Object
 
Public NandexDatenBank As Object
 
Dim Anzahl,wsnr,Feld,feldnr as integer
Dim path as string
 
 
 
objXls1 = CreateObject("Excel.Application")
 
NandexDatenBank = objXls1.Workbooks.Open(pathWS)
 
 
'Bestimmen der Anzahl der besetzten Spalten
 Anzahl = xldown(wsnr, Feld, feldnr)
 
 
    Function xldown(ByVal wsnr, ByVal feld, ByVal feldnr) As Integer
        objXls1 = CreateObject("Excel.Application")
        Return NandexDatenBank.Worksheets(wsnr).Range(feld(feldnr)).End( _
          objXls1.XlDirection.xlDown).Row
    End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: Bingopark
Datum: 19.01.10 13:57

Hallo Johnnie,

ehrlich gesagt, werde ich aus der Funktion (Sinn und Zweck, Herkunft, Sytntax etc.) nicht schlau...

Was mir auffällt, ist, dass Du in Deinem Code zweimal
objXls1 = CreateObject("Excel.Application")
drinstehen hast.

Das hat vermutlich nichts mit der Lösung Deines Problems zu tun. Aber warum machst Du das? Ist das wirklich notwendig?

Bingopark

----
Meine Komponenten sind:
Visual Studio 2008 (Standard) SP 1
Windows 7 SP 1

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Microsoft.Office.Word.DLLs 
Autor: johnnie
Datum: 19.01.10 17:37

Brauch Excel.xldirection.xldown
 If xldown(wsnr, Feld, feldnr) = 65536 Then usw.
, um meine Tabelle auszulesen. Funktioniert ja auch mit Verweis, aber ich weiss nicht wie ich das mit endbinding machen soll....

Function xldown(ByVal wsnr, ByVal feld, ByVal feldnr) As Integer
 
        Return NandexDatenBank.Worksheets(wsnr).Range(feld(feldnr)).End( _
          Excel.XlDirection.xlDown).Row
 
    End Function
Ich hab´s nur doppelt(objXls1 = CreateObject("Excel.Application")), weil ich dachte, dass es bei jedem Funtkionsaufruf angebracht ist, aber vermutlich ist es wirklich überflüssig.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel