- Option Explicit 
- Private Type ScaleFactor 
-     X As Double 'Объявляем переменные 
-     Y As Double 
-     Z As Double 
- End Type 
- Private Function MakeTableStyleForSpec() As String 
-     Dim acadDoc As Object 
-     Dim AcadTableStyle As Object 
-     Dim AcadTextStyle As Object 
-     Dim AcadDictionary As Object 
-     Dim strTableStyleName As String 
-     Dim strTextStyleName As String 
- Set AcadDictionary = acadDoc.Dictionaries.Item("ACAD_TABLESTYLE") 
- strTableStyleName = "Оформление" 
- On Error Resume Next 
- Set AcadTableStyle = acadDoc.AcadDictionary.AddObject(strTableStyleName, "AcDbTableStyle") 
- strTextStyleName = "Оформление_текст" 
- Set AcadTextStyle = acadDoc.TextStyles.Add(strTextStyleName) 
- On Error GoTo 0 
- AcadTextStyle.SetFont "Arial", False, False, 0, 34 'значения получил по GetFont для нужного стиля 
- AcadTableStyle.SetTextStyle AcRowType.acDataRow + AcRowType.acHeaderRow + AcRowType.acTitleRow + AcRowType.acUnknownRow, strTextStyleName 
- AcadTableStyle.SetTextHeight AcRowType.acDataRow + AcRowType.acUnknownRow, 2.5 
- AcadTableStyle.SetTextHeight AcRowType.acHeaderRow + AcRowType.acTitleRow, 3 
- AcadTableStyle.SetAlignment AcRowType.acHeaderRow + AcRowType.acTitleRow, acMiddleCenter 
- AcadTableStyle.SetAlignment AcRowType.acDataRow + AcRowType.acUnknownRow, acMiddleLeft 
- AcadTableStyle.HorzCellMargin = 1.5 
- AcadTableStyle.VertCellMargin = 1 
- AcadTableStyle.SetGridLineWeight AcGridLineType.acHorzBottom + AcGridLineType.acHorzInside + AcGridLineType.acHorzTop _ 
-                 + AcGridLineType.acVertInside + AcGridLineType.acVertLeft + AcGridLineType.acVertRight, _ 
-                 AcRowType.acTitleRow + AcRowType.acHeaderRow, AcLineWeight.acLnWt050 
- AcadTableStyle.SetGridLineWeight AcGridLineType.acHorzBottom + AcGridLineType.acHorzTop + _ 
-                AcGridLineType.acVertInside + AcGridLineType.acVertLeft + AcGridLineType.acVertRight, _ 
-                AcRowType.acDataRow + AcRowType.acUnknownRow, AcLineWeight.acLnWt050 
- AcadTableStyle.SetGridLineWeight AcGridLineType.acHorzInside, _ 
-                AcRowType.acDataRow + AcRowType.acUnknownRow, AcLineWeight.acLnWt025 
- Dim color As New AcadAcCmColor 
- color.SetRGB 255, 0, 0 
- AcadTableStyle.SetColor AcRowType.acDataRow + AcRowType.acHeaderRow _ 
-                         + AcRowType.acTitleRow + AcRowType.acUnknownRow, color 
- MakeTableStyleForSpec = strTableStyleName 
- End Function 
- Sub Tabl() 
-     Dim acadApp As Object 'Объявляем переменные 
-     Dim acadDoc As Object 
-     Dim acadTable As Object 
-     Dim LastRow As Long 
-     Dim i As Long 
-     Dim InsertionPoint(0 To 2) As Double 
-     Dim value As String 
-         Dim AcadTableStyle As Object 
-         Dim AcadTextStyle As Object 
-         Dim AcadDictionary As Object 
-         Dim strTableStyleName As String 
-         Dim strTextStyleName As String 
-     With Sheets("Coordinates") 'Делаем активным лист координаты 
-         .Activate 
-         LastRow = .Cells(.Rows.Count, "AS").End(xlUp).Row 'Ищем последнюю заполненную строку столбца AS 
-     End With 
-     If LastRow < 4 Then 'Если номер последней строки меньше чем 4 
-         MsgBox "Нет значений для вставки", vbCritical, "Ошибка отсутствие значений" 
-         Exit Sub 
-     End If 
-     On Error Resume Next 
-     Set acadApp = GetObject(, "AutoCAD.Application") 'Проверяем открыт ли автокад 
-     If acadApp Is Nothing Then 'Если автокад не открыт 
-         Set acadApp = CreateObject("AutoCAD.Application") 'Создаем новую сессию автокад 
-         acadApp.Visible = True 'Делаем автокад видимым 
-     End If 
-     If acadApp Is Nothing Then 'Если опять автокад не открыт 
-         MsgBox "Извините, но мы не можем запустить автокад", vbCritical, "Ошибка запуска автокад" 
-         Exit Sub 
-     End If 
-     On Error GoTo 0 'Если ошибка то идем хз куда 
-     On Error Resume Next 'Если ошибка то идем дальше 
-     Set acadDoc = acadApp.ActiveDocument 'Присваиваем переменную активному чертежу автокада 
-     If acadDoc Is Nothing Then 'Если ни один чертеж автокада не активен 
-         Set acadDoc = acadApp.Documents.Add 'Создаем новый чертеж 
-     End If 
-     On Error GoTo 0 'Если ошибка то идем хз куда 
-     If acadDoc.ActiveSpace = 0 Then '0 = acPaperSpace in early binding. Если чертеж открыт не в модели, а в листах 
-         acadDoc.ActiveSpace = 1     '1 = acModelSpace in early binding. Делаем активной модель 
-     End If 
-     With Sheets("Coordinates")  'С листом Coordinates Excel 
-                 InsertionPoint(0) = .Range("AS" & 1).value 'Задаем координату X вставки блока 
-                 InsertionPoint(1) = .Range("AT" & 1).value 'Задаем координату Y вставки блока 
-                 InsertionPoint(2) = .Range("AU" & 1).value 'Задаем координату Z вставки блока 
-                 Set acadTable = acadDoc.ModelSpace.AddTable(InsertionPoint, 2, 5, 10, 20) 'Вставляем таблицу в чертеж 
-                 acadTable.RegenerateTableSuppressed = True 
-                 acadTable.DeleteRows 0, 1 'удаляем 1 строчку заголовка таблицы 
-                 acadTable.SetTextHeight 3, 3 
-                 acadTable.SetTextHeight 4, 3 
-                 acadTable.SetText 0, 0, .Range("AS" & 2).value 
-                 acadTable.SetColumnWidth 0, 15 
-                 acadTable.SetText 0, 1, .Range("AT" & 2).value 
-                 acadTable.SetColumnWidth 1, 70 
-                 acadTable.SetText 0, 2, .Range("AU" & 2).value 
-                 acadTable.SetColumnWidth 2, 50 
-                 acadTable.SetText 0, 3, .Range("AV" & 2).value 
-                 acadTable.SetColumnWidth 3, 40 
-                 acadTable.SetText 0, 4, .Range("AW" & 2).value 
-                 acadTable.SetColumnWidth 4, 30 
-                 'acadTable.RegenerateTableSuppressed = True 
-                     For i = 1 To LastRow - 3 
-                         acadTable.InsertRows i, 10, 1 
-                         acadTable.SetTextHeight 3, 3 
-                         acadTable.SetTextHeight 4, 3 
-                         'acadTable.RegenerateTableSuppressed = True 
-                         acadTable.SetText i, 0, .Range("AS" & i + 3).value 
-                         acadTable.SetText i, 1, .Range("AT" & i + 3).value 
-                         acadTable.SetText i, 2, .Range("AU" & i + 3).value 
-                         acadTable.SetText i, 3, .Range("AV" & i + 3).value 
-                         acadTable.SetText i, 4, .Range("AW" & i + 3).value 
-                     Next 
-                 acadTable.RegenerateTableSuppressed = False 
-                 acadTable.StyleName = MakeTableStyleForSpec 
-                 'acadTable.RegenerateTableSuppressed = True 
-     End With ' Завершение взятия данных с листа эксель 
-     acadApp.ZoomExtents ' Двойное нажатие на колесико мыши 
-     Set acadDoc = Nothing ' ХЗ зачем обнуляем наверное перменные 
-     Set acadApp = Nothing ' ХЗ зачем обнуляем наверное перменные 
- End Sub