Not sure about locking columns but for the other two try this
Code:
Private Sub Command1_Click()
Dim i As Integer
Dim iColumnCount As Integer
Dim sRowText As String
'Check if a row is selected
If Not ListView1.SelectedItem Is Nothing Then
'Subtract 1 because first column is the text field
iColumnCount = ListView1.ColumnHeaders.Count - 1
sRowText = ListView1.SelectedItem.Text
'Get data from each subitem
For i = 1 To iColumnCount
sRowText = sRowText & ListView1.SelectedItem.SubItems(i)
Next i
MsgBox "Text in select row: " & sRowText
Else
MsgBox "No row selected"
End If
End Sub