Put this into your ThisWorkbook module (Alt + F11, 2x click ThisWorkbook)...
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWindow.DisplayHeadings = True
End Sub
Private Sub Workbook_Open()
ActiveWindow.DisplayHeadings = False
End Sub
As for your named range box width, this is from Chip Pearson's site...
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Sub WidenNameBoxDrop2()
Dim Res As Long
Const CB_SETDROPPEDWIDTH = &H160
Const cWidth = 400
Res = SendMessage( _
FindWindowEx( _
FindWindowEx( _
FindWindow("XLMAIN", Application.Caption) _
, 0, "EXCEL;", vbNullString) _
, 0, "combobox", vbNullString), _
CB_SETDROPPEDWIDTH, cWidth, 0)
End Sub
This routine can be found at: http://www.cpearson.com/excel/NameBox.htm
HTH