Не работает макрос на другом компьютере

Обновлено: 30.06.2024

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

Предупреждение: Никогда не в включаете макрос в файле Office, если вы не знаете, что они делают. Непредвиденные макросы могут представлять значительную угрозу безопасности. Для этого не нужно, чтобы макрос мог видеть или редактировать файл. только в том случае, если вам нужны функции, предоставляемые макросом.

Сведения о создании макросов см. в статье Краткое руководство: создание макроса.

Если вам нужно узнать, как использовать макрос на компьютере с Windows S, см. Office в Windows 10 S.

Что такое макрос, кто их создает и в чем заключается угроза для безопасности?

Макросы служат для автоматизации часто выполняемых задач, что позволяет сэкономить время за счет сокращения объема работы с клавиатурой и мышью. Многие из них созданы с использованием языка Visual Basic для приложений (VBA). Однако некоторые макросы представляют угрозу безопасности. Макрос часто используется злоумышленниками для бесшумной установки вредоносных программ, например вирусов, на компьютер или в сеть организации.

Включить макрос только для текущего сеанса

Выполнив приведенные ниже инструкции, можно включить макросы на то время, пока открыт файл. Если закрыть файл и открыть его снова, предупреждение появится опять.

Откройте вкладку Файл.

В области Предупреждение системы безопасности нажмите кнопку Включить содержимое.

Выберите элемент Дополнительные параметры .

В диалоговом окне Параметры безопасности Microsoft Office выберите команду Включить содержимое для этого сеанса для каждого макроса.

Изменение параметров макросов в центре управления безопасностью

Параметры макросов доступны в центре управления безопасностью. Однако администратор организации может изменить настройки по умолчанию, чтобы запретить изменение каких-либо параметров.

Важно: При изменении параметров макроса в центре управления доверием они изменяются только для Office, которую вы используете в данный момент. Параметры макроса не меняются для всех Office программ.

Откройте вкладку Файл.

Щелкните Параметры.

Затем выберите пункты Центр управления безопасностью и Параметры центра управления безопасностью.

В центре управления безопасностью щелкните элемент Параметры макросов.

Область "Параметры макроса" центра управления безопасностью

Сделайте нужные выборки и нажмите кнопку ОК.

Примечание: Параметры немного отличаются в Excel, мы будем звонить из них по мере того, как мы будем звонить.

Отключить все макросы без уведомления. Этот параметр отключает макросы и связанные с ними оповещения безопасности.

В Excel этот параметр отключение макроса VBA без уведомления и применяется только к макросам VBA.

Отключить все макросы с уведомлением. Этот параметр отключает макросы без отключения оповещений системы безопасности, которые будут появляться при необходимости. Так вы можете включать макросы, когда это требуется.

В Excel этот параметр отключение макроса VBA с уведомлением и применяется только к макросам VBA.

Отключить все макросы кроме макросов с цифровой подписью Макрос отключен, и при этом отображаются оповещения системы безопасности, если есть неподписаные макросы. Однако если макрос имеет цифровую подпись надежного издателя, макрос просто запускается. Если макрос подписан издателем, которому вы еще не доверяете, вам будет предоставлена возможность включить подписанный макрос и доверять издателю.

В Excel этот параметр отключение макроса VBA за исключением макроов с цифровой подписью и применяется только к макросам VBA.

Включить все макросы (не рекомендуется, советуем выполнить потенциально опасный код) Все макросы запускались без подтверждения. Компьютер становится уязвимым для потенциально опасных программ.

В Excel этот параметр включает макрос VBA (не рекомендуется, советуем запускать потенциально опасный код), и он применяется только к макросам VBA.

Excel также естьExcel включить макросExcel 4.0при включенном макросах VBA. Если установить этот параметр, все вышеперечисленные параметры макроса VBA также будут применяться Excel 4.0 (XLM).

Если этот снимок не был выбран, макрос XLM отключается без уведомления.

Доверять доступ к объектной модели проектов VBA Отопустить или разрешить программный доступ к объектной модели Visual Basic для приложений (VBA) из клиента автоматизации. Этот параметр безопасности для кода, который позволяет автоматизировать Office и управлять средой и объектной моделью VBA. Этот параметр настраивается как для каждого пользователя, так и для каждого приложения и по умолчанию не позволяет неавторизованным программам создать вредоносный код самостоятельной репликации. Чтобы клиенты автоматизации получили доступ к объектной модели VBA, пользователь, работающий с кодом, должен предоставить доступ. Чтобы включить доступ, выберите этот квадрат.

Примечание: В Microsoft Publisher и Microsoft Access параметр Доверять доступ к объектной модели проектов VBA отсутствует.

Предположим, Вы скачали файл с данного сайта с примером макроса, открываете файл, но макросы в нем не работают! Как такое может быть? Неужели автор сайта выложил неработающий пример и не знает об этом? И тем более как может случиться такое, что Вы перенесли со своего ПК на другой ПК файл с рабочими макросами на флешке, запускаете, а он не работает. Почему? Вроде все правильно делаете, да ведь и у Вас работает на ПК. И начинает закрадываться мысль: "А чем же этот ПК и Excel на нем такие особенные?" . А ответ может быть прост - перед выполнением макроса не было разрешено выполнение этих самых макросов. Да, в большинстве случаев по умолчанию выполнение макросов в Excel отключено. И их надо включить. Для этого:

  • Excel 2003:
    Сервис-Безопасность-Уровень макросов "Низкий"
  • Excel 2007:
    Кнопка Офис-Параметры Excel (Excel Options) -Центр управления безопасностью (Trust Centr) -Параметры центра управления безопасностью (Trust Centr Settings) -Параметры макросов (Macro Settings) -Разрешить все макросы (Enable All Macros)
  • Excel 2010-2016:
    Файл (File) -Параметры (Options) -Центр управления безопасностью (Trust Centr) -Параметры центра управления безопасностью (Trust Centr Settings) -Параметры макросов (Macro Settings) -Разрешить все макросы (Enable All Macros)

Если макросы уже включены, но некоторые макросы отказываются работать (как правило те, которые записаны в модулях листов и книг и запускаются при наступлении определенного события - Worksheet_SelectionChange (выделение ячеек), Worksheet_Change (изменение значений ячеек) и т.п.), то скорее всего когда-то вы выполнили какой-нибудь макрос и он отключил отслеживание событий. Тогда надо в любую активную книгу добавить модуль(переходим в редактор VBA( Alt + F11 ) -Insert -Module), вставить в него приведенный ниже код и запустить:

Sub Reset_Events() Application.EnableEvents = True End Sub

чтобы запустить(выполнить) данный макрос макрос необходимо установить курсор в любое место между Sub и End Sub и нажать клавишу F5 .

Отказ макроса или надстройки от выполнения своих функций имеет ряд причин. Рассмотрим наиболее распространенные из них.

Операционная система

Вплоть до Office 2016 пакет приложений Microsoft Office выпускается в различных версиях, для Windows и для Mac OS. Встроенный в приложения Office язык программирования при этом использует отличающиеся друг от друга библиотеки операционной системы. В связи с этим макрос/надстройка, написанная для работы в приложениях под Windows, может не работать, либо работать некорректно в MacOS. Проверьте операционную систему, для которой разрабатывался макрос/надстройка.

Разработчик пакета офисных приложений

Кроме Microsoft Office, пользователи достаточно часто используют альтернативные пакеты офисных приложений, такие как OpenOffice или LibreOffice. Приложения этих пакетов также имеют встроенные языки программирования, но эти языки отличаются друг от друга. Макросы или надстройки, написанные в Visual Basic for Application в приложениях пакета Microsoft Office, не будут работать в приложениях OpenOffice или LibreOffice. Уточните, для какого пакета офисных программ разработан макрос/надстройка.

