Я сделал макрос VBA для MS powerpoint 2011 на Mac. Я действительно не в VBA, но мне удалось каким-то образом позволить 12 формам отображаться на экране с текстом, но я в основном взял это здесь как отправную точку. Мои модификации, вероятно, не лучший способ сделать это, но он выполняет эту работу.VBA удаляет определенные фигуры
Но теперь я хотел бы создать еще один макрос, который позволяет формам, названным от Dim Shp As Shape
, до Dim Shp11 As Shape
, исчезнуть или удалить после выполнения макроса. Я много пробовал, но всегда получал ошибки. Некоторая помощь здесь очень ценится.
Мне также не удалось выяснить, как я могу сделать надстройку из макроса в MS PowerPoint 2011 для Mac. У кого-то есть идея?
Большое вам спасибо!
Разъяснение:
Идея этого макроса, чтобы отобразить значения цвета, которые должны быть использованы в РРТ, и я думал, что это может быть приятно переключать эти цвета и выключаться - независимо от того, в котором вы находитесь.
Итак, снова: Код выглядит ужасно, но я не большой программист;)
Sub show_ci_colors()
'PURPOSE:Create a Text Box Shape and Reformat it
'SOURCE: www.TheSpreadsheetGuru.com
Dim Sld As Slide
Dim Shp As Shape
Dim Shp1 As Shape
Dim Shp2 As Shape
Dim Shp3 As Shape
Dim Shp4 As Shape
Dim Shp5 As Shape
Dim Shp6 As Shape
Dim Shp7 As Shape
Dim Shp8 As Shape
Dim Shp9 As Shape
Dim Shp10 As Shape
Dim Shp11 As Shape
'ERROR HANDLING
If ActivePresentation.Slides.Count = 0 Then
MsgBox "You do not have any slides in your PowerPoint project."
Exit Sub
End If
Set Sld = Application.ActiveWindow.View.Slide
'Create shape with Specified Dimensions and Slide Position
Set Shp = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=20, Width:=60, Height:=40)
Set Shp1 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=62, Width:=60, Height:=40)
Set Shp2 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=104, Width:=60, Height:=40)
Set Shp3 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=146, Width:=60, Height:=40)
Set Shp4 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=186, Width:=60, Height:=40)
Set Shp5 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=230, Width:=60, Height:=40)
Set Shp6 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=272, Width:=60, Height:=40)
Set Shp7 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=314, Width:=60, Height:=40)
Set Shp8 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=356, Width:=60, Height:=40)
Set Shp9 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=398, Width:=60, Height:=40)
Set Shp10 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=440, Width:=60, Height:=40)
Set Shp11 = Sld.Shapes.AddShape(Type:=msoShapeRectangle, _
Left:=-80, Top:=482, Width:=60, Height:=40)
'FORMAT SHAPE
'Shape Name
Shp.Name = "My Header"
'No Shape Border
Shp.Line.Visible = msoFalse
Shp.Shadow.Visible = msoFalse
Shp1.Line.Visible = msoFalse
Shp1.Shadow.Visible = msoFalse
Shp2.Line.Visible = msoFalse
Shp2.Shadow.Visible = msoFalse
Shp3.Line.Visible = msoFalse
Shp3.Shadow.Visible = msoFalse
Shp4.Line.Visible = msoFalse
Shp4.Shadow.Visible = msoFalse
Shp5.Line.Visible = msoFalse
Shp5.Shadow.Visible = msoFalse
Shp6.Line.Visible = msoFalse
Shp6.Shadow.Visible = msoFalse
Shp7.Line.Visible = msoFalse
Shp7.Shadow.Visible = msoFalse
Shp8.Line.Visible = msoFalse
Shp8.Shadow.Visible = msoFalse
Shp9.Line.Visible = msoFalse
Shp9.Shadow.Visible = msoFalse
Shp10.Line.Visible = msoFalse
Shp10.Shadow.Visible = msoFalse
Shp11.Line.Visible = msoFalse
Shp11.Shadow.Visible = msoFalse
'Shape Fill Color
Shp.Fill.ForeColor.RGB = RGB(4, 110, 151) 'BLUE 700
Shp.Fill.BackColor.RGB = RGB(4, 110, 151) 'BLUE 700
Shp1.Fill.ForeColor.RGB = RGB(6, 166, 227) 'BLUE 300
Shp1.Fill.BackColor.RGB = RGB(6, 166, 227) 'BLUE 300
Shp2.Fill.ForeColor.RGB = RGB(133, 199, 226) 'BLUE 100
Shp2.Fill.BackColor.RGB = RGB(133, 199, 226) 'BLUE 100
Shp3.Fill.ForeColor.RGB = RGB(23, 152, 131) 'GREEN
Shp3.Fill.BackColor.RGB = RGB(23, 152, 131) 'GREEN
Shp4.Fill.ForeColor.RGB = RGB(254, 201, 5) 'YELLOW
Shp4.Fill.BackColor.RGB = RGB(254, 201, 5) 'YELLOW
Shp5.Fill.ForeColor.RGB = RGB(189, 57, 47) 'RED 700
Shp5.Fill.BackColor.RGB = RGB(189, 57, 47) 'RED 700
Shp6.Fill.ForeColor.RGB = RGB(225, 92, 80) 'RED 300
Shp6.Fill.BackColor.RGB = RGB(225, 92, 80) 'RED 300
Shp7.Fill.ForeColor.RGB = RGB(237, 140, 52) 'ORANGE
Shp7.Fill.BackColor.RGB = RGB(237, 140, 52) 'ORANGE
Shp8.Fill.ForeColor.RGB = RGB(64, 64, 64) 'GREY 700
Shp8.Fill.BackColor.RGB = RGB(64, 64, 64) 'GREY 700
Shp9.Fill.ForeColor.RGB = RGB(84, 84, 84) 'GREY 600
Shp9.Fill.BackColor.RGB = RGB(84, 84, 84) 'GREY 600
Shp10.Fill.ForeColor.RGB = RGB(189, 189, 198) 'GREY 300
Shp10.Fill.BackColor.RGB = RGB(189, 189, 198) 'GREY 300
Shp10.Fill.ForeColor.RGB = RGB(189, 189, 198) 'GREY 300
Shp10.Fill.BackColor.RGB = RGB(189, 189, 198) 'GREY 300
Shp11.Fill.ForeColor.RGB = RGB(238, 238, 238) 'GREY 200
Shp11.Fill.BackColor.RGB = RGB(238, 238, 238) 'GREY 200
'Shape Text Color
Shp.TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
Shp11.TextFrame.TextRange.Font.Color.RGB = RGB(64, 65, 65)
'Text inside Shape
Shp.TextFrame.TextRange.Characters.Text = "Blue 700" & Chr(10) & "4/110/151"
Shp1.TextFrame.TextRange.Characters.Text = "Blue 300" & Chr(10) & "6/166/227"
Shp2.TextFrame.TextRange.Characters.Text = "Blue 100 " & Chr(10) & "133/199/226"
Shp3.TextFrame.TextRange.Characters.Text = "Green" & Chr(10) & "23/152 /131"
Shp4.TextFrame.TextRange.Characters.Text = "Yellow" & Chr(10) & "254/201/5"
Shp5.TextFrame.TextRange.Characters.Text = "Red 700" & Chr(10) & "189/57/47"
Shp6.TextFrame.TextRange.Characters.Text = "Red 300" & Chr(10) & "225/92/80"
Shp7.TextFrame.TextRange.Characters.Text = "Orange" & Chr(10) & "237/140 52"
Shp8.TextFrame.TextRange.Characters.Text = "Grey 700" & Chr(10) & "64/65/65"
Shp9.TextFrame.TextRange.Characters.Text = "Grey 600" & Chr(10) & "84/84/84"
Shp10.TextFrame.TextRange.Characters.Text = "Grey 300" & Chr(10) & "189/189/189"
Shp11.TextFrame.TextRange.Characters.Text = "Grey 200" & Chr(10) & "238/238/238"
'Center Align Text
Shp.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp1.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp2.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp3.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp4.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp5.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp6.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp7.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp8.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp9.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp10.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
Shp11.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = msoAlignCenter
'Vertically Align Text to Middle
'Shp.TextFrame.VerticalAnchor = msoAnchorMiddle
'Adjust Font Size
Shp.TextFrame.TextRange.Font.Size = 8
Shp1.TextFrame.TextRange.Font.Size = 8
Shp2.TextFrame.TextRange.Font.Size = 8
Shp3.TextFrame.TextRange.Font.Size = 8
Shp4.TextFrame.TextRange.Font.Size = 8
Shp5.TextFrame.TextRange.Font.Size = 8
Shp6.TextFrame.TextRange.Font.Size = 8
Shp7.TextFrame.TextRange.Font.Size = 8
Shp8.TextFrame.TextRange.Font.Size = 8
Shp9.TextFrame.TextRange.Font.Size = 8
Shp10.TextFrame.TextRange.Font.Size = 8
Shp11.TextFrame.TextRange.Font.Size = 8
'FONT STYLE DELETED
'Adjust Font Style
' Shp.TextFrame.TextRange.Font.Name = "Verdana"L
End Sub
Благодарим вас за это. Он работает, но только если я нахожусь на первом слайде плюс, он также удаляет текстовое поле. Не могли бы вы это сделать. как и Shp1. Удалить и повторить это для всех остальных фигур? :) – Kinda
Если вы установите ссылку на Shp1, тогда будет работать Shp1.Delete. Не замечая код, который вы используете, сложно сказать, как его исправить. Вы можете при создании формы дать ему имя, а затем Слайды (x) .Shapes («YourShapeName»). Удалить (где x - индекс слайда, с которым вы хотите работать) –
Спасибо. Ну, код выглядит просто ужасно. Я не программист :) Идея этого макроса состоит в том, чтобы отображать значения цвета, которые должны использоваться в ppt, и я думал, что было бы неплохо включать и выключать эти цвета - независимо от того, в каком слайде вы находитесь , Я отправлю код, который у меня выше .. – Kinda