概要 - 定義された面積を計算する(VBA/ActiveX)

ユーザが指定した点を使用して、閉じた領域の面積を取得することができます。

ユーザが指定した 2D 点または 3D 点によって定義された任意の閉じた領域を計測することができます。点は同一平面上でなければなりません。

ユーザが入力した点によって指定される面積を計算するには

ユーザから入力された点で定義される面積を計算する

この例ではユーザに 5 つの点を入力するようプロンプト表示します。そうすると、入力された点からポリラインが作成されます。ポリラインは閉じられており、ポリラインの面積がメッセージ ボックスに表示されます。

Sub Ch3_CalculateDefinedArea()
  Dim p1 As Variant
  Dim p2 As Variant
  Dim p3 As Variant
  Dim p4 As Variant
  Dim p5 As Variant

  ' Get the points from the user
  p1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "First point: ")
  p2 = ThisDrawing.Utility.GetPoint(p1, vbCrLf & "Second point: ")
  p3 = ThisDrawing.Utility.GetPoint(p2, vbCrLf & "Third point: ")
  p4 = ThisDrawing.Utility.GetPoint(p3, vbCrLf & "Fourth point: ")
  p5 = ThisDrawing.Utility.GetPoint(p4, vbCrLf & "Fifth point: ")

  ' Create the 2D polyline from the points
  Dim polyObj As AcadLWPolyline
  Dim vertices(0 To 9) As Double
  vertices(0) = p1(0): vertices(1) = p1(1)
  vertices(2) = p2(0): vertices(3) = p2(1)
  vertices(4) = p3(0): vertices(5) = p3(1)
  vertices(6) = p4(0): vertices(7) = p4(1)
  vertices(8) = p5(0): vertices(9) = p5(1)
  Set polyObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(vertices)
  polyObj.Closed = True
  ThisDrawing.Application.ZoomAll

  ' Display the area for the polyline
  MsgBox "The area defined by the points is " & _
  polyObj.Area, , "Calculate Defined Area"
End Sub