Наличие компонента VBA

Для того, чтобы можно было запустить макрос или надстройку в каком-либо приложении пакета Office, необходимо, чтобы с этим пакетом был установлен компонент VBA – встроенный язык программирования Visual Basic for Application. В некоторых версиях Office этот пакет может устанавливаться отдельно. Проверьте, установлен ли этот компонент на компьютере. Нажмите сочетание клавиш Alt+F11, если после этого появляется окно редактора Visual Basic, то компонент установлен. В случае, если компонент отсутствует, его необходимо установить.

Версия Microsoft Office

Активация Microsoft Office

Убедитесь в том, что Microsoft Office не требует активации. Проведите активацию, чтобы избежать каких-либо ограничений при использовании приложений.

Снятие блокировки файла

Файл, полученный с другого компьютера или из сети интернет может быть заблокирован. Чтобы разблокировать такой файл, необходимо кликнуть на нем правой кнопкой мыши и на вкладке "Общие" нажать кнопку "Разблокировать".

snyatie blokirovki s fajla

Система безопасности

Используемые библиотеки

cant find project or library

Это окно также можно вызвать и самостоятельно, если в редакторе VB выбрать пункт меню Tools/References.

Кроме этого не все библиотеки подключаются автоматически. Если на компьютере разработчика макроса или надстройки какая-то библиотека была подключена вручную, затем макрос или надстройка были перенесены на другой компьютер, где эта библиотека не подключена, возникает такая-же ошибка.

Не получается запустить макрос, который работает на другом компьютере. Почему?

Скорее всего, на вашем компьютере установлен высокий уровень безопасности макросов . Макросы часто содержат вирусы, поэтому по умолчанию программа устанавливает высокий уровень защиты от них. Чтобы макрос работал, сделайте следующее.

Диалоговое окно Центр управления безопасностью


увеличить изображение
Рис. 11.156. Диалоговое окно Центр управления безопасностью

Почему после установки Office 2007 не запускаются макросы и шаблоны, которые работали в предыдущих версиях Office?

Скорее всего, у вас не установлена поддержка VBA — языка программирования, используемого в программах пакета Microsoft Office. Для его установки добавьте в пакет компонент Visual Basic для приложений, который входит в Общие средства Office. Для этого сделайте следующее.

  1. Закройте все программы Microsoft Office.
  2. Выполните команду Пуск-Настройка-Панель управления.
  3. Откройте окно Установка и удаление программ.
  4. Выберите из списка Microsoft Office и нажмите кнопку Изменить.
  5. Установите переключатель в положение Добавить или удалить компоненты.
  6. Далее выполняйте те же действия, что и при выборочной установке Microsoft Office (см. разд. 1.1).
ВНИМАНИЕ. Для инсталляции компонента вам понадобится компакт-диск или сетевой ресурс с установочными файлами Microsoft Office.

При открытии некоторых файлов появляется окно с предупреждением, что документ содержит макросы. Приходится каждый раз подтверждать открытие документа. Как сделать, чтобы файлы с макросами открывались автоматически?

Макросы часто содержат вирусы, поэтому высокий уровень безопасности установлен в программе по умолчанию. Если вы не работаете с файлами, скачанными из Интернета или из других ненадежных источников, то можете изменить уровень безопасности. Для этого сделайте следующее.

Печать документов

Я создал фон документа, но Word его не печатает. Почему?

Все правильно — фон документа не должен печататься, он задается только для отображения на экране. Если вы хотите, чтобы текст печатался на каком-нибудь фоне, то установите для него заливку или подложку.

Для создания заливки сделайте следующее.

Кнопка Заливка

Чтобы установить подложку, сделайте следующее.

  1. Перейдите на вкладку Разметка страницы и нажмите кнопку Подложка в группе Фон страницы.
  2. Выберите один из вариантов подложки в меню (рис. 11.158).

