|
Как закрыть Excel из PowerPoint??
|
|||
---|---|---|---|
#18+
Имеется: Диаграмма в PowerPoint (данные для неё хранятся тут же – в связанной таблице) Задача: Изменить значение диаграммы динамически, с помощью VBA – кода. При обращении VBA-кода к данным для диаграммы – все проходит, успешно, в соответствии с кодом, значение ячейки “B1” изменяется на “12345”, данные в диаграмме при этом динамически меняются. Код: For Each oSld In ActivePresentation.Slides For Each oShp In oSld.Shapes ' ДЛЯ КАЖДОГО СЛАЙДА ИЩЕМ ДИАГРАММУ If oShp.HasChart Then oShp.Chart.ChartData.Activate oShp.Chart.ChartData.Workbook.Worksheets(1).Range("B1").Value = "12345" oShp.Chart.ChartData.Workbook.Close False oShp.Chart.ChartData.Workbook.Application.Quit End If End If Next oShp Next oSld Если число таких диаграмм, к которым нужно обратиться = 2-4, всё проходит нормально, если же число диаграмм для изменения становится большим – после отработки макроса приложение Excel остаётся “висеть” в диспетчере задач, и становится видимым. То есть – если потребуется в презентации динамически с помощью кода изменить 80 диаграмм – то после отработки макроса пользователю придётся закрывать 80 окон Excel, но как правило до такого и не доходит – Excel на пару с PowerPoint’ом ругаются на нехватку памяти, выдавая при этом различные глючные сообщения…Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 14:17 |
|
Как закрыть Excel из PowerPoint??
|
|||
---|---|---|---|
#18+
Делаю теперь так: Dim xlApp As Object, xlWB As Object Set xlApp = CreateObject("Excel.Application") For Each oSld In ActivePresentation.Slides For Each oShp In oSld.Shapes If oShp.HasChart Then With oShp.Chart.ChartData .Activate ActivePresentation.SlideShowWindow.Activate Set xlWB = oShp.Chart.ChartData.Workbook xlWB.Worksheets(1).Range("B1").Value = vsp xlWB.Close False Set xlWB = Nothing End With End If Next oShp Next oSld xlApp.Quit ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 06:12 |
|
Как закрыть Excel из PowerPoint??
|
|||
---|---|---|---|
#18+
У меня стоит такая же задача: исправить конкретную диаграмму в PowerPoint путем редактирования табличных значений. Запускаю ваш скрипт из MS Visual Studio и выдается ошибка на HasChart: If oShp.HasChart Then ... Посмотрела в отладчике, действительно нет такого свойства. Может знаете, как это обойти? Вот код: Dim objPPT As Object objPPT = CreateObject("PowerPoint.Application") objPPT.Visible = True Dim objPres As PowerPoint.Presentation = objPPT.Presentations.Open("C:\SAF1.ppt") Dim xlApp As Object = CreateObject("Excel.Application") Dim xlWB As Object For Each oSld In objPres.Slides If oSld.SlideIndex = 7 Then ' 7-ой слайд ' ДЛЯ КАЖДОГО СЛАЙДА ИЩЕМ ДИАГРАММУ For Each oShp In oSld.Shapes If oShp.HasChart Then ' Редактируем диаграмму в презентации PowerPoint With oShp.Chart.ChartData .Activate() objPPT.SlideShowWindow.Activate() xlWB = oShp.Chart.ChartData.Workbook xlWB.Worksheets(1).Range("B2").Value = 200 xlWB.Close(False) xlWB = Nothing End With End If Next oShp End If Next oSld xlApp.Quit() xlApp = Nothing '--- Очистка PowerPoint objPres.Close() objPPT.Quit() objPPT = Nothing ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2013, 14:13 |
|
Как закрыть Excel из PowerPoint??
|
|||
---|---|---|---|
#18+
TataS, Мне необходимо отредактировать из кода Visual Basic (MS Visual Studio) таблицу диаграммы в PowerPoint. Прогуглила все что можно, но так ничего и не нашла: либо создается новая презентация и туда копируются созданные в Excel диаграммы, либо макросы, которые в моем случае неприменимы. Неужели никто не сталкивался с этой проблемой? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2013, 17:26 |
|
Как закрыть Excel из PowerPoint??
|
|||
---|---|---|---|
#18+
TataS, вам нужно вставить блок кода ON ERROR RESUME NEXT перед тем как ищете свойство HASCHART. Он ловит ошибку, и если находит - не тормозит программу, а продолжает дальше. Посмотрите примеры кода как работает эта строчка, станет понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 05:39 |
|
Как закрыть Excel из PowerPoint??
|
|||
---|---|---|---|
#18+
TataS, Santa89 Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 09:33 |
|
|
start [/forum/moderation_log.php?user_name=OlgaZH]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 405ms |
total: | 554ms |
0 / 0 |