The macros in this project are disabled что делать excel

1508 / 478 / 56

Регистрация: 10.04.2009

Сообщений: 8,008

1

Макросы в этом проекте отключены

18.08.2020, 09:32. Показов 7866. Ответов 11


Студворк — интернет-сервис помощи студентам

здравствуйте чтобы не получать сообщение
The macros in this project are disabled. Please refer to the online help or documentation of the host apliccation to determine how to enable macros. Макросы в этом проекте отключены. Пожалуйста, обратитесь к справке или документации принимающей apliccation чтобы определить, как разрешить выполнение макросов.
Лечится Сервис Макрос Безопасность Низкая Потом закрыть документ и открыть его снова

Я наивно думал, что если юзеру отдать файл Normal.dotm и он его положит в папку микрософтшаблоны-то у него не будет проблем, не будет этого сообщения, оказалось это не так
вопрос, что нужно сделать ещё чтобы помещения этого файла в нужную папку было достаточно? спс



0



779 / 461 / 79

Регистрация: 18.05.2016

Сообщений: 1,242

Записей в блоге: 4

18.08.2020, 09:42

2

Во-первых подменять Normal.dotm — не очень хорошая идея. В нём могут быть личные макросы или какие-то другие штуки пользователя.
Лучше своё творчество предоставлять в виде надстройки. А вот для её установки мало просто положить её в папку, надо ещё её включить в настройках Но без всех этих манипуляций в итоге не обойтись. Макрософак после многочисленных нападок в свой адрес очень печётся о безопасности и теперь всё везде надо подтверждать и включать. Это хорошо, если политика безопасности не потребует ещё и сертификаты подключать к своим проектам.



1



1508 / 478 / 56

Регистрация: 10.04.2009

Сообщений: 8,008

18.08.2020, 09:58

 [ТС]

3

это понятно, ну а если личных макросов нет у пользователя и пойти по пути подмены Normal.dotm
вопрос, что нужно сделать ещё чтобы помещения этого файла в нужную папку было достаточно? спс



0



КостяФедореев

Часто онлайн

790 / 529 / 237

Регистрация: 09.01.2017

Сообщений: 1,820

18.08.2020, 10:07

4

Ципихович Эндрю,
это для excel, может и в word прокатит

Visual Basic
1
2
3
4
5
6
7
8
9
Sub DeleteFileBlock()
    On Error Resume Next
    Key$ = "HKEY_CURRENT_USERSoftwareMicrosoftOffice14.0ExcelSecurityFileBlock"
    arr = Array("XL2Macros", "XL2Worksheets", "XL3Macros", "XL3Worksheets", _
                "XL4Macros", "XL4Workbooks", "XL4Worksheets")
    For Each Item In arr
        CreateObject("WScript.Shell").RegWrite Key$ & Item, 0, "REG_DWORD"
    Next
End Sub

в процедуру Workbook_Open



1



Ципихович Эндрю

1508 / 478 / 56

Регистрация: 10.04.2009

Сообщений: 8,008

18.08.2020, 10:26

 [ТС]

5

да есть похожее у меня в запасниках, щас нужно вспомнить

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Option Explicit
 
Sub Меняем_доверие_к_проектам_VBA_и_уровень_безопасности_в_Word()
 
Dim i As Integer
Dim objWord As Object
Dim objShell As Object
Dim vatDir As String
Dim vatReturn As Currency
Dim Papka As String
Dim AppWord As Word.Application
 
On Error Resume Next
 
Set objWord = CreateObject("Word.Application")
Set objShell = CreateObject("WScript.Shell")
 