Меню Подложка

Диалоговое окно Печатная подложка

Word не печатает анимационные эффекты. Что делать?

Анимационные эффекты не могут быть напечатаны, они отображаются только на экране.

Текст документа на печати совсем не такой, как на экране монитора. Почему?

Возможно, Word печатает черновой вариант текста или использует черновые шрифты. Чтобы проверить, так ли это, сделайте следующее.

Область Печать

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

Для этого существует команда Сократить на страницу. Находясь в режиме предварительного просмотра, нажмите соответствующую кнопку в группе Просмотр на вкладке Предварительный просмотр (рис. 11.161).

Кнопка Сократить на страницу

Колонтитулы отображаются в режиме предварительного просмотра, но не выводятся на печать. Что делать?

Попробуйте изменить их расположение на странице — возможно, ваш принтер не печатает колонтитулы из-за того, что они находятся близко от края страницы. Для этого сделайте следующее.

  1. Перейдите на вкладку Разметка страницы и нажмите кнопку в виде стрелки, направленной вниз, в нижней части группы Параметры страницы (рис. 11.162).

Кнопка для вызова окна Параметры страницы


увеличить изображение
Рис. 11.162. Кнопка для вызова окна Параметры страницы

Диалоговое окно Параметры страницы, вкладка Источник бумаги


Рис. 11.163. Диалоговое окно Параметры страницы, вкладка Источник бумаги

Почему не печатаются номера строк?

Чтобы номера строк выводились на печать, проверьте установки полей документа. Номера строк обычно печатаются на левом поле документа, и если его размер слишком маленький, то номера не печатаются. В этом случае сделайте следующее.

  1. Перейдите на вкладку Разметка страницы и откройте меню Поля в группе Параметры страницы.
  2. Выберите вариант Широкое (рис. 11.164). Если вы хотите задать значение левого поля вручную, выберите команду Настраиваемые поля и увеличьте значение левого поля документа в окне Параметры страницы (рис. 11.165).

Выбор варианта Широкое в меню Поле

Диалоговое окно Параметры страницы, вкладка Поля


Рис. 11.165. Диалоговое окно Параметры страницы, вкладка Поля

Если после этого номера все равно не печатаются, то попробуйте уменьшить расстояние между номерами строк и текстом. Для этого сделайте следующее.

Диалоговое окно Параметры страницы, кнопка Нумерация строк


Рис. 11.166. Диалоговое окно Параметры страницы, кнопка Нумерация строк

Диалоговое окно Нумерация строк

Мне постоянно приходится распечатывать документы с исправлениями и комментариями. Для этого я каждый раз настраиваю параметры печати, выбирая из списка Напечатать диалогового окна Печать пункт Документ с исправлениями. Как установить этот параметр по умолчанию?

Чтобы сведения о документе выводились каждый раз, когда вы отправляете документ на печать, измените настройки Word так, чтобы он печатал исправления и комментарии автоматически. Для этого сделайте следующее.

Включение печати скрытого текста

При печати документа в режиме Структура на одной странице располагается слишком мало заголовков. Как их уплотнить?

Скорее всего, в документе, который вы хотите распечатать, вручную вставлены разрывы страниц. Для их временного удаления выполните следующее.

  1. Сохраните все изменения в документе.
  2. Переключитесь в режим просмотра Черновик с помощью соответствующей кнопки в группе Режимы просмотра документа на вкладке Вид (рис. 11.169).

Переключение в режим Черновик

Я установил разрыв страницы вручную, однако Word его не видит и не печатает текст с новой страницы. Почему?

Возможно, разрыв страницы является скрытым элементом. Чтобы проверить это, перейдите в режим Черновик с помощью кнопки на вкладке Вид. Если разрыв не отображается, значит, он является скрытым. Чтобы его увидеть, нажмите кнопку Отобразить все знаки в группе Абзац на вкладке Главная (рис. 11.170). Разрыв должен отобразиться.

