Gå til innhold

Åpne worddokument via en kommandoknapp i word


Anbefalte innlegg

Er det noen som ser hva som mangler i koden?? Skal åpne et worddokument via en kommandoknapp i et wordskjema.

 

 

Private Sub Command1_Click()

 

Dim appWord As Word.Application

Dim stDoc As Word.Document

Dim stDocName As String

 

stDocName = "C:\navn\word.doc"

 

Set appWord = New Word.Application

Set wrdDoc = appWord.Documents.Open(stDocName)

 

MsgBox wrdDoc.Path & "\" & wrdDoc.Name

 

wrdDoc.Close False

appWord.Quit

 

Set wrdDoc = Nothing

Set appWord = Nothing

 

End Sub

Endret av venche
Lenke til kommentar
Videoannonse
Annonse

Du oppretter en ny instans av Word. Den er i utgangspunktet usynlig inntil du ber om noe annet. Men istedetfor å løse det, det er sløseri å ha en Word pr dokument. Bruk Application som allerede kjører.

 

Og så har du feil deklarasjon stDoc -skal være wrdDoc.

 

Greitt også å sette en DoEvents ved operasjoner som tar litt tid.

 

Private Sub Command1_Click()

 

Dim wrdDoc As Word.Document

Dim stDocName As String

 

stDocName = "C:\navn\word.doc"

 

Set wrdDoc = Documents.Open(stDocName)

 

DoEvents

 

MsgBox wrdDoc.Path & "\" & wrdDoc.Name

 

wrdDoc.Close False

 

Set wrdDoc = Nothing

 

End Sub

 

Åpne VB editoren, finn Options, huk av "Require variable declaration". Det setter Option Explicit øverst i nye moduler. Hvilket krever at du deklarerer alt, men det er den eneste måten å få meningsfylte feilmeldinger.

 

HTH. Beste hilsen Harald

Lenke til kommentar

Tja, personlig synes jeg nå ShellExecute blir bedre å bruke i dette tilfellet, dersom du kun skal ÅPNE et dokument, og ikke også ekstraktere informasjon fra det:

 

' Plasser denne koden helt øverst i modulen, nedenfor Option Explicit.

 

' I motsetning til Shell, takler dette funksjonen også filer som ikke bare er ekseverbare.

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

 

' Konstanter som benyttes for å indikere hvordan en applikasjons vindu skal settes i oppstarten

Public Enum enSW

    SW_HIDE = 0

    SW_NORMAL = 1

    SW_MAXIMIZE = 3

    SW_MINIMIZE = 6

End Enum

 

' Kjører en filbane. Brukes som følger: ExecuteFile "C:\Test.doc"

Public Function ExecuteFile(sFile As String, Optional WindowStyle As enSW = SW_NORMAL) As Long

 

    ShellExecute 0&, vbNullString, sFile, vbNullString, "C:\", WindowStyle

 

End Function

Lenke til kommentar
Tja, personlig synes jeg nå ShellExecute blir bedre å bruke i dette tilfellet, dersom du kun skal ÅPNE et dokument, og ikke også ekstraktere informasjon fra det

Må du gi deg. ShellExecute fra Word for å åpne et Worddokument ?

(Dessuten skal det åpenbart lukkes igjen også.)

Edit smiley ;)

Endret av Harald Staff
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...