大家好,通过前面4讲的学习,我们看到了一个完整的工程中各个结构,既有窗体部分,又有代码部分。代码存储在模块中,在VBA中提供了三种类型的模块:窗体模块、标准模块和类模块。

一 各个模块的分工

我们在写代码的时候,简单的应用程序可以只有一个窗体,所用的程序都写在窗体模块中;当应用程序庞大复杂时,就要两个或者多个窗体,最终可能有几个窗体中有一些共同都要执行的代码,为了在两个窗体中不产生重复代码,我们需要创建一个独立的模块,用它实现代码公用,该独立模块即是标准模块;此外,我们创建的工程往往还可以建立包含共享代码与数据的类模块。

二 模块的内容

每个标准模块、类模块和窗体模块可包含:

  1 声明 可将常数、类型、变量和动态链接库(DLL)过程的声明放在窗体、类或标准模块的声明部分。每个模块只有一个声明部分。

2 过程 每个模块可有多个过程,过程是划分代码的最小单元,每个过程是一个可执行的代码片段。主要有sub过程、函数过程或者属性过程等。

三 各种模块的解读

1 窗体模块 VB是面向对象的应用程序开发工具,应用程序的代码结构就是该程序在屏幕上表示的对象模型。对象包含数据和代码,应用程序中的每个窗体都有一个相对应的窗体模块(文件扩展名为.frm)

 窗体模块可以包含处理事件的过程、通用过程以及变量、常数、自定义类型和外部过程的窗体级声明。写入窗体模块的代码是该窗体所属的具体应用程序专用的;也可以引用该程序内的其它窗体和对象。每个窗体模块都包含事件过程,在事件过程中有为响应该事件而执行的程序段。窗体可包含控件。在窗体模块中,对窗体上的每个控件都有一个对应的事件过程集。除了事件过程,窗体模块还可包含通用过程,它对来自该窗体中任何事件过程的调用都作出响应。

2 标准模块 标准模块是程序中的一个独立容器,包含全局变量、Function(函数)过程和Sub过程(子过程)。

可将那些与特定窗体或控件无关的代码放入标准模块中。标准模块中包含应用程序内的允许其它模块访问的过程和声明。它们可以包含变量、常数、类型、外部过程和全局声明或模块级声明。写入标准模块的代码不必固定在特定的应用程序上。

(1)为什么使用标准模块

在编写程序时,很可能会遇到一些使用相同变量的窗体以及事件过程。在缺省状态下,变量对于事件过程来说是局部的,就是说仅能在创建这些变量的事件过程中读取或者修改变量。与之相似,事件过程对于创建它们的窗体来说也是局部。为了在工程中的所有窗体和事件中共享变量和过程,需要在该工程的一个或多个标准模块中对它们进行声明和定义。标准模块或代码模块是具有文件扩展名.bas,并包含能够在程序任何地方使用的变量和过程的特殊文件。

 标准模块可通过使用File(文件)菜单中的Save Modulel As菜单项存盘。但是,与窗体不同,标准模块不包含对象或属性设置而只包含可在代码窗口中显示和编辑的代码。  

(2)声明公用变量

 在标准模块中声明全局变量十分简单,键入关键字Public,后跟该变量名。缺省状态下,公用变量在模块中被声明为变体类型,但是可以通过使用As关键字来指定相应类型,可以把公用变量声明为某个指定的基本类型。

今日内容回向:

1 在VBA中,可以区分几种模块?

2 窗体模块和标准模块的意义是什么? 

在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

学习VBA是个过程,这个过程是自己忍受孤独的过程。

"水善利万物而不争",你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。

最后将一阙词送给致力于VBA学习的朋友:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享成果,随喜正能量

不是有效的win32应用程序_什么是模块,VBA各种模块的有效行为相关推荐

  1. win32应用程序_不是有效的win32应用程序怎么解决

    在日常办公中经常用到电脑,有许多使用技巧.本次给大家介绍不是有效的win32应用程序怎么办,快来看看吧. 方法一:不是有效的win32应用程序表示这个应用程序和系统不兼容,用户可以在计算机属性页面查看 ...

  2. jna 不是有效的 win32 应用程序_教你打开程序提示不是有效的win32程序怎么办

    在对电脑的使用过程中,我们经常都会遇到一些问题.比如说打开程序出现提示"不是有效win32位程序",遇到这个问题时该如何处理呢?下面小编就给大家介绍打开程序出现系统提示" ...

  3. win32应用程序_电脑打不开exe程序|Win10提示exe不是有效32应用程序

    Win10中,有些用户,在打开exe文件的时候,提示不是有效的win32应用程序,出现这种问题,有可能是文件关联出现错误.我们可以尝试修改注册表来解决问题. 方法/步骤: 1.按 Win + S 组合 ...

  4. win32应用程序_驱动人生网卡版提示不是有效的应用程序,为什么和怎么办

    嗨!我是驱动哥,今天准备了一篇新的解决方案. 近期在用户在Q群上咨询驱动哥,用安卓手机下载驱动人生网卡版后,再传到电脑上出问题了. 如果电脑是Win7的系统就会提示[驱动人生网卡版exe不是有效的Wi ...

  5. win32应用程序_这个免费开源的「外挂」,让 Win32 老应用的字体更好看

    自 Windows 10 从 2014 年正式发行以来已经有快六年的时间了,然而六年后的今天,水深火热的 Windows 用户依旧要为 Windows 上一些使用着古老技术的客户端糟糕的字体渲染买单. ...

  6. 不是有效的win32应用程序_什么是模块,各种模块的有效行为(1)

    大家好,通过前面4讲的学习,我们看到了一个完整的工程中各个结构,既有窗体部分,又有代码部分.代码存储在模块中,在VBA中提供了三种类型的模块:窗体模块.标准模块和类模块. 一 各个模块的分工 我们在写 ...

  7. 不是有效的win32应用程序_杀毒软件有坑!三分之二的安卓杀毒软件的“主业”并不是杀毒...

    更多全球网络安全资讯尽在E安全官网www.easyaq.com 小编来报:奥地利杀毒测试机构AV-Comparatives研究发现,大约三分之二的安卓杀毒软件并没有合格的杀毒功能,它们都是披着羊皮的狼 ...

  8. 不是有效的win32应用程序_闪电网络走进生活还远吗?Lightning Labs推出Alpha版本桌面应用程序...

    Lightning Labs(闪电实验室)刚刚发布了闪电网络钱包的alpha版本.其桌面应用程序现在与比特币的主网络兼容,它利用Neutrino协议(协议名称,不是Coinbase收购的数据分析公司) ...

  9. php微擎万能门店小程序_【微擎微赞模块】万能门店小程序6.8.73+小程序前端+后端...

    源码介绍 微赞微擎模块万能门店小程序不限制小程序生成数量,支持多页面,预约功能等. 万能门店小程序的宗旨是:小程序设计无需您过问,签到客户后,根据客户所属行业直接选择模板,各板块点击设定不同的样式.颜 ...

最新文章

  1. 《JavaScript设计模式》——11.2 一切只因跨域
  2. STM32用keil5调试程序出现 Error:Flash Download Failed-Cortex-M3解决方案
  3. 踩坑日记:Logstash同步数据库有type字段导致同步失败
  4. SAP UI5应用的sap-ui-core.js被加载之前,还有哪些js文件被加载了
  5. threadlocals_如何使用ThreadLocals射击自己
  6. wordpress蓝色简洁中文杂志主题wordpress模板
  7. [2018.07.17 T2] Palindromes
  8. Perl 脚本命令行传入参数
  9. 软件测试知识点 | APP蓝牙连接测试
  10. android在体检报告叫什么,体检报告检测分析app
  11. IDEA中看代码时返回上一步快捷键(Mac)
  12. Private VLAN 与Switchport Protected
  13. 教你如何提高信用额度
  14. 产生虚假的用于欺骗的IP数据包程序实践——Teardrop
  15. OSChina 周五乱弹 ——程序员的爱情观
  16. 次元服务器的位置,暮色次元服务器介绍
  17. QGIS教程-4:添加精美底图的三种方法
  18. Parametric Diagrams
  19. 嵌入式系统使用时,Ubuntu缺少一些服务的解决办法
  20. 让Windows XP启动更快

热门文章

  1. UVM交互式调试库:缩短调试周转时间
  2. MTK5G平台 MT6885/MT6853/MT6873如何配置长按关机
  3. 人工智能目标检测总结(五)——深入理解one-stage目标检测模型
  4. 联想笔记本重装win7系统之后无线不能用
  5. vp230引脚功能_正点原子阿波罗STM32F767
  6. zip压缩文件转换为可传输byte[]流和不解压下读取指定zip包中文件
  7. Java中的String类为什么不可变
  8. linux下的elf结构,ELF结构详细分析(1)---elf32_hdr
  9. Android4.0新特性 中文翻译
  10. Oracle免登录下载JDK(实测有效)