Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...