Modulo 11 is a method to calculate checksums or verification digits to numeric data. Its used extensively throughout the world in cases such as bankaccount numbers, creditcard numbers, ISBN numbers and the like. The basic idea is not as much encryption or something similar, but more a protection against human errors. By calculating and verifying the checksum you can quickly detect cases like changing a single digit, switching digits, missing a digit, etc. By verifying a number as early as possible, you can decrease the amount of rubish entering a business process, and hence ease operations.
Here’s some code that I’m pretty proud of, its a nifty piece of code that allows to store any kind of data in a simple textbased container. It uses a custom Base64 encoding to store integers, floats, strings, booleans or blobs in a text block and adds some CRC checks and even some repair capabilities.
In VBA you may occasionally want to store some settings outside of the document. The registry is one way, but I often try to keep it in INI files as automated documents get spread through email easily, but usually do not get ‘uninstalled’ hence the settings will never be cleaned up. I’d rather leave an orphaned file than polute the registry. Other advantages are that its easier to support because a user can email them, or its easier to edit by a user.
I found events in microsoft outlook to be unreliable. If a modal dialog box is open (eg. MsgBox or InputBox) or a piece of code takes to long to complete, events in the background will be cancelled. This class tries to catch the Add and Change events of a folder but will also check, after handling an item, if additional changes have occured and will then handle those subsequentially. Continue reading
While working with Outlook VBA macros, I couldn’t find anything that would properly handle keywords, especially with the “list separation” character handled properly for different locales. Hence I created this code. Maybe its useful for someone else as well. Have fun with it. Continue reading