For i = 0 To 50
On Error GoTo 150
vatDir = objShell.RegRead( _
"HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "Path")
 
If vatDir = ThisWorkbook.Path Then Exit For
If i < 0 Then
150 objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "Description", "Назовите сами", "REG_SZ"
    objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "AllowSubfolders", 1, "REG_DWORD"
    objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "Path", ActiveDocument.Path, "REG_SZ"
    'разрешение доступа к сетевым папкам
    objShell.RegWrite _
"HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsAllowNetworkLocations", 1, "REG_DWORD"
Exit For
End If
Next
 
On Error GoTo 200
vatReturn = objShell.RegRead( _
"HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityAccessVBOM")
 
If vatReturn = 0 Then
    'за доверительный доступ к проектам VBA отвечает параметр "AccessVBOM"
200 objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityAccessVBOM", 1, "REG_DWORD"
    'за уровень безопасности отвечает параметр "Level"
    objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityLevel", 1, "REG_DWORD"
    
End If
 
    Set AppWord = New Word.Application
    AppWord.Visible = True
    AppWord.Documents.Open "J:1.doc"
    Word.Application.Quit
 
End Sub

вопрос в том, если поместить в Sub AutoOpen() как же он выполнит, если н доходя до этого сработает зашита

Добавлено через 12 минут
сорри там в строке 23 ошибка, нужно

Visual Basic
1
If vatDir = ActiveDocument.Path Then Exit For



0



779 / 461 / 79

Регистрация: 18.05.2016

Сообщений: 1,242

Записей в блоге: 4

18.08.2020, 10:56

6

Как вы всё это собираетесь делать, если у вас по всему ворду макросы отключены? Может, во внешнем vbs-скрипте это ещё и сработало бы



0



1508 / 478 / 56

Регистрация: 10.04.2009

Сообщений: 8,008

18.08.2020, 11:05

 [ТС]

7

создал Нормал.дотм открыл его, именно в меню выбрал Открыть, сделал процедуру Меняем_доверие_к_проектам_VBA_и_уровень_безопаснос ти_в_Word, раздал Нормал.дотм — будут у пользователя проблемы?



0



779 / 461 / 79

Регистрация: 18.05.2016

Сообщений: 1,242

Записей в блоге: 4

18.08.2020, 11:23

8

Если в настройках ворда в безопасности макросов эти самые макросы отключены, то VBA-кодом из самого ворда вы никакие процедуры по включению макросов не запустите. Попробуйте на своём компе это проделать.
Можно эту процедуру адаптировать в vbs-скрипт и дать пользователю уже ДВА файла. Но проще объяснить ему, какой пункт в настройках включить.
Хотя можно извернуться, и сделать rar-sfx-архив-инсталлятор с этими двумя файлами и командами на копирование нормала и запуска скрипта. Тогда для пользователя это будет всего лишь один exe-шник.
Судя по всему, скрипт только модифицирует реестр. Ну тогда вместо скрипта в архив засунуть reg-файл



0



Ципихович Эндрю

1508 / 478 / 56

Регистрация: 10.04.2009

Сообщений: 8,008

19.08.2020, 10:45

 [ТС]

9

вспомнил, вроде на этом же форуме качал цеэмдэ файл для этого:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
@echo off
:: Macros Access Script by Alex Dragokas
echo.
echo Утилита включения макросов для MS Office 2003-2013
echo.
:ch_Security
echo Введите цифру и нажмите кнопку ENTER:
echo.
echo 1 - Запуск макросов без уведомления.
echo 2 - Запуск макросов с разрешения пользователя.
echo 3 - Запретить запуск неподписанных макросов (не уведомлять).
echo.
set ch=
set /p "ch=Ваш выбор: "
echo.
if "%ch%"=="1" set "MacrosLevel=1"
if "%ch%"=="2" set "MacrosLevel=2"
if "%ch%"=="3" set "MacrosLevel=3"
if "%ch%" neq "1" if "%ch%" neq "2" if "%ch%" neq "3" goto ch_Security
:ch_VBA
echo Хотите включить программный доступ к коду макроса?
echo.
echo 1 - Да. Разрешить.
echo 2 - Нет. Запретить.
echo.
set ch=
set /p "ch=Ваш выбор: "
echo.
if "%ch%"=="1" set "ProjectLevel=1"
if "%ch%"=="2" set "ProjectLevel=0"
if "%ch%" neq "1" if "%ch%" neq "2" goto ch_VBA
 
:: Проверяю, запущен ли хоть один из процессов MS Office
:Check
call :CheckRun || (echo.& echo НЕЛЬЗЯ продолжить. Сначала нужно завершить все офисные приложения.& echo.& pause & echo.& goto Check)
 
For %%k in (
  HKCUSoftwareMicrosoftOffice
  HKCUSoftwareWow6432NodeMicrosoftOffice
) do (
  For /F "tokens=5 delims=" %%a in ('reg query "%%k" 2^>NUL ^| findstr /R "^.*\[0-9].*"') do (
    if "%%a" neq "8.0" (
      if "%%a"=="9.0"  (echo Обнаружен MS Office 2000 & call :EnumApps 2003 "%%a")
      if "%%a"=="10.0" (echo Обнаружен MS Office XP   & call :EnumApps 2003 "%%a")
      if "%%a"=="11.0" (echo Обнаружен MS Office 2003 & call :EnumApps 2003 "%%a")
      if "%%a"=="12.0" (echo Обнаружен MS Office 2007 & call :EnumApps 2007 "%%a")
      if "%%a"=="13.0" (echo Обнаружен MS Office 2010 & call :EnumApps 2007 "%%a")
      if "%%a"=="14.0" (echo Обнаружен MS Office 2010 & call :EnumApps 2007 "%%a")
      if "%%a"=="15.0" (echo Обнаружен MS Office 2013 & call :EnumApps 2007 "%%a")
      if not Defined isChanges (echo Обнаружена неизвестная версия MS Office & call :EnumApps 2007 "%%a")
      echo.
    )
  )
)
pause
exit /B
 
:EnumApps %1-mso.family %2-key.version
  Set "isChanges=true"
  For %%k in (
    HKCUSoftwareMicrosoftOffice%~2
    HKCUSoftwareWow6432NodeMicrosoftOffice%~2
  ) do (
    For /F "tokens=6 delims=" %%a in ('reg query "%%k" 2^>NUL') do (
      if /i "%%a"=="Word" call :ChangeSecurity "%~1" "%~2" "%%a"
      if /i "%%a"=="Excel" call :ChangeSecurity "%~1" "%~2" "%%a"
      if /i "%%a"=="PowerPoint" call :ChangeSecurity "%~1" "%~2" "%%a"
      if /i "%%a"=="Access" call :ChangeSecurity "%~1" "%~2" "%%a"
      if /i "%%a"=="Outlook" call :ChangeSecurity "%~1" "%~2" "%%a"
    )
  )
Exit /B
 
:ChangeSecurity %1-mso.family %2-key.version %3-Application
  echo %~3
  if "%~1"=="2003" reg add "HKCUSoftwareMicrosoftOffice%~2%~3Security" /v Level /t REG_DWORD /d %MacrosLevel% /f
  if "%~1"=="2007" reg add "HKCUSoftwareMicrosoftOffice%~2%~3Security" /v VBAWarnings /t REG_DWORD /d %MacrosLevel% /f
  if /i "%~3" neq "Outlook" if "%~2" neq "9.0" reg add "HKCUSoftwareMicrosoftOffice%~2%~3Security" /v AccessVBOM /t REG_DWORD /d %ProjectLevel% /f
Exit /B
 
:CheckRun
  TASKLIST /FI "imagename eq winword.exe" | find /i "winword.exe" && exit /B 1
  TASKLIST /FI "imagename eq excel.exe" | find /i "excel.exe" && exit /B 1
  TASKLIST /FI "imagename eq powerpnt.exe" | find /i "powerpnt.exe" && exit /B 1
  TASKLIST /FI "imagename eq outlook.exe" | find /i "outlook.exe" && exit /B 1
  TASKLIST /FI "imagename eq msaccess.exe" | find /i "msaccess.exe" && exit /B 1
Exit /B 0

Добавлено через 1 час 35 минут
ну и на сегодняшний день под строкой 49 нужно добавить строку

Windows Batch file
1
if "%%a"=="16.0" (echo Обнаружен MS Office 2016 & call :EnumApps 2007 "%%a")

правда уже есть оффис 2019, кто нибудь может добавить строку для оффиса 2019 и опробовать? спс



0



Эксперт WindowsАвтор FAQ

17992 / 7618 / 890

Регистрация: 25.12.2011

Сообщений: 11,351

Записей в блоге: 17

19.08.2020, 21:45

10

Очень сильно не советую так делать для озвученных целей. Пошифруете к хренам всё у юзера. Сейчас как раз гуляет эта зараза в виде имейл от подставных адресатов с макросами в аттаче. С отключенной защитой наломаете дров. Еще и мое имя в скрипте.

По нормальному это делается — покупается сертификат, и ним подписывается документ. Выставляется настройка — доверять подписанным макросам. Либо как вариант (без покупки) выпускаете само-подписанный серт, импортируете в корневое хранилище. Сам так не пробовал, но должно проканать.



0



1508 / 478 / 56

Регистрация: 10.04.2009

Сообщений: 8,008

20.08.2020, 08:53

 [ТС]

11

Цитата
Сообщение от Dragokas
Посмотреть сообщение

Еще и мое имя в скрипте.

не беспокойтесь за это))



