V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vlean
V2EX  ›  程序员

正在写一份 VBA 的入门手册,求各位大佬大神斧正

  •  1
     
  •   vlean · 2017-09-19 10:38:01 +08:00 · 4824 次点击
    这是一个创建于 2622 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正在写一份给初学者(非程序员)用的 VBA 参考手册,计划主体有四部分:

    • VBA 语法说明
    • VBA 界面说明
    • VBA 常用对象说明
    • 示例

    现在已经写完了,第一部分语法说明

    欢迎大家提下对文档的意见。 另外,不知道要怎么写才能让新手更快入门,欢迎各位大佬斧正。

    文档地址: 简明 Excel VBA

    ps:我不是做 VBA 的,也是一边看别人资料,一边整理。

    第 1 条附言  ·  2017-09-20 17:54:38 +08:00

    文档的问题或者感兴趣的内容,欢迎大家提 Issue

    有提交的欢迎提交pull request

    29 条回复    2017-11-12 16:00:05 +08:00
    ajan
        1
    ajan  
       2017-09-19 10:52:02 +08:00
    棒棒哒
    jydeng
        2
    jydeng  
       2017-09-19 10:58:16 +08:00
    赞一个
    meisky6666
        3
    meisky6666  
       2017-09-19 10:58:58 +08:00
    推荐给身边的会计
    laycher
        4
    laycher  
       2017-09-19 11:08:20 +08:00
    整理总比不整理好。
    vlean
        5
    vlean  
    OP
       2017-09-19 11:26:12 +08:00
    @meisky6666 好的 可以让他看看有什么需要补充的 或者他需要哪一块的
    vlean
        6
    vlean  
    OP
       2017-09-19 11:26:54 +08:00
    @laycher 也是各种原因 才准备写的
    depress
        7
    depress  
       2017-09-19 11:38:26 +08:00   ❤️ 5
    我觉得啊,你要是写一个面对非程序员的手册,我给你两条建议:第一,VBA 市场里 office 版本混乱,高版本编写的在低版本里可能运行有问题,最好说清楚你的教程是用哪个版本写的。第二,程序员类描述语言尽量别出现,非程序员可不知道冒泡排序是什么东西,更重要的是这个排序能解决什么问题。

    但是你要是为了让人更快入门,手册性质的教学不是好办法,手册是用来查的,不是用来学的。学习 VBA 的人不是因为要找 VBA 开发的职位,而是有个现成的问题需要解决,他们需要的教程是①VBA 是什么②从哪进入开发③怎么看开发结果④基础开发知识⑤实际问题解决,对应起来我更愿意①录制一个宏,查看宏源码,告诉他们这就是 VBA,②然后告诉他们怎么在界面调出开发工具进入编码窗口,③然后编写一个简单的例子拉出一个按钮设置按钮宏,让他们知道点一下按钮就能看到代码结果,④结合刚才编写的例子讲解基础知识,⑤最后判断目前的问题是哪一类的,找对应类的例子加以修改扩充。以我学习 VBA 的路来看,最重要的还是例子,所以把常见的问题从简到难列出来进行讲解是很不错的方式,像数据库连接这种偏难的知识就不要放基础知识讲解里了,直接在对应的例子里说明就好。其实现在 VBA 开发的视频教程、书籍都有,都挺不错的,所以感觉你也不用像我说的似的写这么详细,还是写个手册更靠谱。
    vlean
        8
    vlean  
    OP
       2017-09-19 12:07:44 +08:00
    @depress 多谢了, 版本这个确实要注意下 ,我再查找资料的时候也碰到了会说到版本的问题,尤其是 MSDN 官方文档里的。
    最开始写目的是想给朋友提供一个简要说明 VBA 各个相关知识点的速查手册。了解了基础之后哪部分忘了就可以通过这个快速检查下了。
    给新手直接讲例子这个可以有。后面我注意下多增加些例子。
    VBA 开发的视频教程,我也收集下放到参考资料里把。
    sss3600123
        9
    sss3600123  
       2017-09-19 13:03:54 +08:00 via iPhone
    多谢
    LokiSharp
        10
    LokiSharp  
       2017-09-19 14:09:22 +08:00
    有啥办法能替换 Office 里面的 VBA 编辑器么?
    vlean
        11
    vlean  
    OP
       2017-09-19 15:05:45 +08:00
    @LokiSharp 这个好像没有,其实我想让他学的是用 python 操作 excel 获取数据 然后再输出 -_- 但是他们公司内部用的都是 vba 所以才写了这份文档
    Alexhex
        12
    Alexhex  
       2017-09-19 15:40:35 +08:00   ❤️ 2
    并不是想要打击楼主但是


    http://analystcave.com/vba-cheat-sheet/
    vlean
        13
    vlean  
    OP
       2017-09-19 15:44:53 +08:00
    @Alexhex 赞👍

    不打击 可以参考下 翻译一部分。
    挺好的 多谢
    showjim
        14
    showjim  
       2017-09-19 16:15:17 +08:00
    加油 LZ,以后有空的话来帮忙
    kumitom
        15
    kumitom  
       2017-09-19 16:19:19 +08:00   ❤️ 1
    例如 sum(10,9)结果就是 10 了?
    huage
        16
    huage  
       2017-09-19 16:34:39 +08:00
    亚马逊上有相关 vba 的书箱,你看一下就知道怎么写目录了
    vlean
        17
    vlean  
    OP
       2017-09-19 16:42:11 +08:00
    @kumitom 多谢 已经修改 本来是埋的点。。。
    vlean
        18
    vlean  
    OP
       2017-09-19 16:44:34 +08:00
    @huage 现在在参考的有两本书 然后对里面的内容缩减了下 做成类似知识点手册的了
    fangbei
        19
    fangbei  
       2017-09-19 16:59:58 +08:00
    挺好的,这样边整理边写,也能增强自己的逻辑和叙事能力。即使有其他资料,我觉得你写出来也肯定与其他人的不一样,因为每个人的逻辑能力和描述能力都不同。
    前面 depress 的方法就挺好,入门新手就应该一步一步(不要嫌麻烦)详细列出来。
    xiandao7997
        20
    xiandao7997  
       2017-09-19 17:24:13 +08:00
    粗略看了下 一开始没讲怎么进入 vba 开发环境?一般对于初学者来说先有环境才能继续在上面折腾。。
    vlean
        21
    vlean  
    OP
       2017-09-19 17:53:39 +08:00
    @fangbei 好的,涉及到操作,写法上的细节 还是得用视频或动图 文本格式的对细节描述的过多感觉有些冗余
    vlean
        22
    vlean  
    OP
       2017-09-19 17:54:42 +08:00
    @xiandao7997 恩 那写完界面说明之后 把这章放前面 就可以了
    dsg005
        23
    dsg005  
       2017-09-19 17:55:05 +08:00
    是雅正
    vlean
        24
    vlean  
    OP
       2017-09-19 18:30:00 +08:00
    @dsg005 😁 debug
    happy8109
        25
    happy8109  
       2017-09-19 22:59:18 +08:00
    更想看 Word VBA,excel VBA 网上手册教程比较多,但关于 Word 的确很少
    vlean
        26
    vlean  
    OP
       2017-09-20 09:48:15 +08:00
    @happy8109 office vba 的基础语法差不多
    应该不会写 word vba 的 不过可以参考下 MSDN 的官方文档
    [office VBA]( https://msdn.microsoft.com/zh-cn/library/office/ff604039(v=office.14).aspx)

    [word vba 参考]( https://msdn.microsoft.com/ZH-CN/library/office/ee861527.aspx)
    Mavious
        27
    Mavious  
       2017-09-20 15:08:53 +08:00   ❤️ 1
    嗯,作为一个非程序猿,写过 vbs,写过极其简单的 py,十分赞同 @depress 的回答。
    别的不说,就以我的立场来谈谈非程序猿遇到问题的时候,是怎么思考的吧。

    非程序猿为什么要写代码?还不是强需求造成的。
    我不太可能去读基础知识,但是我要解决目前的困难呀。

    于是我先百度一堆能解决类似需求的代码,然后努力读懂它。
    读懂了再改造成我要的样子。

    如果我的需求很难很难,我不会自己研究了,直接聘一个专业的来写。
    艰深的东西不是非程序猿需要的。

    遇到困难,我一般直接百度:
    if __name__ == '__main__'毛意思?能不能删了?
    为什么有的函数后面是个空括号“()”,有的括号里有内容?
    这行代码要加在哪一行呢?不小心放错了位置就死循环了。
    数组毛意思?能解决我遇到的分割问题吗?
    list index out of range 报错咋解决?
    用 py 打开网页怎么写?
    发出警报声怎么写?
    如何遇到网络错误就原地复活,而不是自动自发的挂了?
    如何 print 当前时间?
    只选定数字的正则怎么写?(速速翻阅巨硬的语法手册就知道啦)

    我查 requests 模块的文档时,我只是想知道 timeout 会不会影响程序运行时间,而不是从头读起。
    所以,丰富的实例(尤其是恰好能套入我需求的实例);用简单易读的语言描述这句话到底能实现啥(不是解释这句代码的前世今生)。才是非程序猿需要读的内容。
    vlean
        28
    vlean  
    OP
       2017-09-20 17:34:11 +08:00
    @Mavious 恩 起初准备写这份文档 也是给某个人准备的
    正在问她更需要哪些方面
    之后准备将这些加入到示例说明里


    所以现在要做的是一个速查各个知识点的手册,一个更丰富适合新手的示例了
    wisefree
        29
    wisefree  
       2017-11-12 16:00:05 +08:00
    so good!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:50 · PVG 03:50 · LAX 11:50 · JFK 14:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.