С данной презентацией не связан код visual basic для приложений
В частности, у меня есть две таблицы и несколько сабвуферов VBA в этих таблицах. В одном из проектов VBA (скажем, workbook1.xlsm) у меня есть следующий код:
Но я получил следующую ошибку. Макросы на обоих листах включены. В обеих таблицах сабвуферы находятся в Модуле1.
Не удается запустить макрос "Workbook.xlsm! PrepareTheTables". Макрос может быть недоступен в> этой книге или все макросы могут быть отключены.
Я также попробовал Application.Run "Python solution macro.xlsm!Module1.PreparetheTables" но не сработало.
ОТВЕТЫ
Ответ 1
Если у вас есть пробел в названии книги, вы должны использовать одинарные кавычки (') вокруг имени файла. Я также удалил полную остановку.
Ответ 2
В Microsoft KB попробуйте разрешить программный доступ к проекту Visual Basic:
Ответ 3
Имел ту же проблему, и я "Скомпилировал проект VBA", который выявил ошибку. После коррекции и компиляции макросы работали.
Ответ 4
Вы также сталкиваетесь с этой проблемой при создании процедуры в модуле класса.
Когда вы пытаетесь запустить код извне, вы получаете эту ошибку.
Вы также не можете назначить макрос кнопке члену модуля класса.
Если вы попытаетесь запустить из кода, нажав зеленую кнопку воспроизведения, вы также увидите ту же ошибку.
Либо переместите подпрограмму в обычный модуль, либо создайте новую процедуру в регулярном модуле, который вызывает член класса.
Ответ 5
У меня также была проблема с этой ошибкой, оказалось, что имя файла вызывает проблему.
Я называл это следующим образом: Application.Run "и strPath и strFName и"!! UPC.PrintaFew "
Переменная strFName содержала в себе апостроф, который, конечно же, перепутал вещи. Мне потребовалось несколько часов, чтобы понять это. Но как только апостроф был удален из имени файла, он сработал.
Ответ 6
Ответ 7
В моем случае эта ошибка возникла, когда имя Sub было идентично имени модуля.
Ответ 8
Удалите макрос имени и снова создайте его. Я сделал это, и макрос работал.
Ответ 9
Наиболее вероятной причиной этой ошибки является то, что функция безопасности в Excel VBA, которая не позволяет запускать код VBA. Пользователь должен явно предоставить разрешение на запуск макросов excel вместе с книгой. Этот может или не может требовать программный доступ к проекту Visual Basic.
Для меня эта ошибка была решена: -
Включить редактирование и включение содержимого
Изменение параметров макроса вместе с программными доступ ( не рекомендуется, если какой-либо из вышеперечисленных процессов работает. Это позволило бы управлять кодом для изменения элементов в VBA Сам проект, включая ссылки и сам код - Ссылка)
Ответ 10
У меня была такая же проблема, как и у OP, и это было вызвано тем, что объявление опций было написано с ошибкой:
в дополнительном модуле вместо правильного;
Ответ 11
Сохранить как .xlsm(Excel Macro-Enabled Workbook).
Ответ 12
В моем случае это было связано с тем, что публичная процедура в другом модуле и частная процедура в вызывающем модуле с тем же именем. VBA не различает эти два и, следовательно, дает тупые ошибки.
Ответ 13
Мне пришлось удалить все тире и символы подчеркивания из имен файлов и имен макросов, убедиться, что макрос включен и добавить их имя модуля .macro
Вот что я закончил: Application.Run( "'" и WbName и "'" и "! ModuleName.MacroName" )
Ответ 14
У меня была такая же проблема, и мне потребовалось время, чтобы разобраться. Моя цель состояла в том, чтобы вызвать код в отдельной книге. У меня был целевой объект в листе, а не в модуле. Оказывается, что не может удаленно вызывать суб или функцию, которая не находится в модуле.
Ответ 15
Я недавно столкнулся с этой проблемой и попробовал все вышеперечисленные решения, но в духе. На самом деле проблема в том, что я создаю флажок динамически с помощью Excel vba и назначаю макрос на действие, но когда я нажимаю на флажок, он выдает ошибку выше.
Решение
Как мне найти решение?
Щелкните правой кнопкой мыши по флажку, а затем назначьте макрос вручную. Затем я проверил это, он работал отлично. Затем я заметил, что excel назначает макрос с использованием кодовых имен листов, а не фактических имен, которые мы установили внизу.
При открытии файла или попробуйте использовать макросы в Microsoft Office 2013 2 нажмите кнопку Run (C2R) возможно возникновение следующих проблем.
Microsoft Access
Постоянно мигает, окно установщика Windows.
«Это средство не установлено или была отключена»
«Microsoft Access не удалось загрузить Visual Basic для приложений библиотеки динамической компоновки (dll) Vbe7»
Microsoft Word
«Функция, которую вы пытаетесь запустить, содержит макросы или содержимое требует поддержки языка создания макросов»
Microsoft Excel
«Visual Basic для приложений (VBA) макросов в данной книге повреждены и были удалены.» Открытие существующей книги
Параметры Visual Basic, макросыи Записи макросов отключены в группе разработчиков и просмотр ленты.
Параметры Visual Basic и макросы отключаются на ленте.
При открытии презентаций с VBA-кодом возникает следующая ошибка:
«Документ содержит макросы. Для этого приложения поддержка макроязыка отключена. Компоненты, которым требуется VBA не доступны. Вы хотите открыть этот документ только для чтения?»
Причина
Очистители реестра сторонних разработчиков и обслуживание приложений системы удалены несколько разделов реестра, используемых для выполнения функций VBA в приложениях Microsoft Office 2013.
Решение
Запустите интерактивный ремонт пакета Office. Вот как:
Выберите приложение Microsoft Office и нажмите кнопку Изменить.
Выберите Восстановление по сети и затем нажмите кнопку Восстановить.
После завершения восстановления сети следует использовать приложения Office 2013.
На начальном экране введите в поле поиска Панели управления и затем коснитесь или щелкните приложения.
Выберите программу Microsoft Office и нажмите кнопку Изменить.
Выберите Восстановление по сети и затем нажмите кнопку Восстановить.
После завершения восстановления сети следует использовать приложения Office 2013.
Во избежание повторения обратитесь к поставщик очистки реестра или обслуживания системы приложений.
В PowerPoint предусмотрено множество возможностей для создания эффективных и интересных презентаций, а пользовательский интерфейс приложения позволяет с легкостью воспользоваться этими возможностями. Но иногда, несмотря на богатый набор возможностей стандартного пользовательского интерфейса PowerPoint, может понадобиться найти несложный способ выполнять рутинные, повторяющиеся задачи, а также те задачи, которые не удается решить с помощью пользовательского интерфейса. К счастью, в приложения Office, такие как PowerPoint, интегрирован Visual Basic для приложений (VBA), язык программирования, позволяющий расширять возможности этих приложений.
VBA позволяет выполнять макросы — пошаговые процедуры, написанные на языке Visual Basic. Научиться программировать не так сложно, как кажется. Терпеливые пользователи, изучавшие примеры, обнаруживают, что даже небольшие навыки программирования на VBA позволяют им выполнять в Office действия, которые раньше казались невозможными. Освоение одних приемов программирования упрощает освоение следующих — поэтому предоставляемые возможности неограниченны.
Бесспорно, самая распространенная причина использования VBA в PowerPoint — это необходимость автоматизации повторяющихся задач. Допустим, ваша презентация содержит большое количество пустых текстовых полей, которые необходимо удалить. Вместо того, чтобы искать, выбирать и удалять каждое пустое текстовое поле в каждом отдельном слайде, можно сделать так, что всю эту работу выполнял бы для вас макрос VBA в PowerPoint.
Существует множество других причин использовать VBA в PowerPoint, одна из важнейших среди которых — это выполнение задач, требующих взаимодействия PowerPoint с другими приложениями Office. Например, можно поместить весь текст презентации в файл данных с разделителями-запятыми (CSV), который можно открыть в Microsoft Excel 2010.
Готовые работы на аналогичную тему
Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимостьОсновы программирования на VBA
Рассмотрим использование VBA в Microsoft PowerPoint 2010. Данную версию PowerPoint выберем, поскольку она по сравнению с более ранними имеет множество дополнительных возможностей для создания презентаций.
Объекты программироdания связаны друг с другом отношениями иерархии, которые зовутся объектной моделью приложения. Иначе говоря, объектная модель отображает то, что видим в пользовательском интерфейсе, например, объектная модель PowerPoint содержит среди многих других объекты Application, Presentation и Slide. Объектная модель представляет собой схему приложения и его возможностей.
Свойства и методы
Управлять объектами можно, задавая их свойства и вызывая их методы. Задание свойства изменяет некоторое качество объекта. Вызов метода заставляет объект выполнить некоторое действие. Например, объект Slide имеет метод Copy, помещающий копию слайда в буфер обмена, и свойство Layout, представляющее макет слайда.
Многие объекты существуют в версиях единственного и множественного числа — Presentation и Presentations, Slide и Slides и т. д. Версии множественного числа называются коллекциями. Объекты коллекции используются для выполнения действия над несколькими элементами коллекции.
Макросы и редактор Visual Basic
Теперь, познакомившись с принципом работы объектной модели Microsoft PowerPoint 2010, вы, вероятно, хотите попробовать вызвать методы объекта и задать его свойства. Для этого необходимо написать свой код так, чтобы он распознавался в Office. Обычно это делается с помощью редактора Visual Basic. Несмотря на то, что он установлен по умолчанию, многие пользователи не знают о его наличии, пока этот редактор не будет включен на ленте.
Все приложения Office 2010 используют ленту. Среди других вкладок на ленте имеется вкладка Разработчик, на которой можно вызвать редактор Visual Basic и другие средства разработчика. Так как в Office 2010 вкладка Разработчик не показана по умолчанию, необходимо отобразить ее самостоятельно. Для этого нужно выполнить указанные ниже действия.
Отображение вкладки Разработчик
На вкладке Файл выберем пункт Параметры, чтобы открыть диалоговое окно Параметры PowerPoint.
Затем выберем элемент Настройка ленты в левой части диалогового окна.
В разделе Выбрать команды, расположенном слева в окне, нужно выбрать пункт Часто используемые команды.
В разделе Настройка ленты, который находится справа в диалоговом окне, выберем Основные вкладки, а затем установим флажок Разработчик.
Теперь можно нажать кнопку ОК.
Когда вкладка Разработчик отобразится в окне PowerPoint, необходимо обратить внимание на то, где на этой вкладке находятся кнопки Visual Basic, Макросы и Безопасность макросов.
Внешний вид вкладки Разработчик представлен на рисунке 1.
Нажмем кнопку Безопасность макросов, чтобы определить, какие макросы могут выполняться и при каких условиях. Хотя неконтролируемый код макроса может серьезно повредить компьютер, условия безопасности, запрещающие выполнять полезные макросы, могут ограничить эффективность работы. Безопасность макросов — это сложный и важный вопрос, в котором следует разобраться при работе с макросами PowerPoint.
Помните, что если при открытии книги, содержащей макрос, между лентой и листом появляется строка Предупреждение системы безопасности: запуск макросов отключен, можно нажать кнопку Включить содержимое, чтобы включить макрос.
Кроме того, в целях безопасности не сохраняйте макрос в формате презентации PowerPoint, используемом по умолчанию (PPTX). Вместо этого макрос должен быть сохранен в файл со специальным расширением — PPTM.
Редактор Visual Basic
После отображения вкладки Разработчик можно открыть редактор Visual Basic — встроенный инструмент, используемый для создания и изменения кода VBA для PowerPoint.
Создание макроса в редакторе Visual Basic
Нажмем кнопку Макросы на вкладке Разработчик.
В открывшемся диалоговом окне Макрос введем Hello в поле Имя.
Нажмем кнопку Создать, чтобы открыть редактор Visual Basic с уже введенными основными элементами нового макроса.
Редактор Visual Basic содержит код, указанный ниже:
Sub — это сокращение от Subroutine (подпрограмма), которую в данном случае можно определить как макрос.
Вызов макроса Hello приведет к выполнению любого кода между строчками Sub Hello() и End Sub.
Теперь изменим макрос, чтобы он был похож на следующий код.
Предоставление доступа к макросам
Открыть диалоговое окно Макрос также можно с вкладки Вид, но при частом использовании макроса может оказаться более удобным вызывать его с помощью сочетания клавиш или кнопки на панели быстрого доступа.
Чтобы создать кнопку для макроса Hello на панели быстрого доступа, выполним следующие действия.
Создание кнопки для макроса на панели быстрого доступа
Переходим на вкладку Файл.
Нажмем кнопку Параметры, чтобы открыть диалоговое окно Параметры PowerPoint, а затем выберем элемент Панель быстрого доступа.
В списке раздела Выбрать команды нужно выбрать пункт Макросы. В появившемся списке найдем текст, похожий на Презентация1!Hello, и выберем его.
Затем нужно нажать кнопку Добавить >>, чтобы добавить макрос в список справа, потом нажмем кнопку Изменить…, чтобы выбрать изображение кнопки, связываемой с макросом.
Нажмем кнопку ОК. Новая кнопка должна появиться на панели быстрого доступа над вкладкой Файл.
Теперь можно быстро запустить макрос в любой момент, не обращаясь к вкладке Разработчик.
Некоторые люди жаловались на Excel ошибка времени выполнения 1004. С самого начала эта ошибка может показаться серьезной проблемой, но по правде говоря, это больше отвлекает, чем что-либо еще. Ошибка времени выполнения 1004 может возникнуть, если Excel не получает доступ к Microsoft Visual Basic для приложений (VBA) или макросам.
Что такое ошибка времени выполнения 1004 в Excel
- Ошибка выполнения 1004: ошибка, определяемая приложением или объектом
- Ошибка выполнения 1004: сбой метода копирования класса листа
- Ошибка 1004: программный доступ к проекту Visual Basic не является доверенным.
Первое, что вам здесь потребуется, это открыть Параметры Excel, что очень просто. Просто откройте Microsoft Excel, затем нажмите «Файл» и выберите «Параметры».
Как только вы окажетесь в области параметров, нажмите Доверенный центр, тогда Настройки центра управления безопасностью.
Сразу должен появиться раздел Параметры доверия. Оттуда выберите Настройки макроса.
Наконец, нажмите на Доверять доступ к объектной модели проекта VBA, затем нажмите Ok кнопку и все тут.
Сканирование на наличие вредоносных программ
В качестве меры предосторожности вы можете также выполнить сканирование на наличие вредоносных программ, поэтому обязательно запустите свой сканер защиты от вредоносных программ и выполняйте регулярное сканирование, чтобы увидеть, не всплывает ли что-нибудь. Если ничего не происходит, мы предлагаем выполнить полную проверку на вирусы, чтобы убедиться, что все в порядке.
Читайте также: