Veröffentlicht 23. November 200123 j Hi leute, Kann mir jemand sagen wie ich in VB oder VBA ein Word Dokument öffne. Ich weiß leider nur wie man Word öffnet. Danke für di Hilfe CK82
23. November 200123 j Hi! Mach einfach ein OLE. Da kannst du einstellen, wie das Worddokument geöffnet werden soll (nämlich mit Word und nicht direkt in deinem Programm). Das OLE kannst du unsichtbar machen. Aufrufen kannst du es dann in einer ganz normalen Prozedur. Du kannst auch den Dokumentlink des OLEs während der Laufzeit ändern, z.B. den Pfad in ein Textfeld eintippen, das Dokument aus einer Dateiliste (Explorer-like) auswählen etc. OLE funktioniert nicht mit allen Dateiarten. Wenn du ein "jede Datei mit zugehörigem Programm öffnen" realisieren möchtest, dann kannst du das ganz einfach mit folgendem Code (VB 6) bewerkstelligen: Private Declare Function ShellExecute Lib "shell32.dll" _ Alias "ShellExecuteA" (ByVal hWnd As Long, _ ByVal lOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" _ Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () _ As Long Private Const SE_ERR_NOASSOC = 31 Private Const SE_ERR_NOTFOUND = 2 'Dokument öffnen und ggf. autom. den '"Öffnen mit..." - Dialog anzeigen Private Sub DocumentOpen(sFilename As String) Dim sDirectory As String Dim lRet As Long Dim DeskWin As Long DeskWin = GetDesktopWindow() lRet = ShellExecute(DeskWin, "open", sFilename, _ vbNullString, vbNullString, vbNormalFocus) If lRet = SE_ERR_NOTFOUND Then 'Datei nicht gefunden ElseIf lRet = SE_ERR_NOASSOC Then 'Wenn die Dateierweiterung noch nicht bekannt ist... 'wird der "Öffnen mit..."-Dialog angezeigt. sDirectory = Space(260) lRet = GetSystemDirectory(sDirectory, Len(sDirectory)) sDirectory = Left(sDirectory, lRet) Call ShellExecute(DeskWin, vbNullString, _ "RUNDLL32.EXE", "shell32.dll,OpenAs_RunDLL " & _ sFilename, sDirectory, vbNormalFocus) End If End Sub Private Sub Form_Load() DocumentOpen App.Path & "test.pdf" End Sub Gruß und viel Spaß beim Coden Technician
23. November 200123 j Du? Kannst du mir auch einfach den Code geben um eine bestimmtes Festes Word Dokument zu öffnen? Und dann sollte es auch noch in VBA tun. Sorry das ich mich so blöde anstelle
23. November 200123 j Sorry - ich hab den Code gerade nicht hier. Du stellst dich gar nicht "blöd" an; ich vermute sehr stark, du bist noch Anfänger auf dem Gebiet VB und jeder hat einmal "klein" angefangen (ich natürlich auch!). in VBA wüsste ich's auf Anhieb gar nicht -> seit ich VB programmiere, kein VBA mehr gemacht... Wenn du es in VB programmieren willst, dann könntest du das mit dem OLE evl. mit Hilfe der Doku selber hinbekommen – ansonsten kann dir bestimmt noch jemand weiterhelfen! Gruß, Technician
23. November 200123 j Alos unter VBA habe ich die Problematik so gelöst. Ist allerdings aus einem Word Makro Documents.Open ("Hier Verzeichnis eingeben mit kompletten DAteinamen + Endung eingeben.")
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.