I don't know of a viewer like that which would allow you to do data
entry, but here's one that's strictly "viewer":
http://www.microsoft.com/downloads/...f4-996c-4569-b547-75edbd03aaf0&displaylang=EN
If the user does have Excel installed, you can use macros and cell
protection to lock it down. Here's an example of something I call in
Workbook_Open and Workbook_BeforeClose events. It makes a list of all
command bars and controls in a separate, hidden sheet. Then, it hides
and disables each one. It also disables basic cut/copy/paste
functionality. It provides the Ctrl+9 keyboard shortcut to "unlock"
the excel environment when necessary.
Public Sub LockdownExcel()
Dim objTemp As Object
Dim cbBar As CommandBar
Dim ctrl As CommandBarControl
Dim cbarCount As Integer
Dim ctrlCount As Integer
'disable keys and change settings
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.Visible = False
.OnKey "^X", ""
.OnKey "^x", ""
.OnKey "^C", ""
.OnKey "^c", ""
.OnKey "^V", ""
.OnKey "^v", ""
.OnKey "^9", "ThisWorkbook.UnlockExcel"
.CutCopyMode = False
.DisplayStatusBar = False
.DisplayFormulaBar = False
.IgnoreRemoteRequests = True
.ActiveWindow.DisplayHeadings = False
.ActiveWindow.DisplayWorkbookTabs = False
.WindowState = xlMaximized
.ActiveWindow.WindowState = xlMaximized
.EnableEvents = False
.CommandBars.DisableAskAQuestionDropdown = True
.CommandBars.DisableCustomize = True
cbarCount = 0
On Error Resume Next
For Each cbBar In .CommandBars
If cbBar.Visible Then
cbarCount = cbarCount + 1
Worksheets("CommandBars").Cells(cbarCount, 1).Value =
cbBar.Name
cbBar.Visible = False
cbBar.Enabled = False
End If
Next cbBar
ctrlCount = 0
For Each ctrl In .CommandBars.ActiveMenuBar.Controls
If ctrl.Visible Then
ctrlCount = ctrlCount + 1
Worksheets("CommandBars").Cells(ctrlCount, 3).Value =
ctrl.Index
ctrl.Visible = False
ctrl.Enabled = False
End If
Next ctrl
On Error GoTo 0
.DisplayAlerts = True
.ScreenUpdating = True
.Visible = True
.EnableEvents = True
End With
excelLocked = True
End Sub
Public Sub UnlockExcel()
Dim cbBar As CommandBar
Dim cbarCount As Integer, cbarTotal As Integer
Dim ctrl As Control
Dim ctrlCount As Integer, ctrlTotal As Integer
'restore command bars
With Worksheets("CommandBars")
cbarTotal = CInt(.Cells(1, 2).Value)
ctrlTotal = CInt(.Cells(1, 4).Value)
On Error Resume Next
For ctrlCount = 1 To ctrlTotal
Application.CommandBars.ActiveMenuBar.Controls(.Cells(ctrlCount,
3).Value).Enabled = True
Application.CommandBars.ActiveMenuBar.Controls(.Cells(ctrlCount,
3).Value).Visible = True
.Cells(ctrlCount, 3).Value = ""
Next ctrlCount
For cbarCount = 1 To cbarTotal
Application.CommandBars(.Cells(cbarCount,
1).Value).Enabled = True
Application.CommandBars(.Cells(cbarCount,
1).Value).Visible = True
.Cells(cbarCount, 1).Value = ""
Next cbarCount
On Error GoTo 0
End With
'restore shortcut keys and other settings
With Application
.CommandBars.DisableAskAQuestionDropdown = False
.CommandBars.DisableCustomize = False
.OnKey "^X"
.OnKey "^x"
.OnKey "^C"
.OnKey "^c"
.OnKey "^V"
.OnKey "^v"
.OnKey "^9", "ThisWorkbook.LockdownExcel"
.CutCopyMode = xlCopy
.DisplayStatusBar = True
.DisplayFormulaBar = True
.IgnoreRemoteRequests = False
.ActiveWindow.DisplayHeadings = True
.ActiveWindow.DisplayWorkbookTabs = True
End With
excelLocked = False
End Sub