0



779 / 461 / 79

Регистрация: 18.05.2016

Сообщений: 1,242

Записей в блоге: 4

21.08.2020, 09:11

12

Цитата
Сообщение от Dragokas
Посмотреть сообщение

покупается сертификат, и ним подписывается документ

покупать не обязательно. в составе офиса есть утилита «создание цифрового сертификата» SELFCERT.EXE. Она создаёт личный локальный сертификат, которым можно подписать любой свой проект. При первом запуске проекта на другом компутаторе и включенной опции доверять только подписанным, он покажет свойства подписи и сертификат можно будет установить. После этого данный проект будет вполне легально работать. При первой же правке VBA-кода в проекте, подпись слетает, о чём предупреждает. Надо повторно подписывать. Подписывать можно вообще абсолютно любым сертификатом, который есть на компе.
Для безопасности офиса в этой всей схеме важно только то, что пользователь самостоятельно принимает решение о подписывании, самостоятельно принимает подпись проекта и таким образом активирует доверие к нему. А подмена файла проекта или его кода это доверие сбрасывает. Т.е. защита работает в полном объёме



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.08.2020, 09:11

12

 

Бахтиёр

Пользователь

Сообщений: 1930
Регистрация: 15.01.2016

Excel 365

Добрый день.
Пытаюсь на компе друга на окне Immediate выполнить Selection.Offset(1).Select
Выдаёт ошибку (см.скрин)
Разрешил макросы — все равно выдает ошибку.

Как лечить?

P.S. Офис у него 2010

Прикрепленные файлы

  • вопрос.png (7.49 КБ)

 

Karataev

Пользователь

Сообщений: 2306
Регистрация: 23.10.2014

Такое может быть, когда открыто несколько книг или надстроек. Какая-то одна из этих книг или надстроек активна. Если запуск макросов в активной книге или надстройке запрещен, то в окне Immediate будет ошибка, о которой Вы пишите.
Чтобы не было ошибки, в окне Project щелкните два раза по какому-нибудь модулю книги или надстройки, в которой разрешены макросы, а затем пробуйте запускать код в окне Immediate.

Изменено: Karataev05.05.2016 10:36:23

 

Бахтиёр

Пользователь

Сообщений: 1930
Регистрация: 15.01.2016

Excel 365

разве разрешение макросов даётся для каждой книги отдельно?
это не параметр самого Application’a?

 

Karataev

Пользователь

Сообщений: 2306
Регистрация: 23.10.2014

Для каждой книги нужно делать разрешение макросов.

 

Бахтиёр

Пользователь

Сообщений: 1930
Регистрация: 15.01.2016

Excel 365

В данный момент не могу проверить на компе, где это ошибка вылезла, но:
У себя проделал:
1) Пользовался одной надстройкой, отключил ее.
2) Закрыл и открыл Эксель, проверил нет никаких надстроек и Персонал
3) Отключил макросы и сохранил книгу
4) Открыл книгу — Окно Immediate работает

Проделал такое с двумя одновременно открытыми книгами — Окно Immediate работает

 

Karataev

Пользователь

Сообщений: 2306
Регистрация: 23.10.2014

В редакторе VBE неудобно сделано, т.к. не понятно, какая книга, надстройка активна в данный момент. Только двойным щелчком можно понять, других признаков нет. Поэтому и возникла у Вас путаница с Immediate.

 

Бахтиёр

Пользователь

