ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: kevinchengcw

[分享] 抛砖引玉,VBA编写的简单VBA程序解释器,期待您的进一步完善与改进(最新:进化5)

    [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-18 10:08 | 显示全部楼层
原帖由 zm0115 于 2010-3-18 08:29 发表
楼主这么快就整出来了?好记得前几天还在您那个设想的帖子里面才留过言。
谢谢分享


的确意外,我最初以为要写一个月呢,不过最近几次的经验告诉我,如果有思路的话,很多东西写起来没有想象的那么困难,只是在最后的完善阶段反而耗时最长

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-18 11:04 | 显示全部楼层
谢谢楼主的无私精神,向楼主致敬!

TA的精华主题

TA的得分主题

发表于 2010-3-18 11:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢楼主,我等的福音啊

TA的精华主题

TA的得分主题

发表于 2010-3-18 11:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好,对我有帮助

TA的精华主题

TA的得分主题

发表于 2010-3-18 12:04 | 显示全部楼层
大家一致都是高调的赞美。
我来挑几个刺,希望不要介意啊……

  1. Option Explicit    '强制定义变量(如果有本句存于开始,则所有变量需定义)
  2.     '
  3. Private Declare Function SetFocusAPI Lib "user32.dll" Alias "SetFocus" (ByVal hWnd As Long) As Long    '私有的Declare函数SetFocusAPILib"user32.dll"Alias"SetFocus"(变量hWnd类型为长整型值)类型为长整型值
  4. Private Declare Function CreateWindowEx Lib "user32.dll" Alias "CreateWindowExW" (ByVal dwExStyle As Long, lpClassName As Any, lpWindowName As Any, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, ByRef lpParam As Any) As Long
  5. Private Declare Function CreateFont Lib "gdi32.dll" Alias "CreateFontW" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, F As Any) As Long
  6. Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hWnd As Long) As Long    '私有的Declare函数DestroyWindowLib"user32.dll"(变量hWnd类型为长整型值)类型为长整型值
  7. Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long    '私有的Declare函数SendMessageLib"user32.dll"Alias"SendMessageW"(变量hWnd类型为长整型值,变量wMsg类型为长整型值,变量wParam类型为长整型值,ByReflParam类型为Any)类型为长整型值
  8. Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long    '私有的Declare函数ShowWindowLib"user32.dll"(变量hWnd类型为长整型值,变量nCmdShow类型为长整型值)类型为长整型值
复制代码
上面的代码翻译后只有第一条是有意义的解释,其它的让人看了只能是一头雾水……

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-18 12:11 | 显示全部楼层
原帖由 joforn 于 2010-3-18 12:04 发表
大家一致都是高调的赞美。
我来挑几个刺,希望不要介意啊……
Option Explicit    '强制定义变量(如果有本句存于开始,则所有变量需定义)
    '
Private Declare Function SetFocusAPI Lib "user32.dll" A ...


说的没错,对API调用这一块也没有加进来,还包括正则,SQL等这些高级应用的,说真的,我也不会,所以没办法写出来,不知有没有人肯帮忙

[ 本帖最后由 kevinchengcw 于 2010-3-18 12:42 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-3-18 12:13 | 显示全部楼层
Private Sub Class_Initialize()    '私有的子程序Class_Initialize()
  Dim byteT() As Byte    '定义变量byteT()类型为Byte 基本上没有意义
    '
  mvarWidth = 65    ' mvarWidth=65 这种情况下不翻译也行
  mvarHeight = 28    ' mvarHeight=28
  mvarCaption = "Button"    ' mvarCaption="Button"
  mvarVisible = SW_SHOW    ' mvarVisible=SW_SHOW
  byteT = "Tahoma" & vbNullChar    'byteT="Tahoma" & vbNullChar
  mFonthWnd = CreateFont(15, 0, 0, 0, FW_REGULAR, 0, 0, 0, DEFAULT_CHARSET, _    ' mFonthWnd=CreateFont(15,0,0,0,FW_REGULAR,0,0,0,默认值_CHARSET,_
            OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, _    'OUT_默认值_PRECIS,CLIP_默认值_PRECIS,默认值_QUALITY,_
            DEFAULT_PITCH Or FF_DONTCARE, byteT(0))    '默认值_PITCH或者FF_DONTCARE, byteT(0)) 估计是DeFAULT这个词造成的,结果翻译成了天书
  Erase byteT    'ErasebyteT 这句翻译有问题,其意思应该是销毁ByteT数组
End Sub    '子程序结束

上面测试的是声明部分,这一段是代码部分,看来还是有许多关键字没有正确的翻译。加颜色部分是我加的说明……

TA的精华主题

TA的得分主题

发表于 2010-3-18 12:45 | 显示全部楼层
谢谢楼主的奉献,得益非浅。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-18 13:31 | 显示全部楼层
原帖由 joforn 于 2010-3-18 12:13 发表

上面测试的是声明部分,这一段是代码部分,看来还是有许多关键字没有正确的翻译。加颜色部分是我加的说明……


未翻译是因为没有相应的关键字词条在查询库中,如果加入就可以翻译了,我所收集的是个人使用范围内的词条,所以期待各位来扩大查询库的词汇量,说真的,您列的这些都是我未使用过的,我也翻译不出来具体的意思,所以不敢误人子弟

本程序适合辅助初接触VBA的人学习VBA,但因本人能力有限对高级别的没用过,所以有赖各位帮忙了

TA的精华主题

TA的得分主题

发表于 2010-3-18 13:57 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 11:41 , Processed in 0.044831 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表