Visual Basic for Applications

From Wikibooks, open books for an open world
Jump to navigation Jump to search


This set of pages is intended for those who have an existing interest in VBA coding. It provides working code that the author himself finds of interest. Many of the procedures have good generality, for example, code for logging data, returning a file address, hashing, and others.

In most cases the code of each page can be copied into a standard VBA Excel module, though in many cases will work in other Office applications, with or without slight modification.

VBA Editor Settings[edit]

Because users' computers vary as to the Windows applications installed, it might be helpful to know which References have been set in the Tools menu of the authors' VBA editors. Authors who add to the work should update any of theirs to the list. These currently include:

  • Visual Basic for Applications
  • Microsoft Excel 14.0 Object Library
  • Microsoft Office 14.0 Object Library
  • OLE Automation
  • Visual Basic for Applications Extensibility 5.3
  • mscorlib.dll
  • Microsoft Scripting Runtime
  • Microsoft Forms 2.0 Object Library
  • Microsoft Speech Object Library

In addition, it has been found most useful to set the ShowModal property of userforms to False. This allows the testing of code when the userform is still open, for example to step through the code line by line. This also allows keyboard interaction with the worksheet without closing the form.

Selecting Long Listings[edit]

Some code listings or data sets can be very long on a web page. As such, just selecting the intended text can be quite time consuming. Most browsers however have a way to select all of a page's text right up to the end.

  • Microsoft Edge and Firefox have right context menus with Select All. After selection, use copy to get the whole page. It is then an easier task to trim the pasted selection to its essential parts.
  • Opera Browser has no right context function for Select All . Instead, use the key combination Ctrl+A.

Interest Areas[edit]

The following pages are offered as a starting point to get things going. Contributors are invited to edit and add to these pages, and to add new ones. I hope to fill in a bit more of the textual descriptions in the near future.

Arrays (1D) for Characters[edit]

Arrays (2D)[edit]



Codes and Ciphers[edit]

Error Handling[edit]

Files and Folders[edit]

Fonts and Formats[edit]


Hashing Strings and Files[edit]

Logs and Text Files[edit]

Message and Input Boxes[edit]






String and Array Shuffles[edit]

Text Backup and Validation[edit]

Times, Dates, and Waits[edit]

User Forms[edit]

VBA Editor Projects[edit]

Viterbi Project[edit]

Procedures for MS Word[edit]

Worksheet Transfers[edit]

Worksheet Utilities[edit]

ASCII Log Data from LAS File[edit]

Related books[edit]