Awesome VBA
...大约 18 分钟
如果您觉得这个项目对您有帮助,就请点右上角的Star按钮为它加星星✨✨ 其他TIOBE Top 20编程语言的中文翻译请看awesome-code-resources。 本项目的原始仓库地址为这里。
Awesome VBA

Visual Basic for Applications (VBA) 是Microsoft的事件驱动编程语言Visual Basic 6.0 (VB6) 的实现,内置于大多数桌面Microsoft Office应用程序中。
这是VBA和vb6的库和资源的精选列表。
符号体系
由于VBA的性质,许多库不适用于所有操作系统,所有Office应用程序或所有体系结构 (x64/x86)。一些库还可能需要外部资源 (DLL,插件等),由于VBA缺乏包管理器,这些资源很难使用。为了帮助您找到适合您需求的项目,这个令人敬畏的列表使用以下符号。符号体系还具有可提供更多信息的工具提示。
平台兼容性
应用程序兼容性
其他重要信息
内容
框架
stdVBA-一个包含大量自动化和实用程序类的框架。注重代码的紧凑性和长期可维护性。
VbCorLib-一个框架,带来了许多强大的。NET类到VBA/vb6。
Hidennotare-日本作家RelaxTools的框架。包含许多类、接口和表单。
图书馆
数据格式
JSON
CSV
VBA-CSV-interface-功能强大,快速和全面的RFC-4180兼容CSV/TSV/DSV数据管理库。
- 从框架:
XML
VBA-XML-XML转换和解析。
邮编
Excel-ZipTools-解析和读取Zip文件。
数据结构
阵列列表
Better array-一个数组类提供更现代的语言中发现的功能。
- 从框架:
词典
VBA-FastDictionary-快速,跨平台,本地字典。替换脚本字典。
VBA-Dictionary-存储键值对的字典对象。
VBA-ExtendedDictionary-使用Scripting.dictionary的Dictionary对象,但公开了一些额外的有用功能。
cHashList-简单,快速和轻量级的HashList类,不使用Win32 API。但是需要字符串键。
CollectionEx-使用检索和检查密钥存在的方法扩展默认VBA(/VB6) 集合。
clsTrickHashTable-使用在运行时注入的机器代码的哈希表。完全替换脚本字典,具有奖金功能。
- 从框架:
数学库
VBA-Math-Objects-矩阵和向量库。
VBA Float-一个实用程序来执行大整数和有理数与数千位的计算。
数据库工具
SQL Library-面向psql,mssql,mysql数据库的OOP SQL库。
用户窗体工具
Task Dialog-来自这个1类的大量UI功能,以严格的动态和模块化方式。伟大的数据输入表单。另请参见vbforumspost以获取更多信息。
Material UI-让你的userform感觉现代与材料UI。
Easy EventListener-将userform的所有事件处理合并到1个回调中。
Pseudo Control Arrays-整合userform的所有事件处理的最佳方法。演示的用法API.也值得一看this class我也是.
Modern UI Components-自定义现代的控件。
MVVM-模型-视图-用于可维护的userform开发的ViewModel基础结构。
VBA Userform Transitions and Animations-一个很好的库,用于将动画easings实现到用户窗体中。
Trick's Timer-如果您需要连续运行一段代码并且无权访问(和/或您需要以每秒一次以上的速度运行它),这是适合您的课程!还检查了forum post了解更多信息。
Drag and Drop filepaths-允许您的用户表单处理拖放文件。
Late-bound WebBrowser Control Events-一种以后期绑定方式锁定WebBrowser事件的技术。
Mark's userform tools-许多UI工具和漂亮的用户表单。
VBA-UserForm-MouseScroll-允许鼠标滚轮在MSForms控件和Userforms上滚动。
MSForms (All VBA) Treeview Control-由JKP和Peter Thornton完全在VBA中编码的treeview控件替换。
Custom Userform TitleBar color
Multi-color ListBox class
Use of GDIPlus in VBA-GDIPlus可以用来创建一个像可以绘制任何图像的元素。另外看看这个GDI32来自同一作者的类。
Use of OpenGL in VBA-OpenGL是一个跨语言,跨平台的应用程序编程接口,用于渲染2D和3D矢量图形。在本文中,GDIPlus类的作者。
VB6 Graph Control-不会在VBA中本地工作,没有兼容的替代品,但一个非常高性能的图形控制无论。
低级工具
VBA-MemoryTools-提供了一个超快速,复制内存的选择。
Safe Subclassing-提供子类化Excel/Word/PowerPoint窗口或用户表单以执行进一步自动化的能力。在后面的线程中,还有一个示例,用于从其他应用程序子类化其他窗口。
Calling private module functions
Universal DLL Calls-一个库,可用于调用任何函数指针,DLL或对象的函数和。
VBA state-loss callback-用于VBA状态损失的无故障检测器。状态丢失可能发生在以下情况: 有人点击在未处理的错误中; 您单击VBA停止按钮; 您进入设计模式; 应用程序退出。
vb2clr-使用VBA中的C #。NET CLR运行时。
- 从框架:
解析器/解释器
VbPeg-VBA的解析器生成器。转换PEG语法,如this进入VBA code like this。如果您在VBA中实现新的编程语言,则非常有用。Wqweto还包括一些数学表达式解析器作为测试。
Volpi's Math Expression Parser-一个快速的数学表达式解析器。不允许调用对象,没有调用堆栈。
VBA Expressions-一个强大的字符串表达式计算器专注于数学和数据处理。
ClooWrapperVBA-使用GPU或CPU从VBA执行OpenCL。
- 从框架:
Web工具
VBA-Web-将适用于Windows和Mac的VBA,Excel,Access和Office连接到web服务和web
VBA-WebSocket-可以与echo服务器结合使用的WebSocket客户端的Microsoft示例代码。还有a class和一个async version由microsoft代码的发现者生成。
vbAsyncSocket-基于MFC中的原始CAsyncSocket包装的VB6的简单和瘦WinSock API包装。
Edge Automation-使用devtools协议自动执行Chromium边缘。Github backup here
Chrome Automation (via devtools protocol)-使用Chrome devtools协议自动化chrome。
webxcel-运行RESTful后端的web服务器。造物主还做了一个article关于它是如何工作的dev.to.
开发人员工具
Rubberduck-与Visual Basic编辑器集成的开源COM外接程序项目,可将现代功能添加到熟悉的IDE中。工作在VBA6,VBA7.x (x86/x64),是的,在VB6太!
VBA-IDE-Code-Export-Addin包含用于git (或任何VCS) 的代码导入器和导出器。
-RibbonX-AndyPope的可视化功能区编辑器。
Custom UI XML Editor-用于直接添加,编辑和验证功能区XML的插件 (Excel 2010)。
MZ-Tools-VBE addin提供开发工具
VbPeg-VBA的解析器生成器。转换PEG语法,如this进入VBA code like this。如果您要在VBA中实现新的编程语言,则非常有用。
VBA Resource File Editor-将其他文件存储在excel/word/powerpoint文件中,以便以后使用此方便的工具。
vbRichClient-一个充满有用库的外部客户端
vbWatchDog-破解VBA运行时以提供发生错误的模块名称,过程名称和行号。
杂项
Excel Name Manager-由JKP和Peter Thornton完全在VBA中编码的treeview控件替换。
Excel Flex Find-由JKP和Peter Thornton完全在VBA中编码的treeview控件替换。
示例
算法、代码优化和性能测试
- VBSpeed-Visual Basic性能站点-专注于VB6,但可转移到VBA。
UI功能区
- Ron de Bruin - Ribbons/QAT-有关开发自定义功能区和上下文菜单的信息/示例的领先资源。
- Office MSO Icons-功能区图标通常可以使用1500之一 (本网站上3页) MSO图标wich预先存在于Office应用程序中。
UI用户窗体
Drag and drop control-在用户窗体周围拖放图像控件。
低级别的例子
Iterating the ROT-迭代ROT以查找Excel工作簿实例的示例。
Iterating Excel Instances via IAccessible-在某些情况下,Excel实例未注册到ROT。然而,Excel应用程序实现,它不仅可以用于使UI自动化,还可以用于从hwnd获取Excel实例。
插件
MenuRighter-MenuRighter是一个Excel插件,允许您修改右键单击菜单。您几乎可以添加在其他右键菜单或Excel 2003的 “经典” 菜单中找到的任何控件。
Sam Rad's DatePicker-视觉上令人印象深刻和专业的DatePicker addin for Excel。仅工作表/不能与userforms一起使用。
游戏/有趣的项目
xlStudio-Microsoft Excel的DAW。还检查了真棒video。
Cellivization-在Excel中创建的酷炫的类似RTS的游戏。还检查了真棒video。
Arkanoid-Arkanoid,复古的街机游戏,内置在Excel中。在某些机器上,它比其他机器运行得更快。
Battleships
Pacman
ExcelCommodroid-在Windows上使用MS Excel的Commodore计算机加载程序。仅限VBA7。
外部工具
oletools-Python工具,可用于解码VBA P代码 (VBA的中间语言)。
twinBasic-一个VBA兼容的解析器,评估器和编译器。
vscode-vba-将VBA编辑器支持添加到Visual Studio Code的扩展。
样式参考线
- RubberDuck's style guide-有一些很棒的中级-高级指导。
- VB6 Coding conventions-VBA中使用的变量/类/模块命名约定。极大地帮助组织在VBE (除非你有rubberduck)。
信息
- Thunder - The birth of Visual Basic-关于VB7/VBA诞生的小文章。
- My First Bill Gates Review-Joel Spolsky,Excel团队的项目经理,讲述了他的第一次Bill Gates评论。Joel添加了许多功能,例如,,和。它还讨论了从Lotus 123移植到Excel的可怕的日期错误。
- Ruby, EB and DLL composition-翻译副本VBStreets article由俄罗斯VBer创建。详细介绍了语言历史中的VB6和VBA dll的组成。
- PCode Internals-VBA编译为PCode。理解较低级别的P代码是一个非常有趣和研究的主题。
- How many lines of code in EB-未翻译的文章由俄罗斯VBer它估计VB6/VBA中的代码行数。
- SAFEARRAYS-数组的内部结构。
- Articles by Sancarn-Sancarn撰写的有关VBA的各种文章,包括性能,VBA的实际问题等。
资源
Win32 API资源
- JKP API Declarations
- Microsoft Office Code Compatibility Inspector-Microsoft Office代码兼容性检查器由Microsoft设计,用于解决将Office从32位升级到64位时与VBA代码的兼容性问题。尽管显然可以在internet上找到该软件的版本,但MS尚未维护该软件的链接以从其服务器下载。
VB6 / VBScript
- Planet Source Code-Github之前的原始Github是Github。现在在Github上可用。可能不是以前在PSC网站上提供的项目/源代码的整个集合 (?),尽管对于更多的人来说肯定绰绰有余,并且在星期五晚上让自己开心。
- vbAccelerator Archive-vbAccelerator网站的存档副本 (文章,源代码等) 2015年消失,2018年重新出现,任何人都猜猜接下来会发生什么...主要是VB6,但有用的VBA资源。
网站
- Excel Development Platform Blog-博客处理高级主题/VBA。
- MSDN VBA Documentation
- MS-VBAL Language Spec
- Ron de Bruin-简单-中级主题。注意: Ron已经存档了所有这些网站,它不会更新,一些信息已经过时,但它仍然是VBA的一个令人难以置信的资源。
- Bytecomb VBA Reference-中级-高级主题。
- Chip Pearson's website-初学者的好资源-中级。
- VBA for smarties-对许多数据结构和机制的很好的参考。
Automate Excel's cheat sheets
- Rubberduck Blog-中级-高级主题。
Slipstick-Diane Poremsky (MVP) 的网站,专注于Outlook和VBA。
TechnicLee-Outlook博客,许多示例包括根据用户请求的代码变体。
PowerPoint VBA-一个致力于通过在PowerPoint中制作游戏来教授VBA的网站。
- MS KB Archive-vb6/vba问题,解决方案和教程的大量存档。
图书
- Hard Core Visual Basic-Visual Basic新5.0版本的高级程序员指南。包括一组核心的实用程序,快捷方式和问题解决方案,以实现广泛的功能程序。硬书也存在。还检查了Comments and corrections。
- The VBA Developer's Handbook-为任何情况编写防弹VBA代码。对于使用 “Visual Basic for Applications” 编程语言的300多种产品的开发人员来说,本书是必不可少的资源。其他地方也有精装本。
- Advanced Visual Basic 6-日常程序的功率技术Matthew Curland。其他地方也有精装本。
- Professional Excel Development-在这本书中,四个世界级的微软®Excel开发人员为使用Excel构建功能强大、健壮且安全的应用程序提供了从头到尾的指导。也提供精装本。
Excel VBA Programming For Dummies-是时候移动到一个新的水平-使用Visual Basic for Applications (VBA) 创建自己的自定义Excel 2010解决方案。使用分步说明和可访问的,友好的傻瓜风格,这本实用的书向您展示了如何使用VBA,编写宏,自定义您的Excel应用,以您想要的方式查看和工作,避免错误等
Power Programming with VBA-使用VBA进行Excel 2019电源编程已完全更新,以涵盖Excel 2019的所有最新工具和技巧。包括对Excel应用程序开发的分析和对Visual Basic for Applications (VBA) 的完整介绍,这本综合的书介绍了开发大型和小型Excel应用程序所需的所有技术。
- (E-Book) VBA beginners
- (E-Book) Excel VBA beginners
YouTube
- Excel Macro Mastery-保罗·凯利 (MVP) - excelmacromastery.com.
- Sigma Coding-教程的大目录-从初学者到高级。深入研究其他内容创建者未探索的VBA有趣领域。
- WiseOwl's VBA tutorials-伟大的全面的VBA资源。为初学者提供完美的介绍。深入学习VBA的各个方面。巨大的播放列表,涵盖了大多数类型的VBA。
VBA A2Z-许多教程,一些付费内容。好数组的有趣和不同的主题-深入的教程到VBA的不同部分,与一些。NET/VSTO视频。强烈关注UI开发。
- Excel VBA Is Fun
- Excel for Freelancers-动手教程,从开始到结束开发特定的应用程序。所有级别。
- Leila Gharani-办公室范围内的焦点-对初学者有用。
Get to know VBA-使用VBA呈现和创建的一些出色的应用程序。
论坛
- Reddit-每日VBA问答。偶尔的专业提示共享和显示和告诉图书馆出版。
- StackOverflow一个伟大的地方问问题。重复的问题被标记为重复,并将作者发送到正确的位置。
- Chandoo-Chandoo论坛-Purna Duggirala (MVP) 的博客。非常活跃。
- Visual Basic Discord-VB.NET/VBA/VB6狂热者的聊天室。
- Excel Discord-Discord服务器由Tim Heng (Excel MVP) 主持,专注于帮助Excel用户。
- MrExcel-主要是Excel通用,但很多VBA内容也可以在这里找到。
- Excel Forum
Slipstick-Diane Poremsky (MVP) 的Slipstick网站 (Outlook VBA) 的优秀论坛。黛安反应很快,她的回答非常有帮助。
- VBForums - Office Development-论坛,重点是VB6/.NET与VBA部分。
贡献
您的贡献总是受欢迎的!请看一下contribution guidelines首先。
