去评论
距米网-精简版

【实用技巧】如何把VBA代码转换成.Net/iLogic

JUMU
2019/11/02 23:04:38
大部分时候,我们是在 VBA 里面写自动化设计的示例代码,原因如下:

我们在 VBA 里面完成代码工作以后,想要在 iLogic 或者 .Net 环境里面运行代码,此时,就需要把 VBA 的代码的转换。
不做转换会有什么情况发生呢?让我们来试试看。
如下是一段 VBA 代码,如果直接在 iLogic 环境里运行:

  1. Sub MySubMethod()

问题 1:需要 Sub Main()

解决办法:如果我们有多个方法,第一个方法应该是程序最先被执行的地方,这个方法需要命名为 Sub Main()。

在上面这段代码里面,我们需要把 Sub MyMainMethod 移到最上面,然后改名为 Sub Main()

问题 2没有 Let/Set
解决办法:我们需要从代码里把“Set” 关键字删除掉。

最后得到如下代码:
Sub Main() ' Do something ' Then call another method
Call MySubMethod
End Sub

Sub MySubMethod()
Dim doc As Document doc = ThisApplication.ActiveDocument
Call MsgBox(doc.DisplayName)
End Sub

还有一点,也许不是必要的,但我觉得可以值得一试的是,把On Error Resume Next改成Try/Catch.
比如这段代码:
On Error Resume NextDim doc As PartDocumentdoc = ThisApplication.ActiveDocument
If Err.Number = 0 Then
Call MsgBox(doc.DisplayName)
Else
Call MsgBox("No active part document")
End If
On Error Goto 0

我们可以切换成这样:
Dim doc As PartDocument
Try doc = ThisApplication.ActiveDocument
Call MsgBox(doc.DisplayName)
Catch Call MsgBox("No active part document")
End Try请点这里↓↓↓