Сообщений: 1930
Регистрация: 15.01.2016

Excel 365

спасибо, попробую попозже на том компе, где вылезла ошибка

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Проясню:
если открывали книгу первый раз на ПК, то вполне могли получить предупреждение о том, что книга в защищенном просмотре. Этот режим надо отключить или сразу или чуть позже через меню Файл -Сведения. Если файл в защищенном режиме, то надо будет нажать кнопку «Разрешить редактирование». Пока не отключите этот режим, то если данная книга будет активна, то окно Immediate не будет выполнять команды, ссылаясь на запрет выполнения макросов.
Однако после отключения защищенного режима можете получить так же предупреждение о том, что есть содержимое(макросы) и запрос на включение. Этот запрос будет лишь в случае, если в настройках параметров безопасности установлено «Запуск макросов с уведомлением». При таком запросе надо разрешить макросы.

И только если оба пункта выполнены можно пробовать работу макросов откуда угодно и из любой книги.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Бахтиёр

Пользователь

Сообщений: 1930
Регистрация: 15.01.2016

Excel 365

Дмитрий, спасибо за подробный ответ.

 

voice

Пользователь

Сообщений: 23
Регистрация: 24.06.2016

#10

24.12.2016 22:33:46

У меня похожая проблема. Всё работало, но после каких-то манипуляций перестали запускаться макросы в документе. Макросы разрешены, не понимаю, в чем может быть причина?
При запуске макроса по кнопке на листе выскакивает сообщение, что макросы отключены системой безопасности. Нужно перезапустить книгу и подтвердить включение макросов. Но не выскакивает предложение сделать это при последующем открытии…

Прошу прощения, разобрался! Оказывается всё-таки дело было в настройках безопасности макросов!  

Изменено: voice24.12.2016 22:44:29

I have VBA code in Excel that calls a Word file in a specified local folder.

For some users it turns the following error:

The macros in this project are disabled. Please refer to the online help or documentation of the host application to determine how to enable macros

The error appears as the code is supposed to move from Excel to the Word file.

What I’ve tried so far:
Excel Trust Center:

  • The entire location (including subfolders are trusted).
  • «Allow documents on a network to be trusted» is checked.
  • Disable all macros with notification is «checked».
    I cannot change this as it is greyed out. However, this setting is the same for all users.
  • Protected view is disabled.

Word Trust Center

  • Protected view is disabled.
  • Opening the Word file doesn’t produce any «enable macros» notifications.

Community's user avatar

asked Apr 2, 2020 at 17:07

Carlsberg789's user avatar

6

The normal way to grey that out on purpose (maybe your users’ IT sets this through gpo?) is a registry key, where 16.0 is the version you have installed

[HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0ExcelSecurity]
"VBAWarnings"=dword:00000001

Some other things to troubleshoot:

  • Can they create and run their own macro?
  • Can they run a different macro in a different document?
  • Does anyone have a different version of Excel?
  • Are the excel and word file both local to the user PC?
  • Do the users have Developer settings enabled?
  • Does anyone have different settings in Macro Settings > Developer Macro Settings?
  • Is Windows blocking the excel file? Right-click the file > properties > General:

blocked

There’s also this specific GPO that only blocks macros from the loosely-defined «Internet»

answered Apr 2, 2020 at 17:41

Cpt.Whale's user avatar

Cpt.WhaleCpt.Whale

4,6841 gold badge12 silver badges16 bronze badges

I had a similar issue some time ago. When opening a word document from within an Excel macro, everything worked fine for me. But on another PC, the macro simply stopped with a message indication that macros where disabled.

The issue could be solved by changing the Application.AutomationSecurity property for the word app to msoAutomationSecurityLow.

It is important to set that property back to its original value after code execution.

You can try the following code example.

Option Explicit

Sub OpenWordsFilePathWithLowSecuritySettings()
    Dim sFilePath As String
    Dim wrdApp As Object
    Dim wrdDoc As Object
    Dim lAutomationSetting As Long
    
    'The path to your word file
    sFilePath = "C:UsersmichaDesktopexample file.docx"

    Set wrdApp = CreateObject("Word.Application")
    
    wrdApp.Visible = True
    
    'Save word app automation security so we can restore it afterwards
    lAutomationSetting = wrdApp.AutomationSecurity
    'Error handling to make sure the automation security is reset even if an error occurs
    On Error GoTo ErrorHandler
    'Change the automation setting to low security
    wrdApp.AutomationSecurity = msoAutomationSecurityLow
    
    'Open word document
    Set wrdDoc = wrdApp.Documents.Open(sFilePath)
    
    'Your code - do something with the word file
    '
    '
    '
    
ErrorExit:
    On Error Resume Next
    'Close the word document
    wrdDoc.Close
    'Reset the word automation security
    wrdApp.AutomationSecurity = lAutomationSetting
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    
    Exit Sub
    
ErrorHandler:
    MsgBox "An error occured: (Code: " & Err.Number & ", Description: " & Err.Description & ")", vbCritical, "Error"
    Resume ErrorExit
End Sub

answered Dec 5, 2020 at 19:33

Michael Wycisk's user avatar

 

Бахтиёр

Пользователь

Сообщений: 1877
Регистрация: 15.01.2016

Excel 365

Добрый день.
Пытаюсь на компе друга на окне Immediate выполнить Selection.Offset(1).Select
Выдаёт ошибку (см.скрин)
Разрешил макросы — все равно выдает ошибку.

Как лечить?

P.S. Офис у него 2010

Прикрепленные файлы

  • вопрос.png (7.49 КБ)
 

