Cuando se utiliza VBA para dibujar un rectángulo, siempre aparece el mensaje "El parámetro no es opcional" al ejecutar el código del formulario. ¿Podría ayudarme a descubrir la causa del error?
Private Sub CommandButton1_Click()
Atenuar a como doble, b como doble, c como doble, d como doble, e como doble
a = TextBox1. Texto
b = TextBox2.Text
c = TextBox3.Text
d = TextBox4.Text
e = TextBox5.Text
' Pt1 a, b
' Pt2 c, d
AddRectangle Pt1(a, b), Pt2(c, d), e
Fin Sub
'====================
'Código de módulo 1
Función Pública Pt1(ByVal x As Double, ByVal y As Double) Como Variante
Dim Pt(0 A 1) Como Variante
Pt(0) = x: Pt(1 ) = y
Pt1 = Pt
Función final
'=====================
'Código de módulo dos
Función Pública Pt2(ByVal x As Double, ByVal y As Double) Como Variante
Dim Pt(0 A 1) Como Variante
Pt(0) = x: Pt(1) = y
Pt2 = Pt
Función final
'=== ====================
'Código de módulo 3
Función pública AddRectangle(ByVal Pt1 como variante, ByVal Pt2 como Variante, ancho opcional como doble) como AcadLWPolyline
Dim ptArr(7) como doble
Dim objPline como AcadLWPolyline
'Crear procesamiento de rectángulo
Si Pt1(0) = Pt2(0) o Pt1(1) = Pt2(1) entonces
MsgBox "Error al crear el rectángulo"
Salir de la función
Fin si
ptArr(0) = MinDouble(Pt1(0), Pt2(0)): ptArr(1) = MinDouble(Pt1(1), Pt2(1)): p >
ptArr(2) = MinDouble(Pt1(0), Pt2(0)): ptArr(3) = MaxDouble(Pt1(1), Pt2(1)):
ptArr( 4 ) = MaxDouble(Pt1(0), Pt2(0)): ptArr(5) = MaxDouble(Pt1(1), Pt2(1)):
ptArr(6) = M
axDouble(Pt1(0), Pt2(0)): ptArr(7) = MinDouble(Pt1(1), Pt2(1))
' Set objPline = ThisDrawing.ModelSpace.addlightweigthtPolyline(ptArr)
Establecer objPline = ThisDrawing.ModelSpace.AddLightWeightPolyline(ptArr)
objPline.Closed = True
objPline.Visible = True
Establecer AddRectangle = objPline
Función final
'====================
'Código de módulo 4
Función pública MinDouble(ByVal a As Double, ByVal b As Double) As Double
Si a < b Entonces MinDouble = a
Si a > b Entonces MinDouble = b
Función final
'================
'Código de módulo 5
Función pública MaxDouble(ByVal a As Double, ByVal b As Double) Como doble
Si a < b Entonces MaxDouble = b
Si a > b Entonces MaxDouble = a
Función final