2016-07-07 207 views
0

我有更改字體的代碼,但它不工作,因爲它應該:(我想通過InputBox循環thrue所有演示文稿和更改字體大小和樣式任何人都可以幫助我呢?非常感謝!更改字體大小和樣式

Sub FormatTextBoxes() 

Dim intSlide As Integer 
Dim strNotes As String 
Dim nts As TextRange 
Dim strFont, intSize 

intSize = InputBox("Please enter font size", "fontsize", "12") 
strFont = InputBox("Please enter font", "font type", "Calibri") 

    With ActivePresentation 

     For intSlide = 1 To .Slides.Count 
     Set nts = ActivePresentation.Slides(intSlide).NotesPage. _ 
     Shapes.Placeholders(2).TextFrame.TextRange 
     With nts 
      If intSize = "" Then intSize = 12 
      .Paragraphs.Font.Size = intSize 
      .Paragraphs.Font.Name = strFont 

    End With 

     Next intSlide 
    End With 
    MsgBox ("FormatNotes uitgevoerd") 

End Sub 
+0

要更改字體大小/風格究竟是什麼物體這段代碼解決了備註頁的文本佔位符只有對象。 –

回答

1

這將改變字體大小,所有的幻燈片對象上的所有幻燈片:

Option Explicit 

' ************************************************************* 
' Purpose : PowerPoint macro to change font size for all shapes 
'   on all slides across the active presentation 
' Author : Jamie Garroch of http://YOUpresent.co.uk/ 
' Inputs : None 
' Outputs : None 
' ************************************************************* 
Sub ChangeFontSizeForSlideShapes() 
    Dim oSld As Slide 
    Dim oShp As Shape, oGrpItem As Shape 
    For Each oSld In ActivePresentation.Slides 
    For Each oShp In oSld.Shapes 
     If oShp.Type = msoGroup Then 
     For Each oGrpItem In oShp.GroupItems 
      If oGrpItem.HasTextFrame Then 
      oGrpItem.TextFrame.TextRange.Font.Size = 12 
      End If 
     Next ' oGrpItem 
     Else 
     If oShp.HasTextFrame Then 
      oShp.TextFrame.TextRange.Font.Size = 12 
     End If 
     End If 
    Next ' oShp 
    Next ' oSld 
End Sub 
+0

非常感謝!:) – Norby