This code will draw a rectangle with holes in an array. It will then save the file as a cnc file with a job number, description, and time stamp. All of the parameter can be customized with excel inputs.

First, paste the following code into an excel module. In this case I put in Module1 of as shown by red arrow below. pushing alt + f11 will bring up the visual basic editor. To switch back to excel push alt + f11 again.

Option Explicit
Dim acadApp As Object
Dim acadDoc As Object
Sub getAutoCADreferenceLib()
On Error Resume Next
If Len(ThisWorkbook.VBProject.Name) Then
End If
If Err.Number Then
MsgBox "To grab the corrcect AutoCAD ref Lib, This app needs access to VBA Project, please tick -" & vbCr & _
"Options, Trust Center, Trust Center Settings, Macro settings, Trust Access to VBA Project" & vbCr & vbCr & _
"Then close workbook and try again"
End
End If
Dim FilePath1 As String
Dim FilePath2 As String
Dim FilePath3 As String
Dim ref As Variant
For Each ref In ThisWorkbook.VBProject.References
If ref.Name = "AutoCAD" Then
ThisWorkbook.VBProject.References.Remove ref
End If
Next ref
On Error Resume Next
FilePath1 = Dir("C:\Program Files\Autodesk\AutoCAD 2017\")
FilePath2 = Dir("C:\Program Files\Autodesk\AutoCAD 2018\")
FilePath3 = Dir("C:\Program Files\Autodesk\AutoCAD 2019\")
On Error GoTo 0
If FilePath1 <> "" Then
ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\Autodesk Shared\acax21enu.tlb")
ElseIf FilePath2 <> "" Then
ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\Autodesk Shared\acax22enu.tlb")
ElseIf FilePath3 <> "" Then
ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\Autodesk Shared\acax23enu.tlb")
Else
MsgBox "Error loading AutoCAD refrence library"
End If
End Sub
Sub openautocad()
'Check if AutoCAD application is open. If it is not opened create a new instance and make it visible.
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application")
acadApp.Visible = True
If acadApp Is Nothing Then
Set acadApp = CreateObject("AutoCAD.Application")
acadApp.Visible = True
End If
'Check (again) if there is an AutoCAD object.
If acadApp Is Nothing Then
MsgBox "Sorry, it was impossible to start AutoCAD!", vbCritical, "AutoCAD Error"
Exit Sub
End If
On Error GoTo 0
acadApp.WindowState = acMax
'If there is no active drawing create a new one.
On Error Resume Next
Set acadDoc = acadApp.Documents.Add
If Err.Number <> 0 Then
MsgBox "Could not get the AutoCAD application. Restart Autocad and try again"
End
End If
On Error GoTo 0
acadDoc.ActiveSpace = acModelSpace
End Sub
Sub drawPrimary()
Dim intSnapSetting As Integer
Dim DT As String
Dim filepath As String
Dim strAppCap As String
Call openautocad
intSnapSetting = acadDoc.GetVariable("OSMODE")
acadDoc.SetVariable "OSMODE", 0 'Sets the Object Snap mode to none
'draw lines
Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = 0: startPoint(1) = 0
endPoint(0) = Range("PrimaryWidth"): endPoint(1) = 0
Set lineObj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
startPoint(0) = Range("PrimaryWidth"): startPoint(1) = 0
endPoint(0) = Range("PrimaryWidth"): endPoint(1) = Range("PrimaryLength")
Set lineObj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
startPoint(0) = Range("PrimaryWidth"): startPoint(1) = Range("PrimaryLength")
endPoint(0) = 0: endPoint(1) = Range("PrimaryLength")
Set lineObj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
startPoint(0) = 0: startPoint(1) = Range("PrimaryLength")
endPoint(0) = 0: endPoint(1) = 0
Set lineObj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
Dim circleObj As AcadCircle
Dim centerPoint(0 To 2) As Double
Dim radius As Double
centerPoint(0) = Range("PrimaryWidth") - 13
centerPoint(1) = 50
radius = 4.5
' Create the Circle object in model space
Set circleObj = acadDoc.ModelSpace.AddCircle(centerPoint, radius)
' Define the rectangular array
Dim numberOfRows As Long
Dim numberOfColumns As Long
Dim numberOfLevels As Long
Dim distanceBwtnRows As Double
Dim distanceBwtnColumns As Double
Dim distanceBwtnLevels As Double
numberOfRows = Range("PrimaryHoleQty")
numberOfColumns = 1
numberOfLevels = 1
distanceBwtnRows = Range("PrimaryPitch")
distanceBwtnColumns = 0
distanceBwtnLevels = 0
' Create the array of objects
Dim retObj As Variant
retObj = circleObj.ArrayRectangular _
(numberOfRows, numberOfColumns, numberOfLevels, _
distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels)
acadApp.Update
acadApp.ZoomExtents
acadDoc.SetVariable "OSMODE", intSnapSetting 'return the snap setting that user had
DT = Format(CStr(Now), "mm-dd_hh-mm-ss")
filepath = ThisWorkbook.Path
acadDoc.SaveAs filepath & "\" & Range("job_number") & "_" & "DXF" & "_" & DT, ac2000_dxf
End Sub
create 5 named cells as following. Put values or formulas in each of the named cells. pushing ctrl + F3 will bring up the name manager

you can also enter the name by clicking on the cell then going to the upper left box and typing the name in the Name Box circled in red below

Next add a button to the worksheet. see the video below to add a button to the worksheet and add a macro to the button. If the developer tab is not visible then add it in the excel options.
All done! Now just push the button AutoCAD will auto open and draw the objects.