Zum Inhalt springen

Word Dokument öffnen mit VB


CK82

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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