Karataev

Пользователь

Сообщений: 2306
Регистрация: 23.10.2014

Такое может быть, когда открыто несколько книг или надстроек. Какая-то одна из этих книг или надстроек активна. Если запуск макросов в активной книге или надстройке запрещен, то в окне Immediate будет ошибка, о которой Вы пишите.
Чтобы не было ошибки, в окне Project щелкните два раза по какому-нибудь модулю книги или надстройки, в которой разрешены макросы, а затем пробуйте запускать код в окне Immediate.

Изменено: Karataev05.05.2016 10:36:23

 

Бахтиёр

Пользователь

Сообщений: 1877
Регистрация: 15.01.2016

Excel 365

разве разрешение макросов даётся для каждой книги отдельно?
это не параметр самого Application’a?

 

Karataev

Пользователь

Сообщений: 2306
Регистрация: 23.10.2014

Для каждой книги нужно делать разрешение макросов.

 

Бахтиёр

Пользователь

Сообщений: 1877
Регистрация: 15.01.2016

Excel 365

В данный момент не могу проверить на компе, где это ошибка вылезла, но:
У себя проделал:
1) Пользовался одной надстройкой, отключил ее.
2) Закрыл и открыл Эксель, проверил нет никаких надстроек и Персонал
3) Отключил макросы и сохранил книгу
4) Открыл книгу — Окно Immediate работает

Проделал такое с двумя одновременно открытыми книгами — Окно Immediate работает

 

Karataev

Пользователь

Сообщений: 2306
Регистрация: 23.10.2014

В редакторе VBE неудобно сделано, т.к. не понятно, какая книга, надстройка активна в данный момент. Только двойным щелчком можно понять, других признаков нет. Поэтому и возникла у Вас путаница с Immediate.

 

Бахтиёр

Пользователь

Сообщений: 1877
Регистрация: 15.01.2016

Excel 365

спасибо, попробую попозже на том компе, где вылезла ошибка

 

The_Prist

Пользователь

Сообщений: 13962
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Проясню:
если открывали книгу первый раз на ПК, то вполне могли получить предупреждение о том, что книга в защищенном просмотре. Этот режим надо отключить или сразу или чуть позже через меню Файл -Сведения. Если файл в защищенном режиме, то надо будет нажать кнопку «Разрешить редактирование». Пока не отключите этот режим, то если данная книга будет активна, то окно Immediate не будет выполнять команды, ссылаясь на запрет выполнения макросов.
Однако после отключения защищенного режима можете получить так же предупреждение о том, что есть содержимое(макросы) и запрос на включение. Этот запрос будет лишь в случае, если в настройках параметров безопасности установлено «Запуск макросов с уведомлением». При таком запросе надо разрешить макросы.

И только если оба пункта выполнены можно пробовать работу макросов откуда угодно и из любой книги.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Бахтиёр

Пользователь

Сообщений: 1877
Регистрация: 15.01.2016

Excel 365

Дмитрий, спасибо за подробный ответ.

 

voice

Пользователь

Сообщений: 22
Регистрация: 24.06.2016

#10

24.12.2016 22:33:46

У меня похожая проблема. Всё работало, но после каких-то манипуляций перестали запускаться макросы в документе. Макросы разрешены, не понимаю, в чем может быть причина?
При запуске макроса по кнопке на листе выскакивает сообщение, что макросы отключены системой безопасности. Нужно перезапустить книгу и подтвердить включение макросов. Но не выскакивает предложение сделать это при последующем открытии…

Прошу прощения, разобрался! Оказывается всё-таки дело было в настройках безопасности макросов!  

Изменено: voice24.12.2016 22:44:29

  • Remove From My Forums
  • General discussion

  • I have 2 Macros that work in other computers but in this computer they do not work.  The error message is: 

    «The macros in this project are disabled.  Please refer to the online help or documentation of the host application to determine how to enable macros.»

    I looked at some of the documentation nothing worked.

    In Outlook 2010 I went to :

    >File>Options>Trust Center>Trust Center setting…>Macro Settings and Enabled All Macros

    This did not fix any of the problems.  

    Any Suggestions?

    • Changed type

      Monday, May 6, 2013 2:00 PM
      op claimed that the issue has been resolved

1562 / 453 / 51

Регистрация: 10.04.2009

Сообщений: 7,846

1

Макросы в этом проекте отключены

18.08.2020, 09:32. Показов 7190. Ответов 11


здравствуйте чтобы не получать сообщение
The macros in this project are disabled. Please refer to the online help or documentation of the host apliccation to determine how to enable macros. Макросы в этом проекте отключены. Пожалуйста, обратитесь к справке или документации принимающей apliccation чтобы определить, как разрешить выполнение макросов.
Лечится Сервис Макрос Безопасность Низкая Потом закрыть документ и открыть его снова

Я наивно думал, что если юзеру отдать файл Normal.dotm и он его положит в папку микрософтшаблоны-то у него не будет проблем, не будет этого сообщения, оказалось это не так
вопрос, что нужно сделать ещё чтобы помещения этого файла в нужную папку было достаточно? спс

0

828 / 459 / 79

Регистрация: 18.05.2016

Сообщений: 1,229

Записей в блоге: 4

18.08.2020, 09:42

2

Во-первых подменять Normal.dotm — не очень хорошая идея. В нём могут быть личные макросы или какие-то другие штуки пользователя.
Лучше своё творчество предоставлять в виде надстройки. А вот для её установки мало просто положить её в папку, надо ещё её включить в настройках Но без всех этих манипуляций в итоге не обойтись. Макрософак после многочисленных нападок в свой адрес очень печётся о безопасности и теперь всё везде надо подтверждать и включать. Это хорошо, если политика безопасности не потребует ещё и сертификаты подключать к своим проектам.

