Revisa la siguiente propuesta:
Para proteger la hoja y bloquear las columnas "E", "I"
La hoja se protege con el password "admin"
Sub Proteger()
Dim pass As String
'
pass = "admin"
'
ActiveSheet.Unprotect pass
With Range("E:E, I:I")
.Locked = True
.FormulaHidden = True
.Interior.Pattern = xlNone
.Font.Color = vbWhite
End With
ActiveSheet.Protect pass, DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Ahora, para mostrar únicamente el contenido de las columnas, pero la hoja seguirá protegida, solamente podrán ver las columnas.
La contraseña para mostrar las columnas es: "abc"
Sub Mostrar_columnas()
Dim clave As String
Dim pass As String
'
pass = "admin"
'
Do While True
clave = InputBox("Captura contraseña : ", "HOJA PROTEGIDA")
If StrPtr(clave) = 0 Then
MsgBox "Cancelado"
Exit Sub
ElseIf Len(clave) = 0 Then
MsgBox "Captura un valor"
Else
If clave = "abc" Then
Exit Do
End If
End If
Loop
'
ActiveSheet.Unprotect pass
With Range("E:E, I:I")
.Font.Color = vbBlack
End With
ActiveSheet.Protect pass, DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Si quieres modificar las columnas, simplemente desprotege la hoja con el password "admin" y podrás editar las columnas.