概要 - バリアント配列を解釈する(VBA/ActiveX)

AutoCAD ActiveX オートメーションから返される配列情報は、バリアントとして返されます。

配列のデータ タイプが分かっていれば、バリアントには配列と同様に簡単にアクセスできます。バリアントに含まれる配列のデータ タイプが不明の場合は、VBA 関数 VarType または TypeName を使用します。これらの関数は、バリアント内のデータ タイプを返します。配列を繰り返す必要がある場合は、VBA の For Each 文を使用することができます。

2 点間の距離を計算する

次のコードは、ユーザが入力した 2 点間の距離を計算する例を示しています。この例では、すべての座標が倍精度浮動小数点なので、データ タイプは明らかです。3D 座標は 3 要素の倍精度浮動小数点配列で、2D 座標は 2 要素の倍精度浮動小数点配列です。

Sub Ch2_CalculateDistance()
    Dim point1 As Variant
    Dim point2 As Variant

    ' Get the points from the user
    point1 = ThisDrawing.Utility.GetPoint _
 (, vbCrLf & "First point: ")
    point2 = ThisDrawing.Utility.GetPoint _
 (point1, vbCrLf & "Second point: ")

    ' Calculate the distance between point1 and point2
    Dim x As Double, y As Double, z As Double
    Dim dist As Double
    x = point1(0) - point2(0)
    y = point1(1) - point2(1)
    z = point1(2) - point2(2)
    dist = Sqr((Sqr((x ^ 2) + (y ^ 2)) ^ 2) + (z ^ 2))

    'Display the resulting distance
    MsgBox "The distance between the points is: " _
 & dist, , "Calculate Distance"
End Sub