[英]Mac VBA | Excel / Powerpoint 2016 (Vers. 15.33) | Powerpoint crashes on Shapes.AddTextBox method
我在excel中對VBA進行編碼,該文件試圖打開並保存Powerpoint文件的副本,然后在幻燈片中添加文本框。
在Mac環境中運行,以下代碼成功打開並保存了ppt文件,但是在試圖調用AddTextbox方法的With語句上,它將導致Powerpoint應用程序崩潰。 (EXC_BAD_ACCESS錯誤)
我沒有打開Powerpoint文件的問題,只有在運行此代碼時它才會崩潰。 我懷疑是Shapes.AddTextbox方法或其某些參數不受支持,但是我在互聯網上找不到相關的信息/參考。
如果有人能對此表示感謝,非常感謝。 另外,鑒於Mac和Windows對VBA的支持都不夠,Powerpoint自動化是否還有其他替代方法(例如Applescript)?
Option Explicit
Public Const COVER_SLIDE = 3
Dim param_ws As Worksheet
Sub Main()
Set param_ws = ThisWorkbook.Worksheets("Param")
'Open the template Powerpoint, save as a copy
Dim PowerPointApp As PowerPoint.Application
Dim myPresentation As PowerPoint.Presentation
Set PowerPointApp = New PowerPoint.Application
Set myPresentation = PowerPointApp.Presentations.Open(param_ws.Range("wk_dir").Value & "/" & param_ws.Range("ppt_temp_fileName").Value)
myPresentation.SaveAs (param_ws.Range("wk_dir").Value & "/" & param_ws.Range("myfolder").Value & "/" & param_ws.Range("myfile").Value)
PowerPointApp.Visible = True
' ################## All good until here ##################
With myPresentation.Slides(COVER_SLIDE).Shapes.AddTextbox(msoTextOrientationHorizontal, Left:=Application.InchesToPoints(5.71), Top:=Application.InchesToPoints(3.8), Width:=Application.InchesToPoints(3.47), Height:=Application.InchesToPoints(1.04))
.TextFrame.TextRange.Text = "Hello"
.TextFrame.TextRange.Font.Size = 28
.TextFrame.TextRange.Font.Name = "Arial Narrow"
.TextFrame.HorizontalAnchor = msoAnchorCenter
.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = ppAlignRight
End With
End Sub
這不是評論,而是答案,但是評論格式會對其進行哈希處理,所以這里是。
首先,我會改變
公共建築COVER_SLIDE = 3
至
Long = 3時的公共Const COVER_SLIDE
通常最好告訴vba您想要什么,而不是讓它猜測。 在這種情況下,它沒有什么區別,但是Mac VBA的幕后運行着一些奇怪的錯誤。
我還要驗證Mac Excel(在您所運行的版本中)是否確實具有Application.InchesToPoints方法。 如果不是這樣,添加文本框時,將英寸值乘以72很簡單。
最后,ppAlignRight是PowerPoint常量,而不是Office范圍或Excel常量,因此不會被定義,實際上,在IDE中編譯代碼時,它應該會導致錯誤(在嘗試運行之前,總是一個好主意)它)。 將其定義為:
Public Const ppAlignRight as Long = 3
或在代碼中使用3而不是ppAlignRight。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.