1

1562 / 453 / 51

Регистрация: 10.04.2009

Сообщений: 7,846

18.08.2020, 09:58

 [ТС]

3

это понятно, ну а если личных макросов нет у пользователя и пойти по пути подмены Normal.dotm
вопрос, что нужно сделать ещё чтобы помещения этого файла в нужную папку было достаточно? спс

0

КостяФедореев

Часто онлайн

771 / 520 / 232

Регистрация: 09.01.2017

Сообщений: 1,785

18.08.2020, 10:07

4

Ципихович Эндрю,
это для excel, может и в word прокатит

Visual Basic
1
2
3
4
5
6
7
8
9
Sub DeleteFileBlock()
    On Error Resume Next
    Key$ = "HKEY_CURRENT_USERSoftwareMicrosoftOffice14.0ExcelSecurityFileBlock"
    arr = Array("XL2Macros", "XL2Worksheets", "XL3Macros", "XL3Worksheets", _
                "XL4Macros", "XL4Workbooks", "XL4Worksheets")
    For Each Item In arr
        CreateObject("WScript.Shell").RegWrite Key$ & Item, 0, "REG_DWORD"
    Next
End Sub

в процедуру Workbook_Open

1

Ципихович Эндрю

1562 / 453 / 51

Регистрация: 10.04.2009

Сообщений: 7,846

18.08.2020, 10:26

 [ТС]

5

да есть похожее у меня в запасниках, щас нужно вспомнить

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Option Explicit
 
Sub Меняем_доверие_к_проектам_VBA_и_уровень_безопасности_в_Word()
 
Dim i As Integer
Dim objWord As Object
Dim objShell As Object
Dim vatDir As String
Dim vatReturn As Currency
Dim Papka As String
Dim AppWord As Word.Application
 
On Error Resume Next
 
Set objWord = CreateObject("Word.Application")
Set objShell = CreateObject("WScript.Shell")
 
For i = 0 To 50
On Error GoTo 150
vatDir = objShell.RegRead( _
"HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "Path")
 
If vatDir = ThisWorkbook.Path Then Exit For
If i < 0 Then
150 objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "Description", "Назовите сами", "REG_SZ"
    objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "AllowSubfolders", 1, "REG_DWORD"
    objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsLocation" & i & "Path", ActiveDocument.Path, "REG_SZ"
    'разрешение доступа к сетевым папкам
    objShell.RegWrite _
"HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityTrusted LocationsAllowNetworkLocations", 1, "REG_DWORD"
Exit For
End If
Next
 
On Error GoTo 200
vatReturn = objShell.RegRead( _
"HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityAccessVBOM")
 
If vatReturn = 0 Then
    'за доверительный доступ к проектам VBA отвечает параметр "AccessVBOM"
200 objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityAccessVBOM", 1, "REG_DWORD"
    'за уровень безопасности отвечает параметр "Level"
    objShell.RegWrite _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & objWord.Version & "WordSecurityLevel", 1, "REG_DWORD"
    
End If
 
    Set AppWord = New Word.Application
    AppWord.Visible = True
    AppWord.Documents.Open "J:1.doc"
    Word.Application.Quit
 
End Sub

вопрос в том, если поместить в Sub AutoOpen() как же он выполнит, если н доходя до этого сработает зашита

Добавлено через 12 минут
сорри там в строке 23 ошибка, нужно

Visual Basic
1
If vatDir = ActiveDocument.Path Then Exit For

0

828 / 459 / 79

Регистрация: 18.05.2016

Сообщений: 1,229

Записей в блоге: 4

18.08.2020, 10:56

6

Как вы всё это собираетесь делать, если у вас по всему ворду макросы отключены? Может, во внешнем vbs-скрипте это ещё и сработало бы

0

1562 / 453 / 51

Регистрация: 10.04.2009

Сообщений: 7,846

18.08.2020, 11:05

 [ТС]

7

создал Нормал.дотм открыл его, именно в меню выбрал Открыть, сделал процедуру Меняем_доверие_к_проектам_VBA_и_уровень_безопаснос ти_в_Word, раздал Нормал.дотм — будут у пользователя проблемы?

0

828 / 459 / 79

Регистрация: 18.05.2016

Сообщений: 1,229

Записей в блоге: 4

18.08.2020, 11:23

8

Если в настройках ворда в безопасности макросов эти самые макросы отключены, то VBA-кодом из самого ворда вы никакие процедуры по включению макросов не запустите. Попробуйте на своём компе это проделать.
Можно эту процедуру адаптировать в vbs-скрипт и дать пользователю уже ДВА файла. Но проще объяснить ему, какой пункт в настройках включить.
Хотя можно извернуться, и сделать rar-sfx-архив-инсталлятор с этими двумя файлами и командами на копирование нормала и запуска скрипта. Тогда для пользователя это будет всего лишь один exe-шник.
Судя по всему, скрипт только модифицирует реестр. Ну тогда вместо скрипта в архив засунуть reg-файл

0

Ципихович Эндрю

1562 / 453 / 51

Регистрация: 10.04.2009

Сообщений: 7,846

19.08.2020, 10:45

 [ТС]

9

вспомнил, вроде на этом же форуме качал цеэмдэ файл для этого:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
@echo off :: Macros Access Script by Alex Dragokas echo. echo Утилита включения макросов для MS Office 2003-2013 echo. :ch_Security echo Введите цифру и нажмите кнопку ENTER: echo. echo 1 - Запуск макросов без уведомления. echo 2 - Запуск макросов с разрешения пользователя. echo 3 - Запретить запуск неподписанных макросов (не уведомлять). echo. set ch= set /p "ch=Ваш выбор: " echo. if "%ch%"=="1" set "MacrosLevel=1" if "%ch%"=="2" set "MacrosLevel=2" if "%ch%"=="3" set "MacrosLevel=3" if "%ch%" neq "1" if "%ch%" neq "2" if "%ch%" neq "3" goto ch_Security :ch_VBA echo Хотите включить программный доступ к коду макроса? echo. echo 1 - Да. Разрешить. echo 2 - Нет. Запретить. echo. set ch= set /p "ch=Ваш выбор: " echo. if "%ch%"=="1" set "ProjectLevel=1" if "%ch%"=="2" set "ProjectLevel=0" if "%ch%" neq "1" if "%ch%" neq "2" goto ch_VBA   :: Проверяю, запущен ли хоть один из процессов MS Office :Check call :CheckRun || (echo.& echo НЕЛЬЗЯ продолжить. Сначала нужно завершить все офисные приложения.& echo.& pause & echo.& goto Check)   For %%k in (   HKCUSoftwareMicrosoftOffice   HKCUSoftwareWow6432NodeMicrosoftOffice ) do (   For /F "tokens=5 delims=" %%a in ('reg query "%%k" 2^>NUL ^| findstr /R "^.*[0-9].*"') do (     if "%%a" neq "8.0" (       if "%%a"=="9.0"  (echo Обнаружен MS Office 2000 & call :EnumApps 2003 "%%a")       if "%%a"=="10.0" (echo Обнаружен MS Office XP   & call :EnumApps 2003 "%%a")       if "%%a"=="11.0" (echo Обнаружен MS Office 2003 & call :EnumApps 2003 "%%a")       if "%%a"=="12.0" (echo Обнаружен MS Office 2007 & call :EnumApps 2007 "%%a")       if "%%a"=="13.0" (echo Обнаружен MS Office 2010 & call :EnumApps 2007 "%%a")       if "%%a"=="14.0" (echo Обнаружен MS Office 2010 & call :EnumApps 2007 "%%a")       if "%%a"=="15.0" (echo Обнаружен MS Office 2013 & call :EnumApps 2007 "%%a")       if not Defined isChanges (echo Обнаружена неизвестная версия MS Office & call :EnumApps 2007 "%%a")       echo.     )   ) ) pause exit /B   :EnumApps %1-mso.family %2-key.version   Set "isChanges=true"   For %%k in (     HKCUSoftwareMicrosoftOffice%~2     HKCUSoftwareWow6432NodeMicrosoftOffice%~2   ) do (     For /F "tokens=6 delims=" %%a in ('reg query "%%k" 2^>NUL') do (       if /i "%%a"=="Word" call :ChangeSecurity "%~1" "%~2" "%%a"       if /i "%%a"=="Excel" call :ChangeSecurity "%~1" "%~2" "%%a"       if /i "%%a"=="PowerPoint" call :ChangeSecurity "%~1" "%~2" "%%a"       if /i "%%a"=="Access" call :ChangeSecurity "%~1" "%~2" "%%a"       if /i "%%a"=="Outlook" call :ChangeSecurity "%~1" "%~2" "%%a"     )   ) Exit /B   :ChangeSecurity %1-mso.family %2-key.version %3-Application   echo %~3   if "%~1"=="2003" reg add "HKCUSoftwareMicrosoftOffice%~2%~3Security" /v Level /t REG_DWORD /d %MacrosLevel% /f   if "%~1"=="2007" reg add "HKCUSoftwareMicrosoftOffice%~2%~3Security" /v VBAWarnings /t REG_DWORD /d %MacrosLevel% /f   if /i "%~3" neq "Outlook" if "%~2" neq "9.0" reg add "HKCUSoftwareMicrosoftOffice%~2%~3Security" /v AccessVBOM /t REG_DWORD /d %ProjectLevel% /f Exit /B   :CheckRun   TASKLIST /FI "imagename eq winword.exe" | find /i "winword.exe" && exit /B 1   TASKLIST /FI "imagename eq excel.exe" | find /i "excel.exe" && exit /B 1   TASKLIST /FI "imagename eq powerpnt.exe" | find /i "powerpnt.exe" && exit /B 1   TASKLIST /FI "imagename eq outlook.exe" | find /i "outlook.exe" && exit /B 1   TASKLIST /FI "imagename eq msaccess.exe" | find /i "msaccess.exe" && exit /B 1 Exit /B 0

Добавлено через 1 час 35 минут
ну и на сегодняшний день под строкой 49 нужно добавить строку

Windows Batch file
1
if "%%a"=="16.0" (echo Обнаружен MS Office 2016 & call :EnumApps 2007 "%%a")

правда уже есть оффис 2019, кто нибудь может добавить строку для оффиса 2019 и опробовать? спс

0

Эксперт WindowsАвтор FAQ

17951 / 7587 / 889

Регистрация: 25.12.2011

Сообщений: 11,317

Записей в блоге: 17

19.08.2020, 21:45

10

Очень сильно не советую так делать для озвученных целей. Пошифруете к хренам всё у юзера. Сейчас как раз гуляет эта зараза в виде имейл от подставных адресатов с макросами в аттаче. С отключенной защитой наломаете дров. Еще и мое имя в скрипте.

По нормальному это делается — покупается сертификат, и ним подписывается документ. Выставляется настройка — доверять подписанным макросам. Либо как вариант (без покупки) выпускаете само-подписанный серт, импортируете в корневое хранилище. Сам так не пробовал, но должно проканать.

0

1562 / 453 / 51

Регистрация: 10.04.2009

Сообщений: 7,846

20.08.2020, 08:53

 [ТС]

11

Цитата
Сообщение от Dragokas
Посмотреть сообщение

Еще и мое имя в скрипте.

не беспокойтесь за это))

