乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 214|回复: 14

学习VBA

[复制链接]

3

主题

44

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2003-10-3 09:41:57 | 显示全部楼层 |阅读模式
因为我已经很久没有真正使用过VBA了,所以我决定自学,从零开始,在AutoCAD中使用它。
我将在这里记录我做了什么以及我是如何做的,以便您可以跟踪我的进度,或者,如果您已经了解VBA,请为我指出正确的方向。
这将对任何人开放,请随时告诉我您的想法。
首先,我将使用一些东西作为参考。
AfraLisp有一个关于VBA的很棒的部分,因为它与AutoCAD相关,我强烈推荐它。
他们有一篇很棒的文章叫做《VB和VBA入门》,如果你刚到VBA,你应该去看看。
作为我的项目,我将在AutoCAD中创建一个VBA应用程序,取代我公司的“详细信息”手册。
因此,我将从解释我希望实现的目标开始。
我正在使用的菜单位于一个名为
C:\clc\acadmenu的文件夹中
在此目录下,我有一个名为DETAILS的文件夹,其中包含按类别划分的我的详细信息的子文件夹。
我们是一家电气工程公司,因此我们的分类如下:
通信详细信息
灯-
照明详细信息
机械-
机械详细信息
杂项详细信息
电源-
电源详细信息
我的所有详细信息都命名为:
COMM 0001 . DWG
COMM 0002 . DWG
COMM 000...

lite 0001 . DWG
lite 0002 . DWG
lite 0003 . DWG
lite 0004 . DWG
lite 0005 . DWG
lite 0006 . DWG

等等...
因此,此时我的想法是这样的:
我已经在基本目录中创建了一个名为DETAILS的文本文件。TXT,其中包含一个目录(类别)列表,描述由管道符号(|)分隔
COMM | communication s Details
LIGHTS | Lighting Details
MECH | Mechanical Details
MISC | Miscellaneous Details
POWER | POWER Details
在每个子目录中,我都有一个以文件夹命名的文本文件,其中包含一个类似的详图列表,以及一个描述,如
COMM 0001 | Sample Sound System Conduit Schedule
COMM 0002 |天花板烟雾探测器安装细节
COMM 003 | COMM 001...
我希望我可以让应用程序从第一个文本文件加载信息,允许用户选择他想要查看/插入的详细信息类型。
选择后,从相应的文本文件加载信息,并显示每种详细信息的描述。当用户选择他们想要查看/插入的描述时,将显示图纸的大预览,并且他们可以选择将图纸插入AutoCAD。
我将使用AcPreview ActiveX控件模块进行预览
(稍后将详细介绍控件模块)
并且我将逐步完成该过程,因此,如果您愿意,您可以自己创建相同的项目。
我认为,如果我想添加其他细节或更改某个细节的描述,只需修改与我希望添加/删除的类别相关的文本文件。
和往常一样,如果您认为我可能走错了路,请直言不讳。有更好的主意吗?我乐于接受建议。
所以我要去读VBA的介绍了,等我读完之后,我会回到这里发表我的想法。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

3

主题

