Тема: Экспорт в Word
Подскажите пожалуйста.
Как координаты точек автокада забросить в Word. Что-то все ссылки на примере которых я пытался это сделать, несрабатывали. Word открывается, а координаты не записываются.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Экспорт в Word
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите пожалуйста.
Как координаты точек автокада забросить в Word. Что-то все ссылки на примере которых я пытался это сделать, несрабатывали. 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'~
Вот так можно в текстовый файл. Модифицируй и вперед.
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
Спасибо кто откликнулся. Если в упрощенном виде то будет примерно так.
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
> Maxim
А как теперь закрыть ворд и сохранить в нужной папке документ????
> Дарья
Открой документ 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'~
> fixo
Спасибо. Работает.
Последний вопросик. Как адрес папки прописать??
Сейчас он сохраняет в Мои Документы.
У меня времени в обрез. Обязательно почитаю :)
> 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
А как прописать папку, в которую нужно сохранить документ не написанно
> fixo
Прописала так:
Word_book.SaveAs ThisDrawing.Path & "E\\" & "\Daria.doc"
Не работает.
> fixo
Прошу прощения. Все хОКкей. Докумет сохраняется в папку с чертежом.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Экспорт в Word
Форум работает на PunBB, при поддержке Informer Technologies, Inc