0

828 / 459 / 79

Регистрация: 18.05.2016

Сообщений: 1,229

Записей в блоге: 4

21.08.2020, 09:11

12

Цитата
Сообщение от Dragokas
Посмотреть сообщение

покупается сертификат, и ним подписывается документ

покупать не обязательно. в составе офиса есть утилита «создание цифрового сертификата» SELFCERT.EXE. Она создаёт личный локальный сертификат, которым можно подписать любой свой проект. При первом запуске проекта на другом компутаторе и включенной опции доверять только подписанным, он покажет свойства подписи и сертификат можно будет установить. После этого данный проект будет вполне легально работать. При первой же правке VBA-кода в проекте, подпись слетает, о чём предупреждает. Надо повторно подписывать. Подписывать можно вообще абсолютно любым сертификатом, который есть на компе.
Для безопасности офиса в этой всей схеме важно только то, что пользователь самостоятельно принимает решение о подписывании, самостоятельно принимает подпись проекта и таким образом активирует доверие к нему. А подмена файла проекта или его кода это доверие сбрасывает. Т.е. защита работает в полном объёме

1

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.08.2020, 09:11

12

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.

Как включить макросы?

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 4 ]

1 29.02.2012 10:27:06

  • Как включить макросы?
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Тема: Как включить макросы?

Недавно установили Word 2010.
При запуске любого макроса выводится сообщение: «The macros in this project are disabled».
В окне Безопасность макросов включал все макросы и доверял доступ. Все это не помогает.
На странице внешняя ссылка говорится, что в разделе Файл — Сведения должна быть область Предупреждение системы безопасности. У меня почему-то такая область не появляется.
Как же включить макросы?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

2 Ответ от Вождь 01.03.2012 17:46:20

  • Как включить макросы?
  • Вождь
  • Модератор
  • Неактивен
  • Зарегистрирован: 07.01.2010
  • Сообщений: 745
  • Поблагодарили: 181
  • За сообщение: 1

Re: Как включить макросы?

Alex_Gur пишет:

…должна быть область…

Эта облать появляется если макросы в принципе можно включить. У вас что-то другое. Попробйте на локальном новом файле docm. Посмотрите другие вкладки в «Центр управления безопасностью» > «Параметры центра управления безопасностью». Может что случайно кликнули.

Макросы под заказ и готовый пакет — mtdmacro.ru

3 Ответ от Alex_Gur 01.03.2012 19:14:11

  • Как включить макросы?
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Re: Как включить макросы?

Вождь пишет:

Alex_Gur пишет:

…должна быть область…

Эта облать появляется если макросы в принципе можно включить. У вас что-то другое. Попробйте на локальном новом файле docm. Посмотрите другие вкладки в «Центр управления безопасностью» > «Параметры центра управления безопасностью». Может что случайно кликнули.

Спасибо за ответ. У меня — новая установка. Вроде бы, ничего не кликал. Попробую завтра, на работе.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

4 Ответ от Alex_Gur 02.03.2012 09:37:32

  • Как включить макросы?
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Re: Как включить макросы?

Большое спасибо, Вождь!
После новой загрузки системы Предупреждение системы безопасности появилось. Вероятно, был какой-то сбой. Теперь макросы запускаются нормально.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

Сообщений [ 4 ]

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Похожие темы

  • Автоматизация. Макросы.
  • А надо ли включать все макросы?
  • Меняю деньги на макросы
  • Макросы для работы со стилями в Word
  • Макросы.Работа с таблицей в Worde
  • исчезают макросы из Word 2007
  • Макросы для пропорционального изменения выделенного рисунка
  • Куда и как вставлять МАКРОСЫ и НАДСТРОЙКИ для Word

Как включить макросы?

Большинство пользователей владеет начальными знаниями по работе с текстом в Microsoft  Word. Но как невозможно делать сложные расчеты без высшей математики, так и работать с большим объемом текста, обладая только базовыми знаниями, это сизифов труд. Наш сайт о Microsoft Office Word даст ответ про: переход на новый ворд.
Поэтому, овладев основами, стоит расширять и углублять свои навыки.

Тут хорошим подспорьем служат специализированные сайты. На портале о Microsoft Office Word вы узнаете про: как создать pdf файл из word.
Один из лучших русскоязычных – Ворд Эксперт. На сайте вы найдете необходимую информацию, на форуме сайта можете тренировать свои практические навыки, разобраться с возникающими проблемами. Наш сайт о Microsoft Office Word даст ответ про: 1,25 см это сколько в ворде 2010.

На форуме имеются разделы, посвященные оптимизации и автоматизации работе в Ворде, также вы можете оставить заявку и получить готовое решение проблемы. На портале о Microsoft Office Word вы узнаете про: сохранение excel в txt макрос.

Понравилась статья? Поделить с друзьями:
  • The lost word перевод
  • The lost word of power
  • The lost city excel 8 grade
  • The lord gave the word
  • The look up excel