In questo tutorial, spiegherò come associare un'estensione di files a un programma in modo da far aprire quel tipo di files sempre con quel programma, il tutto tramite Visual Basic e il Registry Editor.
Allora, innanzitutto apriamo un modulo e dichiariamo alcune costanti e funzioni che ci permettono di accedere al regedit, ovvero:
Private Const MAX_PATH = 256& 
Private Const HKEY_CLASSES_ROOT = &H80000000 
Private Const REG_SZ = 1& 
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long 

Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long 

Poi creaimo una sub:
Public Sub Main() 
Dim sKeyName As String, sKeyValue As String, RetVal As Long, _ 
phkResult As Long 
sKeyName = 'Qui mettiamo il nome del programma 
sKeyValue = 'Qui scriviamo ad esempio Files nome programma 
RetVal = RegCreateKey(HKEY_CLASSES_ROOT, sKeyName, phkResult) 
RetVal = RegSetValue(phkResult, "", REG_SZ, sKeyValue, 0&) 
sKeyName = 'Qui scriviamo l'estensione di file preceduta _ naturalmente dalle virgolette e dal punto 
sKeyValue = 'Qui scriviamo il nome del programma 
RetVal = RegCreateKey(HKEY_CLASSES_ROOT, sKeyName, phkResult) 
RetVal = RegSetValue(phkResult, "", REG_SZ, sKeyValue, 0&) 
sKeyName = 'Qui scriviamo il nome del programma 
sKeyValue = 'Qui scriviamo il percorso del programma _ preceduto dalle virgolette e seguito da uno spazio e da _   %1" 
RetVal = RegCreateKey(HKEY_CLASSES_ROOT, sKeyName, phkResult) 
RetVal = RegSetValue(phkResult, "shell\open\command", _ 
REG_SZ, sKeyValue, MAX_PATH) 
End Sub 

Non ci resta che chiamare la sub, ad esempio con un CommandButton:
Private Sub Command1_Click() 
Call Main 
End Sub