Кнопка Отобразить все знаки

Для изменения параметров разрыва сделайте следующее.

Диалоговое окно Шрифт

Почему не печатаются рисунки?

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

У меня у вам маленький вопрос. привожу фрагмент кода, считывается файл, и по каждой статье разносится по дополнительным листам, дело в том, что в некоторых Кейсах расписаны все счета,на которые относятся статьи, А ЕСТЬ такие кейсы где берется ВСЯ группа счетов, как в "аренде линий связи", как сделать так чтобы бралась так же вся группа счетов, но исключался один счет, например 6303017 ??=))


Sub splitting_text()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim tmpArr()
Dim flag As Boolean
Dim tmpStr As String
'Dim Left As Single
Dim tmpStrr As String
flag = False
k = 0
ReDim tmpArr(k)
For i = 1 To ThisWorkbook.Sheets.Count
ThisWorkbook.Sheets(i).Select
Cells(1, 9).Value = "1.1. Расходы, связанные с технологическим развитием, в т.ч."
Cells(2, 9).Value = "1.1.1. Расходы, связанные с программным обеспечением"
Cells(3, 9).Value = "1.1.2. Расходы по сопровождению информационных систем"
Cells(4, 9).Value = "1.1.3. Расходы по услугам телекоммуникационных систем"
Cells(5, 9).Value = "1.1.4. Аренда линий связи"

Do While Cells(j, 1).Text <> ""
tmpStrr = Left(Cells(j, 5).Text, 4)
Select Case tmpStrr
'если список счетов
'"Расходы, связанные с программным обеспечением"
Case Is = "6304"
If (Right(Cells(j, 5).Text, 3) = "001") Or (Right(Cells(j, 5).Text, 3) = "002") Or (Right(Cells(j, 5).Text, 3) = "003") Or (Right(Cells(j, 5).Text, 3) = "004") Then
Cells(2, 10).Value = Cells(2, 10).Value + Cells(j, 7).Value
End If

Case Is = "6406"
'"Расходы по сопровождению информационных систем"
If (Right(Cells(j, 5).Text, 3) = "018") Or (Right(Cells(j, 5).Text, 3) = "019") Or (Right(Cells(j, 5).Text, 3) = "020") Or (Right(Cells(j, 5).Text, 3) = "021") Then
Cells(3, 10).Value = Cells(3, 10).Value + Cells(j, 7).Value
End If
'"Расходы по услугам телекоммуникационных систем"
If (Right(Cells(j, 5).Text, 3) = "014") Or (Right(Cells(j, 5).Text, 3) = "015") Or (Right(Cells(j, 5).Text, 3) = "016") Or (Right(Cells(j, 5).Text, 3) = "017") Then
Cells(4, 10).Value = Cells(4, 10).Value + Cells(j, 7).Value
End If


Case Is = "6303"
'"Аренда линий связи"
Cells(5, 10).Value = Cells(5, 10).Value + Cells(j, 7).Value


For m = 0 To k
If Cells(j, 5).Text = tmpArr(m) Then
flag = True
End If
Next
If flag = False Then
tmpArr(k) = Cells(j, 5).Text
k = k + 1
ReDim Preserve tmpArr(k)
End If
flag = False
Case Else
'MsgBox "Неизвестный счет :-(" + Chr(13) + Chr(13) + "Хвост счета: " + Cells(j, 5).Text, vbCritical, "АХТУНГ"
Rows(j).Interior.ColorIndex = 3


End Select
j = j + 1
Loop
Cells(18, 10).Value = Cells(19, 10).Value + Cells(20, 10).Value + Cells(21, 10).Value + Cells(22, 10).Value + Cells(23, 10).Value

Next
tmpStr = tmpArr(0)
For m = 1 To UBound(tmpArr)
tmpStr = tmpStr + ", " + tmpArr(m)
Next
End Sub

Читайте также: