我正在尝试为我的VBA项目构建自己的Obfuscation加载项。
我从更简单的任务开始:
我可以弄清楚如何做这些事情,也许不是最好的方式,但我坚持:
我想让它适用于不同类型的分隔符,现在我只使用“=”信号。顺便说一句,当我在行中有多个分隔符时我遇到了问题(例如:如果bla =“abc”或ble =“acd”)。该代码导致我的行中的incorrects拆分。
Sub VBE_Break_The_Lines()
Dim VBC As VBComponent
Dim a, i, j, lCount As Long
Dim str As String
Dim temp As Variant
lCount = 0
i = 1
Dim blnStringMode, blnLineContinue As Boolean
For Each VBC In VBProjToClean.VBComponents
blnStringMode = False
i = 1
With VBC.CodeModule
Do Until i > .CountOfLines
If Not .ProcOfLine(i, vbext_pk_Proc) = "VBE_Remove_Comments" Then
str = .Lines(i, 1)
End If
If InStr(1, str, " = ", vbTextCompare) > 0 Then
temp = Split(str, " = ")
.InsertLines i, ""
.ReplaceLine i, temp(0) & " _"
.InsertLines i + 1, "= " & temp(1)
.DeleteLines i + 2
lCount = lCount + 1
'a = InStr(1, str, "=", vbTextCompare)
i = i + 1
End If
i = i + 1
Loop
End With
Next
MsgBox lCount & " LINES BREAKED ( = )", , strFileToClean
End Sub
我的下一步将是更改程序/变量名称,但不确定REGEX是否应该是最佳方式,我只是阅读了很多,但还不确定。
希望你们能给我一个关注的方法
答案 0 :(得分:0)
为什么不从this开源代码开始并从中创建一个新版本而不是重新发明轮子?
您需要将代码中的所有文件扩展名从.xls
更改为.xlsm
,将IB_test.xls工作簿保存为启用宏的工作簿,并将插件另存为.xlam
,没有.xla
使这项工作,但即使代码是9年,它仍然可以在Excel 2013中使用。
答案 1 :(得分:0)
如果您对VBA感到困惑,则可以尝试使用VBASH(www.ayedeal.com/vbash)。这是非常简单和强大的。