Here is slightly edited version
Tested in A2005 only
Option Explicit
'| request check "Break on Unhandled Errors"
'| in Tools -> References -> Options -> General tab
'| -> Error Trapping field
'|---------------------------------------------------|
Private Sub cmdArea_Click()
Me.Hide
Dim Pt As Variant, _
varArea As String, _
pstr As String, _
SysVarName As String, _
sysVarName2 As String, _
VarData As Variant, _
intData As Double, _
textObj As AcadText, _
text As Variant, _
Height As Variant, _
Msg As String
SysVarName = "DIMSCALE"
sysVarName2 = "AREA"
With ThisDrawing
.SetVariable "OSMODE", 0
.SetVariable "CMDECHO", 0
'' Multiple getpoint method by Tony Tanzillo
Msg = vbCrLf & "Select an Internal Point"
Do
On Error Resume Next
Pt = .Utility.GetPoint(, Msg)
If Err Then
Err.Clear
Exit Do
End If
On Error GoTo 0
pstr = Replace(CStr(Pt(0)), ",", ".") & "," & _
Replace(CStr(Pt(1)), ",", ".")
.SendCommand Chr(3) & Chr(3) & "._-boundary" & vbCr & pstr & vbCr & vbCr
.SendCommand "._area" & vbCr & "_Object" & vbCr & "_Last" & vbCr
.SendCommand "._erase" & vbCr & "_Last" & vbCr & vbCr
VarData = .GetVariable(SysVarName)
varArea = Round(Val(.GetVariable(sysVarName2)) / 144, 2) & " Sq. Ft."
intData = VarData * 0.09375 'for 3/32 text
Height = intData
Set textObj = .ModelSpace.AddText(varArea, Pt, Height)
textObj.Update
Msg = vbCrLf & "Next Internal Point or ENTER to exit: "
Loop
On Error GoTo 0
.SetVariable "OSMODE", 703
.SetVariable "CMDECHO", 1
End With
MsgBox "Done"
Unload Me
End Sub
~'J'~