如果这是一个“低调的”问题我提前道歉但我真的需要帮助理解如何知道如何在VBA项目中制作课程。
注意:我不是在问如何编写一个类。我在问如何确定要上课的内容。
示例
我想在PowerPoint幻灯片上绘制形状。我需要绘制的3种形状中的2种具有相同的属性和方法。我会创建一个名为CShape
或3个类的类:CCircle
,CSquare
,CRectangle
?此外,行被视为PowerPoint中的形状。我应该在CLine
添加CShape
课程还是将所有内容整合在一起?
我在Google上搜索了方法论,以确定VBA中的类等但找不到任何内容。那里有没有人有办法确定如何为他们的项目创建课程(以及背后的原因)?
另外,我刚刚进入类和接口,这是我使用它们的第一个项目。谢谢!
更新
我确实找到了这个:When to use a Class in VBA?
答案 0 :(得分:2)
当您使用可重用的代码时,这是使用类的最佳时机。
您需要创建具有处理错误和可能的错误条目的过程的类。尽管您可以创建代码,但是您的课程可以按照您的预期运行。 我使用PowerPoint并构建了一些类来操作文档属性,另一个用于操作幻灯片,另一个用于调整形状。
您可以在Chip Pearson网站上找到几个类示例,您可以找出如何创建自己的类。
希望这有帮助。
答案 1 :(得分:1)
VBA(与Visual Basic 6几乎相同)不支持继承。
所以你有一些选择,使用Interfaces是处理这个的常用方法,所以可能有三个类实现了IDrawable接口。您可能希望拥有一个处理这些功能的基类,并将外部类调用到基础。
IDrawable可能有公共成员的绘图,位置,颜色和钢笔宽度,其他参数是各个类的一部分。
特别是你应该阅读Liskov替代原则。我已经看过使用矩形和正方形作为不做的例子。
请参阅此旧问题,例如Is deriving square from rectangle a violation of Liskov's Substitution Principle?
答案 2 :(得分:0)
我已经使用VBA超过20年了,很少使用类模块
对我来说最有用的案例是构建代表一些结构化电子表格或复杂文本文件的类(逻辑行跨越多条物理行),您可能需要查询或浏览。
然后,您可以实现.MoveNext
方法和一些属性,如.EoF
,.Price
,.Rate
,以便按顺序读取它们,能够在您使用该特定输入文件的任何位置重用该类'layout',并将复杂的逻辑封装在类中。