Jag kan öppna ett word dokument via VB så här: Så här: Bara att skicka mallaen du ska använda som argument till New: Sorry problems.... Hejsan, Problem. Har gjort ett exempel: Tack Andreas Hillqvist, du är en klippa.Öppna ett nytt dokument via mall.(LÖST)
<code>
Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Open App.Path & "\Report\StudOrk.doc", , True, False
</code>
Men hur gör jag för att öppna ett nytt dokument som bygger på en viss mall???Sv: Öppna ett nytt dokument via mall.
If Dir(sokvag) = "" Then
'filen som vi vill skriva till finns ej, den skapas och sparas
Set xlFil = xlApp.Workbooks.Add(template)
Call xlFil.SaveAs(sokvag)
Else
'mer kod
END if
Koden ovan kontrollerar om den önskade filen finns. Finns den ej, skapas
den utifrån en mall som finns och sparas med det önskade filnamnet.
/EmmaSv: Öppna ett nytt dokument via mall.
<code>
Set WordApp = CreateObject("Word.Application")
Set Doc = WordApp.Documents.New(App.Path & "\Report\StudOrk.doc")
</code>Sv: Öppna ett nytt dokument via mall.
Emmas kod är tydligen för Excell och det vet jag nog inte hur jag skall ändra på..
När det gäller Andreas kod, så misslyckades den, den startade upp Word, men inget dockument.
Eftersom det är en mall som jag vill öppna så borde det väll gå så här:
<code>
Set WordApp = CreateObject("Word.Application")
Set Doc = WordApp.Documents.New(App.Path & "\Report\StudOrk.dot")
</code>
Men icke...
Om jag skriver så här:
<code>
Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Open App.Path & "\Report\StudOrk.doc", , True, False
</code>
Så kan jag öppna dokumentet, men alla formateringar som är gjorda är borta.Sv: Öppna ett nytt dokument via mall.
jag har haft samma problem och har fått det att fungera tack vare all hjälp här på pellesoft.
Lite kod för MS Word:
Option Explicit
Public Function Button1_onclick() As Boolean
Dim wd As Word.Application 'deklaration av Word
Dim doc As Word.Document 'deklaration av dokument i Word
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
If wd Is Nothing Then
MsgBox ("MS Word is not installed")
End If
End If
Set doc = Documents.Add("sökvägen\dokumentmallensnamn.dot")
Dim ran As Range 'deklaration av fältet i Word där texten kommer synas
Dim book As Bookmark 'deklaration av bokmärke i Word där den specifika texten ska stå
Set book = doc.bookmarks.Item("insert")
Set ran = book.Range
wd.Text = TextField1.Value
wd.Visible = True
doc.Saved = True
End Function
Vad du bör göra i MS Word är att:
I mallen bör du lägga till bokmärke => insert\bookmark skriver in namnet ex. insert som bokmärkets namn. Namnge bokmärket insert eftersom det står insert i koden, men detta namn kan du givetvis byta ut till något som passar. Spara mallen som 'document template' (blir .dot istället för .doc).
Du bör även lägga till 'MS Office 10.0 Object Library' samt 'MS Word 10.0 Object Library' i references i VB projektet.
Lycka till!
//Sv: Öppna ett nytt dokument via mall.
Så här har jag gjort:
<code>
Dim wd As Word.Application
Dim doc As Word.Document
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
If wd Is Nothing Then
eInfo.Caption = "Word är inte instalerad"
End If
End If
Set doc = Document.Add(App.Path & "\Report\StudOrk.dot")
Dim ran As Range
Dim book As Bookmark
Set book = doc.Bookmarks.Item("Text2")
Set ran = book.Range
wd.Selection.TypeText Rst.Fields("Firma")
</code>
Words startar men inget dokument öppnas.
Jag kan inte skriva wd.text då klaga VB.
Vad menar du med 'document template' ?
Jag har ju sparat mallen som 'StudOrk.dot', skulle inte det räcka?Sv: Öppna ett nytt dokument via mall.
<code>
Option Explicit
Private Rst As ADODB.Recordset
Function GetWord() As Word.Application
On Error Resume Next
Set GetWord = GetObject(, "Word.Application")
If GetWord Is Nothing Then
Set GetWord = CreateObject("Word.Application")
End If
End Function
Private Sub Command1_Click()
Dim wd As Word.Application
Dim doc As Word.Document
Dim book As Bookmark
Set wd = GetWord()
If wd Is Nothing Then
MsgBox "Word är inte instalerad"
Else
Set doc = wd.Documents.Add(App.Path & "\Report\StudOrk.dot")
Set book = doc.Bookmarks.Item("Text2")
book.Range.Text = "" & Rst("Firma")
wd.Visible = True
End If
End Sub
Private Sub Form_Load()
Set Rst = New ADODB.Recordset
Rst.Fields.Append "Firma", adVarChar, 20
Rst.Open
Rst.AddNew "Firma", "Pellesoft"
Rst.MoveFirst
End Sub
</code>Sv: Öppna ett nytt dokument via mall.
Nu fungerar den här typen av rapport, så jag får börja på nästa.