Показать полную графическую версию : Запрет распечатки рабочей книги
Quaker_75
15-03-2012, 14:16
Доброго всем,
Люди как мне запретить распечатку целой группы рабочих книг в Excel 2003... VBA код не подходит, поскольку его необходимо вводить в несколько книг, а это неудобно...
Поясню - определенной группе пользователей необходимо разрешить только просмотр книги без возможности ее распечатки.... И применить эту возможность одновременно к нескольким книгам.
Заранее благодарю за ответ
Файл - > Разрешения -> и управляйте как хотите.
Но. Необходимо подключение к Интернет и наличие учетной записи LiveID
Quaker_75
15-03-2012, 15:30
А проще варианта нет без учетки? Дело в том, что потом мне придется решать различные проблемы с ней... публика, для которой это предназначена явно не в теме....
Можно как-то решить вопрос исключительно локальными методами? :) Разрешения пытался, выставлял определенной группе права только на чтение, все равно распечатка идет
Quaker_75
15-03-2012, 18:25
Поставлю вопрос иначе, вернее несколько модифицирую его ))), есть возможность реализовать данное ограничение посредством кода VBA, но неудобство данного метода в том, что эту операцию можно выполнить только над одной книгой... у меня, как уже упоминалось, их 120... Вопрос -
есть ли возможность пакетной вставки строки кода в несколько книг? Скажем, сгруппировать каким-то образом книги и прописать одновременно?
Код в модуле или Private sub?
Quaker_75
15-03-2012, 18:45
В данном случае для меня это не столь актуально, т.е куда вставлять код можно в один из двух... Меня больше интересует, как это сделать для нескольких книг одновременно?
Можете ваш код сохранить как шаблон или надстройку.
для меня это не столь актуально »
а для меня - да, варианты-то разные.
Quaker_75
15-03-2012, 20:47
а для меня - да, варианты-то разные. » - Согласен с вами....
Но - шаблон или надстройка врядли подойдут, поскольку захватят и новые книги... а мне нужно органичиться исключительно теми... 120ью...
Или я чего то не понял? с шаблоном/надстройкой?
Отработали с нужными книгами, заменили шаблон на стандартный, а надстройку отключили. ИМХО, так.
Quaker_75
15-03-2012, 21:23
Этот вариант я рассмотрел, мне нужно постоянно... Отработал и забыл тут не подходит.... А можно определить область печати и на нее наложить пароль? или что-то подобное....
:dont-know
Не встречался с такой возможностью
есть ли возможность пакетной вставки строки кода в несколько книг? »
Временно разрешите доступ к проектам VBE групповой политикой:
http://img805.imageshack.us/img805/5213/image000e.png
Соберите в текстовый файл пути к потребным файлам рабочих книг в виде:
E:\Песочница\0127\Книга1.xls
E:\Песочница\0127\Книга2.xls
…
C:\bla-bla-bla\КнигаNN.xls
Затем исполните следующий WSH-код:
Option Explicit
Const vbext_pk_Proc = 0
Dim strFileList
Dim objFSO
Dim strFile
Dim objExcel
Dim strProcLine
If WScript.Arguments.Count = 1 Then
strFileList = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strFileList) Then
Set objExcel = WScript.CreateObject("Excel.Application")
With objFSO.OpenTextFile(strFileList)
Do Until .AtEndOfStream
strFile = .ReadLine()
If objFSO.FileExists(strFile) Then
If UCase(objFSO.GetExtensionName(strFile)) = UCase("xls") Then
WScript.Echo strFile
With objExcel.Workbooks.Open(strFile)
With .VBProject.VBComponents.Item(.CodeName).CodeModule
strProcLine = 0
On Error Resume Next
strProcLine = .ProcBodyLine("Workbook_BeforePrint", vbext_pk_Proc)
On Error Goto 0
If strProcLine = 0 Then
strProcLine = .CreateEventProc("BeforePrint", "Workbook")
.ReplaceLine strProcLine + 1, vbTab & "Cancel = True"
Else
WScript.Echo " Already has a [Workbook_BeforePrint] procedure at line " & CStr(strProcLine)
End If
End With
.Save
.Close
End With
Else
WScript.Echo "File [" & strFile & "] probably is not a Excel Workbook"
End If
Else
WScript.Echo "File [" & strFile & "] not found"
End If
Loop
.Close
End With
objExcel.Quit
Set objExcel = Nothing
Else
WScript.Echo "File List [" & strFileList & "] not found"
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptFullName & """ ""<Path to File List>"""
End If
WScript.Quit 0
указав в качестве аргумента скрипта путь к этому текстовому файлу.
Удалите заданную политику или верните предыдущее значение политики.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd.