В PowerPoint 2010 или Word 2010, когда я выбираю Insert -> Chart, он создает новую диаграмму с листом Excel для данных.Как добавить макрос в диаграмму Word 2010 или PowerPoint 2010?
Если я добавлю макрос в рабочий лист Excel, это, похоже, будет отменено, когда я закрою рабочий лист и снова открою его.
Однако является возможности иметь диаграмму с макросами, потому что у меня есть некоторые документы Word & PowerPoint презентация, которые я создал в Office 2003, который вложенная диаграмму Excel с помощью макросов. Когда я преобразовал их в Office 2010, они выглядят так же, как «обычные» графики Office 2010, но макросы сохраняются.
Это выглядит как встроенная диаграмма, создаваемая при выборе Insert -> Chart в формате «pptx», а не в формате «pptm», и поэтому макросы не сохраняются.
(Если я запрашиваю ActiveWorkbook.FileFormat, я получаю «51», то есть «Open Xml Spreadsheet», это действительно «pptx», в отличие от «Open Xml Spreadsheet with Macros», который равен «52») ,
Как вставить диаграмму с поведением «pptm»? Или изменить поведение существующей диаграммы?
Примечание: Я не хочу, чтобы вставить диаграмму «объект», так как это означает, что график не редактируется в хост-приложения (он просто вставляет таблицу Excel, что вам нужно «открыть» для того, для его редактирования).
Позвольте мне дать вам фору ... Я могу добиться того, чего я хочу по следующей методике:
- Создайте новый документ в Word (или PowerPoint).
- Сохраните документ как документ 97-2003 (который заставляет его работать в режиме совместимости).
- Вставьте диаграмму, используя Insert-> Object-> Microsoft Excel Chart. Это встраивает диаграмму Excel в старом стиле.
- Откройте встроенную диаграмму правой кнопкой мыши-> Открыть и добавьте макрос.
- Закройте диаграмму, затем выберите «Файл-> Информация» и используйте кнопку «Конвертировать» в режиме совместимости, чтобы преобразовать документ в документ Office 2010.
Теперь у вас есть «родной» график Word или PowerPoint 2010, который вы можете редактировать непосредственно в Word или PowerPoint. Если вы нажмете на диаграмме и выберите «Инструменты диаграммы» -> «Дизайн -> Изменить данные», откроется ли лист Excel, который вы создали на шаге 4. Успех!
Теперь, у кого есть более простой способ?
Вы можете просто быть в состоянии перенести макрос модулей текстов/PPT кода, и манипулировать ChartObject таким образом: HTTP: // stackoverflow.com/a/16263736/1467082. Обычно я не пишу на листе диаграммы ChartData, но это может быть сделано, если это необходимо. Есть некоторые причуды, которые работают с «ChartObjects» в PPT/DOC, но в основном это вам будет знакомо, если вы знакомы с Excel VBA. –
@DavidZemens: да, я * мог бы это сделать, но с десятками диаграмм в документе он становится очень грязным. Для моих целей гораздо более практично сохранить код, связанный с диаграммой (данными), которую он манипулирует. –
Это немного уродливо, но вместо этого вы можете вставлять электронную таблицу Excel (Insert -> Object -> From File), так как это сохранит макросы. Я думаю, это зависит от того, что делают макросы и как вы их запускаете. – CuberChase