2013-05-29 4 views
6

В 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, что вам нужно «открыть» для того, для его редактирования).


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

  1. Создайте новый документ в Word (или PowerPoint).
  2. Сохраните документ как документ 97-2003 (который заставляет его работать в режиме совместимости).
  3. Вставьте диаграмму, используя Insert-> Object-> Microsoft Excel Chart. Это встраивает диаграмму Excel в старом стиле.
  4. Откройте встроенную диаграмму правой кнопкой мыши-> Открыть и добавьте макрос.
  5. Закройте диаграмму, затем выберите «Файл-> Информация» и используйте кнопку «Конвертировать» в режиме совместимости, чтобы преобразовать документ в документ Office 2010.

Теперь у вас есть «родной» график Word или PowerPoint 2010, который вы можете редактировать непосредственно в Word или PowerPoint. Если вы нажмете на диаграмме и выберите «Инструменты диаграммы» -> «Дизайн -> Изменить данные», откроется ли лист Excel, который вы создали на шаге 4. Успех!

Теперь, у кого есть более простой способ?

+0

Вы можете просто быть в состоянии перенести макрос модулей текстов/PPT кода, и манипулировать ChartObject таким образом: HTTP: // stackoverflow.com/a/16263736/1467082. Обычно я не пишу на листе диаграммы ChartData, но это может быть сделано, если это необходимо. Есть некоторые причуды, которые работают с «ChartObjects» в PPT/DOC, но в основном это вам будет знакомо, если вы знакомы с Excel VBA. –

+0

@DavidZemens: да, я * мог бы это сделать, но с десятками диаграмм в документе он становится очень грязным. Для моих целей гораздо более практично сохранить код, связанный с диаграммой (данными), которую он манипулирует. –

+0

Это немного уродливо, но вместо этого вы можете вставлять электронную таблицу Excel (Insert -> Object -> From File), так как это сохранит макросы. Я думаю, это зависит от того, что делают макросы и как вы их запускаете. – CuberChase

ответ

1

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


  1. Создайте новый документ в Word (или PowerPoint).
  2. Сохраните документ как документ 97-2003 (который заставляет его работать в режиме совместимости).
  3. Вставьте диаграмму, используя Insert-> Object-> Microsoft Excel Chart. Это встраивает диаграмму Excel в стиле « ».
  4. Откройте встроенную диаграмму правой кнопкой мыши-> Открыть, и добавить макрос.
  5. Закройте диаграмму, затем выберите «Файл-> Информация» и используйте кнопку «Конвертировать» в режим совместимости , чтобы преобразовать документ в документ Office 2010.

Теперь у вас есть «родной» график Word или PowerPoint 2010, который вы можете редактировать непосредственно в Word или PowerPoint.Если вы нажмете на диаграмме и выберите «Инструменты диаграммы» -> «Дизайн -> Изменить данные», откроется ли лист Excel, который вы создали на шаге 4. Успех!

Я все еще заинтересован в том, в состоянии сделать это более непосредственно ...

2

На мой взгляд, вы могли бы добиться того, что вам нужно следующим образом:

(к сожалению, я не могу представить его с фотографиями и точным английскими командами, как я использую локальный-английский не-версию офиса)

  • Выбрать Вставить >> Объект >> Объект ...
  • В окне Object принять первую страницу (как Создать новую)
  • Искать Microsoft Excel Chart (или нечто подобное) и нажмите OK
  • Вы получите Workbook с двумя листами как представлено на рисунке ниже

enter image description here

(есть функция редактирования диаграммы доступны на ленте)

  • Нажмите Alt + F11 в то время как вы в Схеме издании, как представлено в картинке выше. Вы получите IDE для Excel, где вы найдете соответствующую книгу.
  • Добавить новый модуль и макроэлементов там
  • Теперь вы можете выход график издание в Слове и сохранить документ в качестве *.docm
  • После того как вы возобновлять его, перейдите Схему издание (двойной щелчок) >> Alt + F11 >>вы найдете найти макрос, сохраненный в книге, с расширением *docm.
+0

, к сожалению, этот метод создает встроенную книгу Excel, а не родную диаграмму Word или PowerPoint. Я этого не добился. С помощью этого метода диаграмма доступна только после ее активации (двойным щелчком по ней или щелчком правой кнопки мыши и выбором «открыть»). –

+0

Я думаю, что это вариант, используемый в Office 2003, на который вы ссылаетесь. Он сохраняет функции «родной диаграммы» Office 2007/2010 как форматирование. –

+0

Позвольте мне объяснить, что я имею в виду: если я создаю диаграмму, выбрав «Insert-> Chart» из Word или PowerPoint 2010, тогда диаграмма на самом деле является графиком Word/PowerPoint, * не * диаграммой Excel. У Word и PowerPoint есть своя объектная модель для этих диаграмм, которая похожа на - но не идентичную - версию Excel. И когда вы создаете такие диаграммы, вы можете выбрать серию и форматировать ее непосредственно в Word или PowerPoint, вместо того, чтобы «активировать» диаграмму, чтобы сделать это в Excel. Это та диаграмма, которую я пытаюсь создать. –

0

Проблема в том, как данные диаграммы хранятся в приложении. Преобразование и создание - это два разных процесса. Ваша серия данных в основном представляет собой массив, который не является листом excel. Он просто использует excel для отображения данных для редактирования. Вам нужно сохранить свой код в модуле для powerpoint/word и получить доступ к диаграмме через объект фигур, если вы не хотите вставлять листы Excel.

Sub GetChartName() 
Dim sSlide As Slide 
Dim cChart As Chart 
Dim sShape As Shape 

Set sSlide = PowerPoint.ActivePresentation.Slides(1) 
    For Each sShape In sSlide.Shapes 
     If sShape.HasChart Then 
      Set cChart = sShape.Chart 
       MsgBox cChart.Name 
      Set cChart = Nothing 
     End If 
    Next 
Set sSlide = Nothing 

End Sub 
+0

Извините, но я думаю, что это совершенно неправильно. Ряд данных не является массивом - он может содержать формулы, а также макросы и т. Д. См. Последнюю часть моего вопроса, где я объясню один из способов достижения этого. И, как я объяснил в комментариях, размещение кода в Word/PowerPoint не является решением, которое я ищу. –

Смежные вопросы