If you protect the worksheet in code, you can do it:
Option Explicit
Sub auto_open()
With Worksheets("Sheet1")
.Protect Password:="hi", _
DrawingObjects:=False, Contents:=True, Scenarios:=True, _
userinterfaceonly:=True
.EnableAutoFilter = True
End With
End Sub
(The worksheet has to have the dropdown arrows already applied.)
It needs to be reset each time you open the workbook. (excel doesn't remember
it after closing the workbook.)
But there are some things that macros can't do even with
userinterfaceonly:=true. You'd have to unprotect the sheet, do the work and
reprotect the sheet.
(you could use the workbook_open even under ThisWorkbook, too.)
If you're new to macros, you may want to read David McRitchie's intro at:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
That said, worksheet protection is very weak. There's code posted here every
day/week that would unprotect the worksheet.