Я кодирую макрос для копирования диаграммы Excel и вставки ее в презентацию PowerPoint в виде прозрачного изображения. Пока звучит просто, но проблема в том, что картинка либо не прозрачная, либо искаженная.
Посмотрите пожалуйста:
- вот искаженная версия, которую я получаю после выполнения моих макросов:
- вот что я получаю, когда вручную копирую / вставляю (и именно так я хочу, чтобы это выглядело):
Мой код (соответствующая часть):
ActiveSheet.ChartObjects("MyChartNameGoesHere").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
PPSlide.Shapes.PasteSpecial(ppPasteEnhancedMetafile).Select
Я пытался изменить параметр формата CopyPicture
с xlPicture на xlBitmap , но в этом случае изображение не является прозрачным и перекрывает фон слайда. И я не уверен, что это выглядит гладко.
Я также пытался изменить параметр PasteSpecial
слайда почти на каждый из перечисленных здесь , но все еще безуспешно.
Некоторое время я считал, что версия xlBitmap в порядке и просто не прозрачна. Вот почему я переместил оба примера к краю слайда, чтобы мы могли это видеть. Но затем, после увеличения, я понял, что это также было искажено. Я не знаю, действительно ли я ошибся или просто случайно уронил что-то важное из своего кода (скорее всего). Восстановлено по памяти до предыдущей версии, но не удалось.
Еще раз, все хорошо, когда я копирую диаграмму из Excel и вставляю ее в PowerPoint в виде картинки вручную. PowerPoint 2007 не имеет рекордера макросов, поэтому я не вижу, что происходит.
Пожалуйста, помогите мне. Любые мысли приветствуются!
ОБНОВЛЕНИЕ"искаженная" версия не только ... искажена, но и в 5 раз "тяжелее" (с точки зрения размера файла презентации). Любая помощь по-прежнему высоко ценится!