A ver, dado que esto es algo ad honorem en el que cada uno da el poco tiempo libre para ayudar, pues no, no puedo dejarte ejemplos de cada uno pero sí al menos uno.
Vamos a suponer que usarás la serie de la partición "C", entonces coloca esto en un módulo estándar:
Sub SerieParticion()
Dim fs As Object
Dim Particion As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set Particion = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName("C:")))
Debug.Print "Serie de la partición elegida: " & Particion.SerialNumber
End Sub
Activa la macro y en la "Ventana inmediato" tendrás algo como esto:
Serie de la partición elegida: -929264211
Anota/copia el número (es normal si aparece como negativo, por si acaso). Borra la macro.
Luego usa el evento Open del libro así (en el módulo llamado "ThisWorkBook" - nombre por defecto):
Private Sub Workbook_Open()
Dim fs As Object
Dim Particion As Object
Dim serie As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set Particion = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName("C:")))
Let serie = Particion.SerialNumber
If serie <> "-929264211" Then
MsgBox "No estás autorizado a usar el archivo"
ActiveWorkbook.Close False
Exit Sub
End If
End Sub
Listo
Abraham Valencia