2013-03-25 6 views
0

엑셀 파일의 일부 이미지로 구성된 새로운 파워 포인트를 만드는 코드가 있습니다. 이름을 정의하기 위해 문자열 변수를 사용하여 파일을 저장하려고합니다. 나는 성공을위한 해결책을 찾고있는 나의 실사를 했어. 내가 완성하려고하는 기본적인 작업의 기초에 기초하여 나를 놀라게한다. 현재로서는, 나는 ...Excel VBA에서 PowerPoint 저장

newPowerPoint.ActivePresentations.SaveAs filenamestring, 1 
newPowerPoint.ActivePresentations.Close 

하지만 오류 메시지가 계속 발생합니다. 나는 newPowerPoint는 다른 모듈

Public newPowerPoint As powerpoint.Application 

어떤 제안에 public으로 정의?

+0

은 어디에서 오류가 (지고있는' SaveAs' 또는'.Close'에서)? 어떤 오류가 발생 했습니까? –

+0

오브젝트 필수 오류로 인해 newPowerPoint를 oPPTApp로 전환했습니다. OPPTApp도 공개로 선언됩니다. 그래서 지금 oPPTApp을 사용하여 얻는 오류 메시지는 SaveAs 줄에 "개체 변수 또는 블록 변수가 설정되지 않았습니다"입니다. 다른 모듈에 대한 공용 선언은 .... public newPowerPoint as powerpoint.Application Public oPPTApp As Object – broconnor1

+0

'Debug.Print oPPTApp Is Nothing'. immediates 창에서 어떤 일이 발생합니까? –

답변

1

실제로 Powerpoint.Application 인스턴스를 만들지 않고도 oPPTApp 변수의 크기를 조정한다고 생각합니다.

Public ppApp As PowerPoint.Application 

Sub PPTFile() 

Dim ppPres As Presentation 
Dim fileNameString As String 

fileNameString = "C:\testPPT.pptx" '<change to your file path/name 

'Create an instance of PPT to work with 
Set ppApp = CreateObject("Powerpoint.Application") 
ppApp.Visible = True 

'Create a new presentation (or you can access an existing file with ppApp.Presentations.Open 
Set ppPres = ppApp.Presentations.Add 

'Save: 
ppPres.SaveAs fileNameString, 1 

'Quit the instance of PPT that you initiated above. 
ppApp.Quit 

End Sub 

편집

당신이 AddSlide 방법을 사용하여 슬라이드를 추가하는 것처럼, 당신은 CustomLayout를 참조 할 필요가있다.

Dim sldCount As Integer 

sldCount = ppPres.Slides.count 
ppPres.Slides.AddSlide sldCount + 1, ppPres.Slides(sldCount).CustomLayout 
'Once you've added the slide, then set using Layout: 
ppPres.Slides(sldCount + 1).Layout = ppLayoutBlank 

다른 방법으로는 (A CustomLayout 필요) 이전 .AddLayout 인수를 받아들이는 방법, 대신 .AddSlide를 사용할 수 있습니다

ppPres.Slides.Add sldCount + 1, ppLayoutBlank

+0

Set compPres = ppApp.Presentations.Add에서 "컴파일 오류 : 메서드 또는 데이터 멤버를 찾을 수 없습니다." – broconnor1

+0

어떤 OS 및 버전의 Excel을 사용하고 있습니까? Win 7 XP에서 Excel 2010에서 올바르게 작동합니다. 이 라인을 수동으로 타이핑하면, 스크립트 어시스트는'ppApp'에 사용할 수있는 메소드를 보여 주어야하며, Powerpoint 객체 모델에 대한 참조를 활성화했다면 (이 코드 없이는이 코드는 초기화되지 않습니다)'.Add'는 'ppApp.Presentations'에 사용할 수있는 방법입니다. http://imgur.com/k5jj3wO 이것이 당신에게 해당하지 않습니까 ?? –

+0

안녕 데이비드 - 지연에 대한 죄송합니다 ... 다른 프로젝트와 함께 sidetracked있어. Windows 7 Excel 2007 ppt 개체 모델 참조를 사용하여 사용하고 있습니다. .Add는 내 화면에서 사용할 수있는 방법입니다. 달릴 때, 나는이 정확한 과실을 얻는다 : http://i.imgur.com/G5NI6KM.png?1 어떤 아이디어? – broconnor1