С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
alvensy
1

VBA excel 2007 и Power point (Please help!)

10.05.2011, 12:31. Показов 5975. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане, подскажите пожалуйста, в чем ошибка!
Задача: при нажатии кнопки на листе Excel создается пустая презентация Powerpoint, файл с которой сохраняется в определенном месте.
Затык: при существующем коде после нажатия на кнопку выдает две ошибки
1) Index to attribute
Object reference not set to an instance of a object

2) Ribbon_load
Object reference not set to an instance of a object

Код следующий:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim AppPoint As PowerPoint.Application
Dim AppPres As PowerPoint.Presentation
Dim a As String
 
a = ActiveWorkbook.Path + "\" + TextBox2.Text + "_" + TextBox1.Text + ".pptx"
 
 Set AppPoint = CreateObject("Powerpoint.application")
 With AppPoint
.Visible = True
.Presentations.Add
 
End With
Если есть возможность, то хотел бы получить программный код, который убирал бы ошибки.

Заранее спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2011, 12:31
Ответы с готовыми решениями:

VBA Power point и Excel
Подскажите как занести данные введенные в Power point на userform в excel по кнопке.

Перенос данных из Power Point в Excel с VBA
В Power Point есть слайд, на слайде размещён TextBox и в нём нужные мне данные. Нужно чтоб при...

Как изменить угол наклона прямой используя SpinButton в Excel/Power Point VBA?
Мне нужно изменить угол наклона прямой (увеличить/ уменьшить) используя SpinButton в Excel или...

Задание Power Point 2007
Создать настройку в Power Pointe 2007 на C# или VBA которая будет добовлять элементы электроники...

16
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
10.05.2011, 15:28 2
ну для начала подключи библиотеку Powerpoint:
Tools-> References... -> Microsoft PowerPoint X.XX Object Library
0
alvensy
10.05.2011, 15:57 3
Спасибо, но я уже подключил библиотеку Microsoft Powerpoint 12.0.Object library. Я правильно понял, что её надо подключить в VBA, а не в самом Excel? Может это, наоборот, из-за того, что я какую -то лишнюю библиотеку подключил? плюс смысл еще в том, что макрос не создает презентацию. Он только открывает окно Powerpoint и то с ошибками.
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
10.05.2011, 22:29 4
Тогда дальше:
Есть объекты TextBox2 иTextBox1?
Я так понимаю на листе Excel текстовые поля?
в которых значения для имени сохраняемого файла.
0
alvensy
11.05.2011, 01:17 5
Спасибо за оказанное внимание!))

да, объекты textbox1 и textbox2 есть в userform, которая открывается при нажатии кнопки на листе excel.
но сохранение документа происходит уже после того, как он создается.
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
11.05.2011, 08:09 6
Не знаю что у Вас за форма, код работает без ошибок:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub CommandButton1_Click()
  Dim AppPoint As PowerPoint.Application
  Dim AppPres As PowerPoint.Presentation
  Dim a As String
 
    a = ActiveWorkbook.Path + "\" + "12" + "_" + "12" + ".ppt"
    'работаю с Microsoft Powerpoint 10.0.Object library по этому .ppt
 
    Set AppPoint = CreateObject("Powerpoint.application")
    With AppPoint
        .Visible = True
        .Presentations.Add
        .ActivePresentation.SaveAs Filename:=a
        .Quit
    End With
End Sub
0
alvensy
11.05.2011, 09:56 7
Спасибо, я сделал небольшой пример, чтобы было понятнее. Посмотрите пожалуйста! может быть мне библиотеку поменять? а этот код у вас не выдает ошибку?
alvensy
11.05.2011, 12:47 8
кстати, у меня и присланный Вами отдельно код не работает
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
11.05.2011, 13:18 9
alvensy, сорри, нет у меня новых оффисов, сохраните в .xls иначе ни чем не могу помочь

ps На сколько я знаю в Excel vba практически не обновился, но не знаю как обстоят дела в PowerPoint, возможно в этом проблема...
0
alvensy
11.05.2011, 13:23 10
Тогда высылаю в старом формате
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
11.05.2011, 14:04 11
Всё работоспособно
Visual Basic
1
2
3
4
5
6
7
Set AppPoint = CreateObject("Powerpoint.application") 'создаётся объект Powerpoint
    With AppPoint
        .Visible = True                        'видимость окна
        .Presentations.Add                  'создаётся новая пустая презентация
        .ActivePresentation.SaveAs Filename:=a   'сохраняется презентация в той же папке, а-полный путь
        .Quit 'закрывается окно Powerpoint
    End With
На какой строке у Вас ошибки?
Позднее связывание, конечно лучше, если файл будет передаваться на др. системы где нет Microsoft Powerpoint 12.0.Object librar
0
alvensy
11.05.2011, 14:17 12
хм... у меня выдает ошибку не программный код, а когда запускается Powerpoint. Презентация не создается и соответственно, не сохраняется. В Powerpoint выдает 2 ошибки

1) Index to attribute
Object reference not set to an instance of a object

2) Ribbon_load
Object reference not set to an instance of a object
alvensy
11.05.2011, 14:38 13
Спасибо! Вечером проверю на домашнем компьютере. Видимо, данная проблема касается только компьютеров в нашей компании, что странно...
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
11.05.2011, 14:57 14
попробуйте раннее связывание (Tools-> References... ->)
возможно объект не так называется - "Powerpoint.application" в новой версии.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub CommandButton1_Click()
  Dim AppPoint As New PowerPoint.Application
  Dim a As String
    a = ActiveWorkbook.Path + "\" + "12" + "_" + "12" + ".ppt"
    With AppPoint
        .Visible = True
        .Presentations.Add
        .ActivePresentation.SaveAs Filename:=a
        .Quit
    End With
End Sub
и воспользуйтесь макрорекордером, запишите создание новой пустой презентации и её сохранение, это здорово поможет
0
alvensy
12.05.2011, 12:53 15
В таком случае ругается на строчку
Visual Basic
1
Dim AppPoint As New PowerPoint.Application
пишет, что user-defined type not defined
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
12.05.2011, 13:49 16
Попробуйте позднее связывание:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub CommandButton1_Click()
  Dim AppPoint As Object
  Dim a As String
    a = ActiveWorkbook.Path + "\" + "12" + "_" + "12" + ".ppt"
    Set AppPoint = CreateObject("Powerpoint.application.12")
    With AppPoint
        .Visible = True
        .Presentations.Add
        .ActivePresentation.SaveAs Filename:=a
        .Quit
    End With
End Sub
Банальный вопрос - у Вас Powerpoint установлен? Нормально вручную работает?
Установлен офис 12? И может быть установлено несколько версий офиса?
0
alvensy
12.05.2011, 14:02 17
Установлен Powerpoint 2007 и Excel 2007. Вручную Powerpoint работает без сбоев.
12.05.2011, 14:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2011, 14:02
Помогаю со студенческими работами здесь

MS power point 2007 - надпись при клике
пРИВЕТ. как сделать в самом слайде, НАДПИСЬ которая будет появляться при клике. очередность...

Поочередное проигрывание анимации текста в Power Point 2007
Как сделать в Power Point чтоб не сразу был виден текст весь, а появлялся поочередно? Как сделать...

Нет звука в ppsx файле (презентация power point 2007)
Нет звука в ppsx файле (презентация power point 2007) На том компе где создавали есть, а на других...

VBA в Power Point
Всем очень добрый день! Осваиваю VBA для Power Point. К огромному сожалению литературы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru