Sure, as a matter of fact I did it the other day. Here's an example that you can call in the Open event:
<font face=Tahoma><SPAN style="color:#00007F">Sub</SPAN> SetAsReadOnly()
<SPAN style="color:#007F00">' Test for PC User Name</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> strUser <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
strUser = Environ("USERNAME")
<SPAN style="color:#007F00">' MsgBox strUser</SPAN>
<SPAN style="color:#007F00">' Set Read only File Access for each Office's specific version</SPAN>
<SPAN style="color:#00007F">Select</SPAN> <SPAN style="color:#00007F">Case</SPAN> strUser
<SPAN style="color:#007F00">' Full Workbook Access</SPAN>
<SPAN style="color:#00007F">Case</SPAN> <SPAN style="color:#00007F">Is</SPAN> = "YourUserName", "AnotherUser"
<SPAN style="color:#00007F">If</SPAN> ActiveWorkbook.ReadOnly Then _
ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, WritePassword:="admin"
<SPAN style="color:#007F00">' Limit Access</SPAN>
<SPAN style="color:#00007F">Case</SPAN> <SPAN style="color:#00007F">Is</SPAN> <> "YourUserName"
<SPAN style="color:#00007F">If</SPAN> <SPAN style="color:#00007F">Not</SPAN> ActiveWorkbook.ReadOnly Then _
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly, WritePassword:="admin"
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Select</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></FONT>
For a small set of users you can code the names directy, for a larger set you can key on the prefix of the pc name depending on your network setup. I.E. I can key off of different office designations in the pc name, like SJSN01 (San Jose) or RCSN01 (Rancho Cordova).
HTH,
Smitty