Right now trying to implement a VBA module in Excel 2011 for Mac I found through the interwebs. The following module fails on the third line where you see As String
:
Option Explicit
Public Function MD5Hash( _
ByVal strText As String) _
As String
' Create and return MD5 signature from strText.
' Signature has a length of 32 characters.
'
' 2005-11-21. Cactus Data ApS, CPH.
Dim cMD5 As New clsMD5
Dim strSignature As String
' Calculate MD5 hash.
strSignature = cMD5.MD5(strText)
' Return MD5 signature.
MD5Hash = strSignature
Set cMD5 = Nothing
End Function
Public Function IsMD5( _
ByVal strText As String, _
ByVal strMD5 As String) _
As Boolean
' Checks if strMD5 is the MD5 signature of strText.
' Returns True if they match.
' Note: strText is case sensitive while strMD5 is not.
'
' 2005-11-21. Cactus Data ApS, CPH.
Dim booMatch As Boolean
booMatch = (StrComp(strMD5, MD5Hash(strText), vbTextCompare) = 0)
IsMD5 = booMatch
End Function
Hopefully someone can help chime in, since this is my first time playing with VBA. Appreciate the help!
Update
The error message text:
User-defined type not defined
I figured out the problem, looks like my lack of knowledge of the interface with VBA. Turns out my Class Module
was not named properly. I ended up rebuilding the module from scratch and VBA was able to give me a different error on a different line, pointing to a reference to clsMD5
. Here's how I fixed it:
1) Open the VBA "window" by pressing alt+F11
2) Use the "Properties" window to edit the name of the class module, in the problem above I needed to change the name to clsMD5