Тема: Экспорт в Word

Подскажите пожалуйста.
Как координаты точек автокада забросить в Word. Что-то все ссылки на примере которых я пытался это сделать, несрабатывали. Word открывается, а координаты не записываются.

Re: Экспорт в Word

> Maxim
У меня есть старая примочка, указываешь
точки на экране и записываешь их в таблицу
Word
Файл Word (Poits.doc) ддолжен быть создан
ранее в этой же папке
Работает медленно

Option Explicit
Public Sub PointsToTable(ByVal cPoints As Variant)
' by fixo () 2007 * all rights removed
' make sure you set reference to Microsoft Word Object Library and also
' set options in Tools->Options->General tab->Break on Unhandled Errors
Dim wrd As Object
Dim wdoc As Object
Dim wtbl As Object
Dim rng As Object
Dim i As Integer
Dim j As Integer
Dim ed As Integer
Dim fname As String
Dim pts As Long
Dim its As Long
pts = UBound(cPoints, 1)
its = UBound(cPoints, 2)
fname = ThisDrawing.Path & "\" & "Points.doc" '<--change the full path here
Set wrd = CreateObject("Word.Application")
wrd.Visible = True
wrd.Activate
Set wdoc = wrd.Documents.Open(fname)
wdoc.Activate
Set wdoc = wrd.ActiveDocument
wrd.ScreenUpdating = False
    With wdoc
        .Activate
        .ActiveWindow.Visible = True
        .Select
        With .PageSetup
        .Orientation = wdOrientPortrait
        .TopMargin = InchesToPoints(0.748)
        .BottomMargin = InchesToPoints(1.2)
        .RightMargin = InchesToPoints(0.54)
        End With
    End With
Set rng = wdoc.Range(Start:=0, End:=0)
        With rng.Paragraphs(1).Range
        .Font.Size = 9
        .Font.Bold = True
        .Font.Name = "Tahoma"
        .Font.color = wdColorBlue
        End With
rng.InsertBefore Text:="Point Coordinates:" & vbCr & vbCr
Set rng = wdoc.Range
ed = rng.End - 1
Set wtbl = wdoc.Tables.Add(Range:=wdoc.Range(Start:=ed, End:=ed), NumRows:=pts + 1, NumColumns:=its + 1)
For i = 1 To wtbl.Rows.Count
For j = 1 To wtbl.Columns.Count
wtbl.Cell(i, j).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft
wtbl.Columns(j).Cells(i).Range.Text = CStr(cPoints(i - 1, j - 1))
Next
Next
Set rng = Nothing
wrd.ScreenUpdating = True
wrd.Selection.Collapse
wdoc.Save
wdoc.Close
wrd.Quit
Set wdoc = Nothing
Set wrd = Nothing
End Sub
Sub sGetPoint()
 ' written by mig8 (Greg)
MsgBox "Wait, please..."
Dim pts(0 To 1000, 0 To 2) As Double
Dim vPoint As Variant
Dim i As Integer
Dim k As Integer
vPoint = ThisDrawing.Utility.GetPoint(, vbCr & "Pick a first point: ")
For i = 0 To UBound(vPoint)
pts(k, i) = CDbl(vPoint(i))
Next
k = k + 1
On Error Resume Next
Do
vPoint = ThisDrawing.Utility.GetPoint(vPoint, vbCr & "Pick a next point (or press Enter to Exit)")
For i = 0 To UBound(vPoint)
pts(k, i) = CDbl(vPoint(i))
Next
k = k + 1
Loop While Err = 0
Dim npts() As Double
ReDim npts(k - 1, 2) As Double
For i = 0 To UBound(npts, 1)
For k = 0 To 2
npts(i, k) = pts(i, k)
Next
Next
Call PointsToTable(npts)
MsgBox "Done"
End Sub

~'J'~

Re: Экспорт в Word

Вот так можно в текстовый файл. Модифицируй и вперед.