44

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2003-10-3 11:06:15 | 显示全部楼层
好吧,如果您已经阅读了上面链接的介绍,那么您现在就知道Visual Basic for Applications(以及VB)是一个“事件驱动应用程序”。换句话说,它等待某些事情发生,然后再做任何事情。
这可以是
许多不同的“事件”,例如单击鼠标,按下按钮或您决定放入应用程序中的任何其他内容。
项目中的事件将由我们在应用程序中创建的对象触发。
我脑海中的对象是
“窗体
”(窗体是此项目中的窗口或对话框。我们将在此窗体上绘制控件。它还会触发一个事件。当它加载时,我希望它读取我的第一个文本文件的内容。
组合框
(通常称为“下拉列表”,这是我们让用户选择详细信息类别的位置。根据 VBA 参考库,ComboBox 结合了 ListBox 和 TextBox 的功能。用户可以像使用文本框一样输入新值,也可以像使用列表框一样选择现有值。由于我不希望他们输入任何内容,我只想让他们选择它,也许这不是要走的路。我还不知道。
列表框
(显示值列表,并允许您选择一个或多个值。在这里,我们将显示详细信息的描述,并允许用户选择他们想要查看/插入的那个)
命令按钮
(实际上是两个。一个用于退出应用程序,另一个用于将所选细节插入AutoCAD)
预览框
(我打算显示所选细节的大预览,因为我们的一些细节是相似的。这应该使用户更容易选择正确的一个。这个很特别。稍后我将介绍如何获取它。
更多内容即将推出...
回复

使用道具 举报

14

主题

194

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2003-10-3 11:15:14 | 显示全部楼层
好吧,这让一切都变得更容易。现在,您双击表单工具,即复选框,然后弹出一个窗口供您编码。是时候做更难的部分了,知道该放什么。
回复

使用道具 举报

14

主题

194

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2003-10-4 02:55:16 | 显示全部楼层
我又经历了一次。要么是因为已经快到午夜了,要么是因为从一开始就有太多的信息,我不完全知道事情会发展到什么地步。当我阅读时,我觉得它更适合Lisp应用程序,因为您使用的是列表。我肯定那只是我的口齿不清。我知道一件事,伪代码。你能为事情应该发生的顺序写一些伪代码吗,包括if,then,else,以及for each,这样我们就可以使这个代码模块化。此外,什么是在图纸中,将被插入,你可以张贴一些信息,将在文本文件中访问?我问的原因可能相关,也可能不相关,但我有一个lisp,它遍历一个与其插入的图形同名的文本文件。它一次在六行上执行读文件。如果第一行返回true,它将处理接下来的五行,如果返回nil,它将读取接下来的六行,直到找到匹配项或到达文件的末尾。我不确定我们在VBA会怎么做,但我想这就是为什么我们要学习它,对吧。
回复

使用道具 举报

3

主题

44

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2003-10-6 08:39:35 | 显示全部楼层

完全。
这就是我打算要实现的目标:
1.窗体打开时会显示一个下拉菜单,用户可在其中选择详细信息类别。
我会有表格,在加载时,阅读文本文件详细信息.TXT,我在上面列出了
2。选择类别后,该类别中的详细说明列表将显示在 ListBox 中。
DETAILS.TXT中的每个条目都对应于包含详图的目录。其中每个目录还包含一个文本文件,其中包含每个图形的名称,后跟如上所示的说明。
3. 当用户从列表框中选择描述时,它会使用 AcPreview ActiveX 控制模块显示绘图的预览。
单击“插入详细信息”按钮,它将图形插入到当前的AutoCAD图形中。
我在这种情况下使用VBA而不是LISP的原因很简单:
首先,我需要重新学习VBA。其次,我真的很喜欢AcPreview控件,我认为它非常适合这种类型的应用程序。
希望我今天能花一些时间讨论这个问题。
回复

使用道具 举报

0

主题

27

帖子

2

银币

初来乍到

Rank: 1

铜币
27
发表于 2003-10-6 09:58:40 | 显示全部楼层

一个基本的块管理器,包含一个选项来选择所需的服务,即:电气,然后选项按钮来选择照明,电源,通信等
在选择列表框将显示与选择有关的所有块,即:电源。我还添加了一个选项,可以将附加块添加到库中,然后将块复制到适当的文件夹并将其放入列表框中。
我制作了一个示例类型版本,以向一家公司展示我使用的他们可以使用的工具,因为他们的符号库等太垃圾了。
我没有得到太多回应,所以我从来没有时间完成程序。这将是一个非常方便的工具。
回复

使用道具 举报

3

主题

44

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2003-10-6 11:40:31 | 显示全部楼层
崔佛,
你介意把它贴在这里吗?我确信它会帮助我开发这个。
事实上,我就是这样开始学习LISP的。我会选择一个我
有点儿
喜欢的套路,然后按照我的喜好调整它。
我相信这对任何试图掌握这一知识的人都会有所帮助!
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2003-10-17 07:39:19 | 显示全部楼层

只需设置组合框的
样式
属性以适应:
或者,如果输入的值不在您的列表中,您可以使用
“Dent的每日报价”
回复

使用道具 举报

0

主题

27

帖子

2

银币

初来乍到

Rank: 1

铜币
27
发表于 2003-10-17 07:46:35 | 显示全部楼层
是的,没有问题 nivuahc
我有一些东西要整理一下,使它更具功能性
,然后我会发布我所拥有的。
回复

使用道具 举报

3

主题

44

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2003-10-17 09:14:00 | 显示全部楼层
我花了很少的业余时间试图弄清楚如何将TXT文件中的信息放在表单上,以便当用户选择某些内容时,它将值设置为变量。
我的运气很少。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 08:33 , Processed in 0.681435 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表