TPE
Tavvafi@gmail.com |
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
Option Explicit ' Edit these two values to change the grid spacing in inches Const dVspacing As Double = 0.25 Const dHspacing As Double = 0.25 ' Edit these three values to change the RGB color of the grid lines Const lGridColorRed As Long = 225 Const lGridColorGreen As Long = 225 Const lGridColorblue As Long = 225 Sub ToggleGrid() If Len(ActiveWindow.Selection.SlideRange(1).Tags("GRIDDED")) > 0 Then Call RemoveGrid Else Call CreateGrid End If End Sub Function CreateGrid() ' Creates gridlines ' Edit the values below to change spacing and color Dim oSh As Shape Dim oSl As Slide Dim x As Double Dim dBeginX As Double Dim dBeginY As Double Dim dEndX As Double Dim dEndY As Double ' these hold dVspacing and dHspacing converted to points Dim dVspace As Double Dim dHspace As Double dVspace = dVspacing * 72 dHspace = dHspacing * 72 dBeginX = 0 dBeginY = 0 dEndX = ActivePresentation.PageSetup.Slidewidth dEndY = ActivePresentation.PageSetup.Slideheight Set oSl = ActiveWindow.Selection.SlideRange(1) With oSl ' add vertical gridlines For dBeginX = 0 To ActivePresentation.PageSetup.Slidewidth Set oSh = oSl.Shapes.AddLine(dBeginX, dBeginY, dBeginX, dEndY) With oSh ' Change RGB value here: .Line.ForeColor.RGB = RGB(lGridColorRed, lGridColorGreen, lGridColorblue) Call .Tags.Add("GRIDLINE", "YES") End With dBeginX = dBeginX + dHspace Next ' add horizontal gridlines dBeginX = 0 dBeginY = 0 For dBeginY = 0 To ActivePresentation.PageSetup.Slideheight Set oSh = oSl.Shapes.AddLine(dBeginX, dBeginY, dEndX, dBeginY) With oSh ' Change RGB value here: .Line.ForeColor.RGB = RGB(225, 225, 225) Call .Tags.Add("GRIDLINE", "YES") End With dBeginY = dBeginY + dVspace Next ' Mark the slide so we know that it's gridded Call .Tags.Add("GRIDDED", "YES") End With End Function Function RemoveGrid() Dim oSh As Shape Dim x As Long For x = ActiveWindow.Selection.SlideRange(1).Shapes.Count To 1 Step -1 Set oSh = ActiveWindow.Selection.SlideRange(1).Shapes(x) If Len(oSh.Tags("GRIDLINE")) > 0 Then oSh.Delete End If Next ' Mark the slide so we know that it's gridded ActiveWindow.Selection.SlideRange(1).Tags.Delete ("GRIDDED") End Function