Public Sub ExportPoint()
Dim PoI As AcadPoint
Dim Sel As AcadSelectionSet
Dim Poin(2) As Double
Dim n, m As Integer
Dim PathFile As String
Dim CommDial As MSComDlg.CommonDialog
Dim FilterType(0) As Integer
Dim FilterData(0)  As Variant
FilterType(0) = 0
FilterData(0) = "POINT"
On Error GoTo 100
If ThisDrawing.SelectionSets.Count <> 0 Then ThisDrawing.SelectionSets(ThisDrawing.SelectionSets.Count - 1).Delete
Set CommDial = New CommonDialog
CommDial.DialogTitle = "Сохранение файла координат выбранных точек"
CommDial.Filter = "текстовые файлы|*.txt"
CommDial.Orientation = cdlPortrait
CommDial.ShowSave
PathFile = CommDial.FileName
Set Sel = ThisDrawing.SelectionSets.Add("select")
Sel.SelectOnScreen FilterType, FilterData
m = 1
If PathFile = "" Then Exit Sub
Open PathFile For Output As #1
For Each PoI In Sel
For n = 0 To UBound(PoI.Coordinates) - 1 Step 2
Poin(0) = Format(PoI.Coordinates(n), "fixed")
Poin(1) = Format(PoI.Coordinates(n + 1), "fixed")
Poin(2) = Format(PoI.Coordinates(n + 2), "fixed")
Print #1, Replace(Poin(2), ",", ".") & "," & Replace(Poin(1), ",", ".") & "," & _
Replace(Poin(0), ",", ".") & "," & m
m = m + 1
Next
Next
Sel.Delete
Close #1
100:
Exit Sub
End Sub

Re: Экспорт в Word

Спасибо кто откликнулся. Если в упрощенном виде то будет примерно так.
Sub Word_dok()
Dim Word_app As Object
Set Word_app = CreateObject("Word.Application")
Word_app.Visible = True
Word_app.Activate
With Word_app
.Documents.Add
With Word_app
.Selection.TypeText Text:="Каталог"
'и т.п.
End With
End With
Set Word_app = Nothing
End Sub

Re: Экспорт в Word

> Maxim
А как теперь закрыть ворд и сохранить в нужной папке документ????

Re: Экспорт в Word

> Дарья
Открой документ Word, см. Help
а также ты можешь использовать запись
макросов через макрорекордер

Option Explicit
Sub Word_dok()
Dim Word_app As Object
Dim Word_book As Object
Set Word_app = CreateObject("Word.Application")
Word_app.Visible = True
Word_app.Activate
With Word_app
.Documents.Add
With Word_app
.Selection.TypeText Text:="Учи матчасть"
End With
End With
Set Word_book = Word_app.ActiveDocument
Word_book.SaveAs ThisDrawing.Path & "\Daria.doc"
Word_book.Close
Word_app.Quit
Set Word_book = Nothing
Set Word_app = Nothing
End Sub

~'J'~

Re: Экспорт в Word

> fixo
Спасибо. Работает.
Последний вопросик. Как адрес папки прописать??
Сейчас он сохраняет в Мои Документы.
У меня времени в обрез. Обязательно почитаю :)

Re: Экспорт в Word

> fixo
В справке не нашла. Нашла только вот этот пример:
    Dim swsTask As Office.SharedWorkspaceTask
    Const dtmNewDueDate As Date = #12/31/2005#
    For Each swsTask In ActiveWorkbook.SharedWorkspace.Tasks
        swsTask.DueDate = dtmNewDueDate
        swsTask.Save
    Next
    Set swsTask = Nothing
А как прописать папку, в которую нужно сохранить документ не написанно

Re: Экспорт в Word

> fixo
Прописала так:
Word_book.SaveAs ThisDrawing.Path & "E\\" & "\Daria.doc"
Не работает.

Re: Экспорт в Word

> fixo
Прошу прощения. Все хОКкей. Докумет сохраняется в папку с чертежом.