View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson[_3_] Dave Peterson[_3_] is offline
external usenet poster
 
Posts: 2,824
Default Determining Office Version

I've lost the original post in this thread, but you could check the
application.version to see what version of excel you're running:

Option Explicit
Sub test()
If CDbl(Application.Version) = 10 Then
Call SubToDisableCustomize
Else
'do your earlier version stuff
End If
End Sub

Then in a module that contains nothing but these lines:

Option Explicit
Sub SubToDisableCustomize()
Application.CommandBars.DisableCustomize = True
End Sub

The second module won't compile in earlier versions of excel, but it won't be
run either--so it doesn't need to.

And Peter Beach had a neat idea to use late binding to a similar question:
http://groups.google.com/groups?thre...40TK2MSFTNGP12

Sub a()
Dim o As Object

Set o = Application

On Error Resume Next
o.CommandBars.DisableAskAQuestionDropdown = True
If Err.Number = 0 Then
MsgBox "2002"
Else
MsgBox "not 2002"
End If
End Sub


=====
You would change that to
o.commandbars.disablecustomize = true





Jim Gross wrote:

I guess I'm out of luck too?

I have found that there are two different strategies needed to disable Excel's built-in menu/toolbar buttons depending upon Excel version. In Excel 2002, the property CommandBars.DisableCustomize must be used to prevent re-enabling the buttons through customization, thanks to changes including the new Toolbar Options feature and loss of the "Well" command bars in xlVBA. CommandBars.DisableCustomize does not exist in earlier versions (Excel 2000) and a different strategy is needed to accomplish the same result.

Unfortunately the Excel 2000 VBA compiler barfs when it sees CommandBars.DisableCustomize. Conversely (and perhaps worse), using the code that works in 2000 leaves a gaping back door open in 2002. There appears to be no way to identify the Excel or Office version in conditional compilation directives to prevent this.

Or have I missed something?

Thanks.

Jim


--

Dave Peterson