我的Excel工作表创建了一个包含各种图层的地图,显示了由直线,正方形,圆点和三角形组成的网络。我有每个创作的函数,它们带有诸如
之类的参数cellLocation As Range '(takes a given cell location)
shapeType As String '(oval, triangle, rectangle)
Color '(red, black, whatever)
sizeFactor As Double '(factors the shape size as a function of cell's width)
我现在只是学习类,但想知道在这种情况下类是否有用,以及如何使用它们来简化我的代码,而不是让函数有6个不同的参数等。
最初我有这样的功能:
Function CreateWell(cellRng As Range, wellName As String)
'creates a square of particular color, size, etc in the cellRng and names it wellName
Function CreateCompressor(cellRng As Range, compName As String)
'creates an oval of particular color, size , etc. similar to other func.
然后,因为我有大约5个,其中唯一的变化是颜色,大小,形状等。我尝试了整体功能:
Function CreateShape(cellRng As Range, shpName As String, _
shpColor As String, shpSize as double, shpType As string)
但这似乎很混乱(论据太多)。如何使用类清理这种类型的代码?
答案 0 :(得分:0)
答案 1 :(得分:0)
我一直在探讨如何创建可与形状一起使用的类模块的问题。我有一个MakeShape()子,其中包含许多定义形状属性的参数。正如您所说,在我添加新的论据时要使它们井然有序具有挑战性。
我问自己:类和屏幕上的形状之间是什么关系?我的工作原理是该类应在屏幕上保留形状的属性(例如,compressor.top,compressor.left,压缩机.width等)。然后,您可以创建方法(例如,compressor.draw在屏幕上创建形状)。我不太清楚一旦将形状绘制为形状类的方法,您将如何操作它(实际上,既然束缚在野外,如何将皮带保持在相同的形状对象上)。我想该对象可以具有对象属性,因此Compressor.shape将引用屏幕上的一个形状对象。到那时,我不确定是否要使用Compressor.top,compressor.shape.top或两者进行调整。我将在学习时尝试进行更新。