venche Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 (endret) 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 25. oktober 2006 av venche Lenke til kommentar
j000rn Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 (endret) Edit: Leste feil... Endret 25. oktober 2006 av jorn79 Lenke til kommentar
Harald Staff Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 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
aadnk Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 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
Harald Staff Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 (endret) 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 25. oktober 2006 av Harald Staff Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå