ByVal – означает по конкретному значению (в контексте определённая переменная); ByRef - по ссылке (адресу) в памяти на место где размещается конкретное значение.
ByVal vs ByRef
Private Sub - приватная процедура, её вызов возможен только из текущего модуля (vb файла)
Sub - процедура, вызывается на определённое событие
Function - тоже что и процедура, но обязана явно возвращать значение (ключевое слово Return)
Private Function - тоже что и
Private Sub с той лишь разницей что есть явный возврат значения.
Declared Elements in Visual Basic
http://www.intuit.ru/department/office/vba2000/6/ для VBA правда но определения подходят даже к VB.NET