ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

 

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Åpne dokumenter fra VBA

Dersom den filtypen du vil åpne støttes av din web-browser kan du åpne filen på denne måten:

Sub BrowsePDFDocument() ' åpner et PDF dokument
Dim strDocument As String
    strDocument = Application.GetOpenFilename("PDF Files,*.pdf,All Files,*.*", 1, "Åpne PDF dokument", , False) ' returnerer pdf dokumentnavnet
    If Len(strDocument) < 6 Then Exit Sub
    ActiveWorkbook.FollowHyperlink strDocument ' åpner filen i web-browseren
End Sub

Dokumenter kan også åpnes ved hjelp av Shell-kommandoen:

Shell "notepad.exe c:\foldername\filename.txt", vbMaximizedFocus ' åpner et tekstdokument
Man må kjenne til hvilket program som kan håndtere dokumentet man vil åpne.
Dersom filnavnet ikke er inkludert i din PCs "command path" må du angi fullt filnavn til programmet på denne måten:
Shell "c:\foldername\notepad.exe c:\foldername\filename.txt", vbMaximizedFocus ' åpner et tekstdokument

Ofte kan filnavnet til et program variere med hvilken versjon av programmet som er installert.
Prosedyrene nedenfor kan hjelpe til med å finne det riktige programmet som kan åpne et dokument:

Declare Function GetTempFileName Lib "kernel32" _
    Alias "GetTempFileNameA" (ByVal lpszPath As String, _
    ByVal lpPrefixString As String, ByVal wUnique As Long, _
    ByVal lpTempFileName As String) As Long

Declare Function FindExecutable Lib "shell32.dll" _
    Alias "FindExecutableA" (ByVal lpFile As String, _
    ByVal lpDirectory As String, ByVal lpResult As String) As Long

Function GetExecutablePath(strFileType As String) As String
' returnerer fullt filnavn til det programmet som er tilknyttet den angitte filtypen
Dim strFileName As String, f As Integer, strExecutable As String, r As Long
    If Len(strFileType) = 0 Then Exit Function
    strFileName = String$(255, " ")
    strExecutable = String$(255, " ")
    GetTempFileName CurDir, "", 0&, strFileName ' hent et midlertidig filnavn
    strFileName = Application.Trim(strFileName)
    strFileName = Left$(strFileName, Len(strFileName) - 3) & strFileType ' legg til angitt filtype
    f = FreeFile
    Open strFileName For Output As #f ' opprett en midlertidig fil
    Close #f
    r = FindExecutable(strFileName, vbNullString, strExecutable) ' let etter et tilknyttet program
    Kill strFileName ' slett den midlertidige filen
    If r > 32 Then ' tilknyttet program er funnet
        strExecutable = Left$(strExecutable, InStr(strExecutable, Chr(0)) - 1)
    Else
        strExecutable = vbNullString
    End If
    GetExecutablePath = strExecutable
End Function

Sub OpenPDFDocument()
Dim strDocument As String, strExecutable As String
    strDocument = Application.GetOpenFilename("PDF Files,*.pdf,All Files,*.*", 1, "Åpne PDF dokument", , False) ' velg et dokumentnavn
    If Len(strDocument) < 6 Then Exit Sub
    strExecutable = GetExecutablePath("pdf") ' finn filnavnet til Acrobat Reader
    If Len(strExecutable) > 0 Then
        Shell strExecutable & " " & strDocument, vbMaximizedFocus ' åpne pdf dokumentet
    End If
End Sub

 

Dokumentet er sist oppdatert 2004-05-13 20:19:25

 

 
Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2024    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse