2017-04-11 34 views
1

我有下面的代碼 -VBA錯誤 「預期函數或變量」 試圖設置一個PowerPoint幻燈片時

Option Explicit 

Sub main() 

Dim oPPTApp As PowerPoint.Application 
Dim oPPTObj As Object 
Dim oPPTFile As PowerPoint.Presentation 
Dim oPPTShape As PowerPoint.Shape 
Dim oPPTSlide As PowerPoint.Slide 
Dim oGraph As Graph.Chart 
Dim oAxis As Graph.Axis 
Dim SlideNum As Integer 
Dim strPresPath As String, strNewPresPath As String 

strPresPath = "Location.ppt" 
strNewPresPath = "Destination.ppt" 

'instantiate the powerpoint application and make it visible 
Set oPPTObj = CreateObject("PowerPoint.Application") 
oPPTObj.Visible = msoCTrue 

Set oPPTFile = oPPTObj.Presentations.Open(strPresPath) 
SlideNum = 1 

Set oPPTSlide = oPPTFile.Slides(SlideNum).Select 
Set oPPTShape = oPPTSlide.Add(1, ppLayoutBlank) 

oPPTSlide.Shapes.AddTextbox msoTextOrientationHorizontal, 10, 20, 300, 5 

With oPPTSlide.Shapes(1).TextFrame.TextRange 
    .text = "ALL BSE" 
    .Font.Color = vbWhite 
    .Font.Underline = msoFalse 
End With 

End Sub 

我得到一個錯誤

預期的函數或變量

在以下行:

Set oPPTSlide = oPPTFile.Slides(SlideNum).Select 

任何幫助,將不勝感激。

+4

不要在同一行設置''和'選擇',嘗試'設置oPPTSlide = oPPTFile.Slides(SlideNum)'(幾乎沒有任何理由使用'Select')。你的代碼不需要它,它只會減慢你的運行時間 –

回答

2

按照上面我的意見,你不能SetSelect在同一行(也有幾乎從來沒有任何理由使用Select)。嘗試Set oPPTSlide = oPPTFile.Slides(SlideNum)

然而,一些「升級」到你的代碼:

直接設置oPPTShape與新創建Shapes有:

Set oPPTShape = oPPTSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 20, 300, 5) 

事後,易修改oPPTShape性能,使用With聲明如下:

With oPPTShape.TextFrame.TextRange 
    .text = "ALL BSE" 
    .Font.Color = vbWhite 
    .Font.Underline = msoFalse 
End With 
2

應該是...

Set oPPTSlide = oPPTFile.Slides(SlideNum) 
+1

刪除你的'選擇'答案,這不是一個好的建議給予,應該避免在所有情況下'選擇' –

+0

注意和編輯。 :) – sktneer

相關問題